Usuários da organização¶
As organizações com várias contas geralmente precisam que a mesma pessoa seja um usuário em mais de uma dessas contas. Para evitar a repetição da criação de um objeto de usuário para a pessoa em cada conta separadamente, o administrador da organização pode criar um usuário da organização na conta da organização. Cada usuário da organização atua como uma entidade de usuário global que pode ser importada para contas regulares pelos administradores de conta, simplificando o processo de ter a mesma pessoa com um objeto de usuário em várias contas.
Os administradores de conta não adicionam usuários da organização diretamente à sua conta regular. Em vez disso, eles adicionam grupos de usuários da organização, que são agrupamentos lógicos de usuários da organização. Quando o administrador de conta importa o grupo de usuários da organização, seus usuários da organização são adicionados à conta.
Nota
Se quiser criar usuários da organização para pessoas que já tenham um objeto de usuário em uma ou mais contas regulares, será necessário vincular o usuário da organização ao objeto de usuário existente depois de importar o grupo de usuários da organização. Para obter mais informações, consulte Resolva conflitos após a importação de usuários.
Introdução¶
O fluxo de trabalho básico para colocar os usuários da organização em uma ou mais contas é o seguinte:
Como administrador de uma organização global na conta da organização:
Crie um usuário de organização para cada pessoa que deseja que seja um usuário em várias contas regulares.
Crie um grupo de usuários de organização que seja um agrupamento lógico de usuários.
Adicione os usuários da organização ao grupo de usuários da organização.
Disponibilize o grupo de usuários da organização para os administradores de conta em contas regulares.
Como administrador em uma conta regular:
Para obter um exemplo completo desse fluxo de trabalho, consulte Exemplo estendido.
Crie um usuário da organização¶
O administrador da organização cria um usuário da organização com as propriedades básicas de um objeto de usuário, como o nome de login e o e-mail. Apenas um e-mail é necessário, mas essas propriedades básicas não podem ser definidas em uma conta regular depois que o usuário é importado. Para obter uma lista dessas propriedades básicas, consulte CREATE ORGANIZATION USER.
Por exemplo, o comando a seguir cria um usuário da organização:
USE ROLE GLOBALORGADMIN;
CREATE ORGANIZATION USER asmith
EMAIL = 'asmith@example.com'
LOGIN_NAME = 'asmith@example.com';
Grupos de usuários da organização¶
Grupos de usuários da organização são agrupamentos lógicos de usuários da organização. O administrador da organização cria esses grupos de usuários da organização e, em seguida, adiciona os usuários da organização que devem pertencer a cada grupo. Quando o administrador de conta importa um grupo de usuários da organização para uma conta, todos os usuários da organização no grupo tornam-se objetos de usuário na conta regular. Um usuário da organização pode ser membro de vários grupos de usuários da organização.
Quando o administrador de conta importa um grupo de usuários da organização para uma conta regular, o Snowflake cria uma função de controle de acesso com o mesmo nome. Por exemplo, se o grupo de usuários da organização for denominado data_stewards
, a importação do grupo para a conta regular criará uma função denominada data_stewards
. Essa função é concedida a cada usuário importado do grupo de usuários da organização.
Os administradores da conta regular podem ajustar o controle de acesso concedendo e revogando privilégios para a função que foi concedida a cada um dos usuários que foram importados do grupo de usuários da organização. Você também pode conceder funções específicas da conta à nova função ou conceder a nova função a funções específicas da conta.
Você pode importar o mesmo grupo de usuários da organização para várias contas regulares para implementar funções consistentes em toda a organização. Cada conta regular pode atribuir privilégios específicos da conta à função, mas a nomenclatura será consistente. Como alternativa, você pode criar um grupo de usuários da organização separado para cada conta e, em seguida, adicionar os usuários da organização que são necessários em uma determinada conta ao grupo de usuários da organização apropriado.
Se o administrador importar vários grupos de usuários da organização que contenham o mesmo usuário da organização, apenas um usuário local será criado e a esse usuário serão concedidas as funções de todos os grupos de usuários da organização.
A tarefa do administrador da organização de preparar um grupo de usuários da organização para o administrador de contas regulares é um processo de três etapas:
Defina a visibilidade do grupo para especificar quais contas regulares podem acessá-lo.
Crie um grupo de usuários da organização¶
O administrador da organização executa o comando CREATE ORGANIZATION USER GROUP para criar um novo grupo de usuários da organização na conta da organização.
Como exemplo, o comando a seguir cria um grupo de usuários da organização que representa um agrupamento lógico de engenheiros de dados.
CREATE ORGANIZATION USER GROUP data_engineers_group;
Adicione usuários da organização a um grupo de usuários da organização¶
Depois que o administrador da organização cria um grupo de usuários da organização, ele pode executar o comando ALTER ORGANIZATION USER GROUP para adicionar usuários da organização ao grupo como uma lista separada por vírgulas. Por exemplo, para adicionar dois usuários da organização existentes ao grupo de usuários da organização data_engineers_group
, execute:
ALTER ORGANIZATION USER GROUP data_engineers_group
ADD ORGANIZATION USERS asmith, sjohnson;
Torne os grupos de usuários da organização disponíveis para contas regulares¶
Depois de criar um grupo organizacional, você precisa especificar quais contas regulares podem visualizar e importar o grupo. Os administradores de conta não podem usar o grupo de usuários da organização para importar usuários até que você use o comando ALTER ORGANIZATION USER GROUP para definir a visibilidade do grupo. Você pode especificar que todas as contas regulares podem importar o grupo de usuários da organização ou pode restringir o acesso a contas específicas.
Importante
A execução do comando ALTER ORGANIZATION USER GROUP para definir a visibilidade substitui as configurações de visibilidade anteriores. Por exemplo, se a visibilidade foi definida como ALL
e, em seguida, o comando ALTER foi executado para definir a visibilidade como account_a
, os usuários e as funções criados a partir do grupo de usuários da organização serão removidos de todas as contas, exceto account_a
.
O comando a seguir só permite que a conta qa_env
adicione o grupo de usuários da organização:
ALTER ORGANIZATION USER GROUP data_engineers_group
SET VISIBILITY = ACCOUNTS qa_env;
Importe usuários para uma conta regular¶
Depois que o administrador da organização tiver criado um grupo de usuários da organização, os administradores de contas regulares poderão importar os usuários da organização executando o comando ALTER ACCOUNT para adicionar o grupo de usuários da organização. Esses administradores só podem importar um grupo de usuários da organização se o administrador da organização tiver definido a visibilidade do grupo para que a conta regular possa acessá-lo.
Por padrão, somente os usuários com a função ACCOUNTADMIN podem importar grupos de usuários da organização para a conta regular. Para permitir que outros usuários importem um grupo organizacional, conceda a eles o privilégio IMPORT ORGANIZATION USER GROUPS.
A sintaxe para importar um grupo de usuários da organização para uma conta regular é a seguinte:
ALTER ACCOUNT ADD ORGANIZATION USER GROUP <group_name>
Para obter um exemplo de importação de um grupo de usuários da organização para adicionar usuários, consulte Exemplo estendido.
Resolva conflitos após a importação de usuários¶
O administrador de conta que importa usuários da organização em sua conta regular deve verificar manualmente se há conflitos. Esses conflitos podem surgir entre as propriedades dos usuários ou o nome do grupo de usuários da organização.
Conflito entre o grupo de usuários da organização e a função existente¶
Ocorre um conflito quando o nome do grupo de usuários da organização corresponde ao nome de uma função existente na conta regular. Os usuários do grupo não são importados até que você resolva o conflito.
Para verificar se há um conflito após a importação de um grupo de usuários da organização, faça o seguinte:
Execute o comando SHOW ORGANIZATION USER GROUPS.
Na coluna
is_imported
, verifique se o valor é TRUE. Se o valor for FALSE, o grupo de usuários da organização não foi importado com êxito, o que pode indicar que há um conflito.
Você pode resolver o conflito entre uma função e um grupo de usuários da organização vinculando a função ao grupo. A vinculação de uma função permite que ela seja gerenciada como um grupo de usuários da organização no futuro. Após vincular a função conflitante, o grupo de usuários da organização é adicionado à conta sem nenhuma outra ação. Chame a função SYSTEM$LINK_ORGANIZATION_USER_GROUP para vincular uma função a um grupo de usuários da organização.
Por exemplo, suponha que a função marketing_team
já existia em sua conta antes de importar o grupo de usuários da organização marketing_team
para a conta. Para vincular a função ao grupo de usuários da organização e concluir o processo de importação do grupo, execute o seguinte:
SELECT SYSTEM$LINK_ORGANIZATION_USER_GROUP('marketing_team');
Conflito entre o usuário da organização e o usuário existente¶
Um conflito ocorre quando qualquer um dos itens a seguir é verdadeiro:
A propriedade
name
de um usuário da organização corresponde à propriedadename
de um usuário existente na conta regular.A propriedade
login_name
de um usuário da organização corresponde à propriedadelogin_name
de um usuário existente na conta regular.
Para verificar se há um conflito de usuários após a importação de um grupo de usuários da organização, faça o seguinte:
Execute o comando SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP.
Na coluna
is_imported
, encontre as linhas em que o valor é FALSE. Pelo menos uma propriedade do usuário nessa linha entra em conflito com as propriedades de um usuário existente.
Dica
Você pode usar a função RESULT_SCAN para pós-processar a saída de SHOW ORGANIZATION USERS e filtrar na coluna is_imported
. Por exemplo, para pesquisar os usuários da organização que não foram importados com êxito do grupo de usuários da organização marketing_team
, execute o seguinte:
SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP marketing_team;
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_imported" = 'false';
Se um objeto de usuário existente corresponder à mesma pessoa que um usuário da organização e você quiser gerenciar o usuário como um usuário da organização no futuro, poderá vincular o usuário existente ao usuário da organização para resolver o conflito. Chame a função SYSTEM$LINK_ORGANIZATION_USER para vincular um usuário existente a um usuário da organização. Por exemplo, para vincular o usuário existente jloeb
ao usuário da organização jloebsmith
, execute o seguinte:
SELECT SYSTEM$LINK_ORGANIZATION_USER('jloeb', 'jloebsmith');
Se não quiser vincular o usuário local existente ao novo usuário da organização, você pode renomear o objeto do usuário ou suas propriedades na conta regular para resolver o conflito. Por exemplo, se o usuário pré-existente e o usuário da organização tiverem o nome de login JOE_LOGIN
, você poderá executar o seguinte na conta regular para evitar o conflito sem vinculação:
USE ROLE ACCOUNTADMIN;
ALTER USER joe SET LOGIN_NAME = joe_login_renamed;
Modificação de usuários importados¶
Os administradores de uma conta regular podem usar o comando ALTER USER para modificar um subconjunto de propriedades de um objeto de usuário depois que ele for importado. O administrador pode modificar todas as propriedades, exceto as propriedades que podem ser definidas no usuário da organização na conta da organização. Para obter uma lista das propriedades que só podem ser definidas na conta da organização, consulte CREATE ORGANIZATION USER.
Remoção de usuários e grupos da organização¶
Os usuários da organização e os grupos de usuários da organização podem ser removidos de uma única conta ou removidos de todas as contas ao soltá-los na conta da organização.
Remoção de usuários de uma única conta regular¶
Um administrador de conta pode executar um comando ALTER ACCOUNT para remover um grupo de usuários da organização da conta. A remoção do grupo de usuários da organização elimina todos os usuários que foram importados e remove a função que foi criada quando o grupo de usuários da organização foi importado. Esse comando não afeta os usuários da organização e os grupos de usuários da organização em outras contas regulares, nem na conta da organização.
Nota
Um usuário da organização pode ser membro de vários grupos de usuários da organização. Se um usuário tiver sido importado de mais de um grupo de organizações, a remoção de um dos grupos da conta regular não removerá o usuário. O usuário não é removido até que todos os grupos de usuários da organização sejam removidos.
Por exemplo, o comando a seguir elimina todos os usuários importados do grupo data_stewards
e exclui a função data_stewards
:
ALTER ACCOUNT REMOVE ORGANIZATION USER GROUP data_stewards;
Remoção de usuários de todas as contas regulares¶
Quando um usuário da organização é descartado na conta da organização, o objeto de usuário correspondente é descartado de todas as contas regulares que importaram o usuário. Para eliminar um usuário da organização, execute o comando DROP ORGANIZATION USER na conta da organização.
Quando um grupo de usuários da organização é descartado na conta da organização, o efeito sobre os usuários da organização depende de os usuários da conta regular pertencerem a outros grupos de usuários da organização que também foram importados para a conta. Se um usuário da organização pertencer a um grupo de usuários da organização diferente do que foi importado, o usuário não será removido da conta. Caso contrário, a exclusão do grupo de usuários da organização remove todos os usuários importados do grupo.
A eliminação de um grupo de usuários da organização também remove a função que foi criada quando o grupo foi importado.
Para eliminar um grupo de usuários da organização, execute o comando DROP ORGANIZATION USER GROUP na conta da organização.
Desvinculação de usuários da organização e grupos de usuários da organização¶
Quando os usuários da organização são importados com êxito para uma conta regular, o objeto do usuário local é vinculado ao usuário da organização. Se você decidir manter o objeto do usuário em uma conta, mas não quiser mais associá-lo ao usuário da organização, poderá usar a função SYSTEM$UNLINK_ORGANIZATION_USER para desvincular o usuário local do usuário da organização. Todas as propriedades do usuário são preservadas e ele pode ser gerenciado como um usuário local daqui para frente.
Da mesma forma, é possível usar a função SYSTEM$UNLINK_ORGANIZATION_USER_GROUP para desvincular uma função criada pela adição de um grupo de usuários da organização. Isso mantém tudo igual em relação à função, mas a desvincula do grupo de usuários da organização.
Exemplo estendido¶
- Fluxo de trabalho do administrador de organização
Como administrador de organização, faça login na conta de organização.
Crie usuários de organização para duas pessoas que são administradores de dados:
USE ROLE GLOBALORGADMIN; CREATE ORGANIZATION USER joe_kelley EMAIL = 'jkelley@example.com' LOGIN_NAME = 'jkelley@example.com'; CREATE ORGANIZATION USER grace_vivian EMAIL = 'gvivian@example.com' LOGIN_NAME = 'gvivian@example.com';
Crie um grupo de usuários da organização que represente um agrupamento lógico de administradores de dados.
CREATE ORGANIZATION USER GROUP data_stewards_group;
Adicione os usuários da organização ao novo grupo de usuários da organização.
ALTER ORGANIZATION USER GROUP data_stewards_group ADD ORGANIZATION USERS joe_kelley, grace_vivian;
Permita que todas as contas regulares importem o grupo de usuários da organização.
ALTER ORGANIZATION USER GROUP data_stewards_group SET VISIBILITY = ALL;
- Fluxo de trabalho do administrador de conta
Como administrador de conta, faça login na conta regular para a qual deseja importar os usuários da organização.
Liste os grupos de usuários da organização que podem ser importados para a conta.
USE ROLE ACCOUNTADMIN; SHOW ORGANIZATION USER GROUPS;
Importe o grupo de usuários da organização para a conta.
ALTER ACCOUNT ADD ORGANIZATION USER GROUP data_stewards_group;
Verifique se há conflitos entre o grupo de usuários da organização e uma função existente:
SHOW ORGANIZATION USER GROUPS;
Verifique se o valor da coluna
is_imported
é TRUE, o que indica que não houve conflito.Liste os usuários que foram adicionados à conta e verifique se há conflitos:
SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP data_stewards_group;
Verifique se o valor da coluna
is_imported
é TRUE para todos os usuários da organização, o que indica que não houve conflitos.