Gerenciamento de usuários

Os administradores de usuários podem criar e gerenciar usuários do Snowflake por meio do SQL ou da interface da Web:

  • Usando SQL, os administradores podem realizar todas as tarefas relacionadas ao usuário, incluindo a mudança de credenciais de login e padrões dos usuários.

  • Snowsight oferece suporte à maioria das tarefas relacionadas ao usuário.

  • Classic Console não oferece suporte a todas as tarefas relacionadas ao usuário, mas fornece um assistente para criar usuários e realizar as atividades mais comuns, como redefinir a senha de um usuário.

Tipos de usuários

Alguns objetos de usuário correspondem a usuários humanos, enquanto outros objetos de usuário correspondem a um serviço ou aplicativo que interage com o Snowflake de forma programática, sem interação humana. Ao criar um objeto de usuário, você especifica o tipo de usuário para diferenciar entre humanos e serviços. Essa distinção é importante porque os usuários humanos devem se inscrever na autenticação multifator (MFA), mas os serviços e aplicativos não devem, pois não há pessoas para usar um método secundário de autenticação.

A propriedade TYPE de um objeto de usuário determina o tipo de usuário. Os valores possíveis dessa propriedade TYPE são os seguintes:

PERSON:

O usuário é um usuário humano que pode interagir com o Snowflake.

NULL:

Funciona da mesma forma que o valor PERSON.

SERVICE:

O usuário é um serviço ou aplicativo que interage com o Snowflake sem interação humana.

Para melhorar a postura de segurança de casos de uso não interativos, os usuários com a propriedade TYPE definida para SERVICE têm as seguintes características:

  • Eles não podem fazer login usando uma senha.

  • Eles não podem fazer login usando SAML SSO.

  • Eles não podem se inscrever em MFA.

  • Eles não estão sujeitos à aplicação de MFA da política de autenticação.

  • Eles não podem ter as seguintes propriedades:

    • FIRST_NAME

    • MIDDLE_NAME

    • LAST_NAME

    • PASSWORD

    • MUST_CHANGE_PASSWORD

    • MINS_TO_BYPASS_MFA

  • Os seguintes comandos não podem ser usados:

    • ALTER USER RESET PASSWORD

    • ALTER USER SET DISABLE_MFA = TRUE

SNOWFLAKE_SERVICE:

Usuário criado por Snowflake para Snowpark Container Services. Os administradores não podem criar usuários do tipo SNOWFLAKE_SERVICE, nem alterar o tipo de um usuário existente para SNOWFLAKE_SERVICE. Para obter mais informações sobre os usuários SNOWFLAKE_SERVICE, consulte Conexão ao Snowflake de dentro de um contêiner.

LEGACY_SERVICE:

Um usuário com a propriedade TYPE definida como LEGACY_SERVICE representa uma integração não interativa. É semelhante ao SERVICE, mas permite autenticação por senha e SAML. Em um lançamento futuro, o tipo LEGACY_SERVICE será descontinuado e todos os casos de uso não interativos usarão o tipo SERVICE com um método seguro de autenticação.

Os usuários LEGACY_SERVICE têm as seguintes características:

  • Eles podem fazer login usando senha ou autenticação SAML, diferentemente dos usuários SERVICE.

  • Ele tem as propriedades de um usuário SERVICE, mas têm as propriedades PASSWORD e MUST_CHANGE_PASSWORD disponíveis.

  • Eles têm as restrições de comando de um usuário SERVICE, mas podem usar o comando ALTER USER RESET PASSWORD.

  • Eles não são afetados pela aplicação da política de autenticação multifator (MFA). Esta propriedade permite que os administradores definam políticas de autenticação no nível de conta que exigem MFA para autenticação de senha sem precisar definir uma política de autenticação em nível de usuário para impedir que os usuários LEGACY_SERVICE exijam MFA para autenticação de senha.

Funções do usuário

O Snowflake usa funções para controlar os objetos (warehouses virtuais, bancos de dados, tabelas, etc.) que os usuários podem acessar:

  • O Snowflake fornece um conjunto de funções pré-definidas, bem como uma estrutura para definir uma hierarquia de funções personalizadas.

  • Todos os usuários do Snowflake recebem automaticamente a função PUBLIC predefinida, que permite o login no Snowflake e o acesso básico ao objeto.

  • Além da função PUBLIC, cada usuário pode receber funções adicionais, com uma dessas funções designada como função padrão. A função padrão de um usuário determina a função usada nas sessões do Snowflake iniciadas pelo usuário; no entanto, isso é apenas um padrão. Os usuários podem alterar as funções dentro de uma sessão a qualquer momento.

  • As funções podem ser atribuídas na criação do usuário ou posteriormente.

Atenção

Ao decidir as funções adicionais a serem atribuídas a um usuário, bem como ao designar sua função padrão, considere o seguinte para a função predefinida ACCOUNTADMIN (necessária para executar tarefas administrativas no nível da conta):

  • A Snowflake recomenda controlar estritamente a atribuição de ACCOUNTADMIN, mas recomenda atribuir a pelo menos dois usuários.

  • ACCOUNTADMIN não deve nunca ser designado como a função padrão do usuário. Em vez disso, designe uma função administrativa de nível mais baixo ou personalizada como o padrão.

Para obter mais detalhes e práticas recomendadas relacionadas à função ACCOUNTADMIN, consulte Práticas recomendadas de controle de acesso. Para mais informações gerais sobre as funções, consulte Visão geral do controle de acesso.

Privilégios necessários para criar e modificar usuários

Os seguintes privilégios ou funções são necessários para gerenciar os usuários em sua conta:

Criação de usuários:

A função USERADMIN do sistema pode criar usuários usando SQL (CREATE USER).

Se você preferir usar uma função personalizada para essa finalidade, conceda a essa função o privilégio CREATE USER sobre a conta.

Modificação de usuários:

Somente a função com o privilégio OWNERSHIP em um usuário pode modificar a maioria das propriedades do usuário usando SQL (ALTER USER).

Criação de usuários

Esta seção descreve como criar um usuário em uma conta específica usando a interface de sua escolha.

Ao escolher a interface, considere que a interface da Web, independentemente de usar Classic Console ou Snowsight, exige que o usuário especifique uma senha ao criar um usuário. O comando CREATE USER e a API Python UserCollection.create não o fazem.

Nota

Se você quiser criar um usuário que possa acessar várias contas em uma organização, consulte Usuários da organização.

Como usar o Snowsight

  1. Faça login na Snowsight.

  2. Selecione Admin » Users & Roles.

  3. Selecione + User.

  4. No campo User Name, digite um identificador único para o usuário. O usuário usa esse identificador para entrar no Snowflake, a menos que você especifique um nome de login.

  5. Opcionalmente, especifique um endereço de e-mail para o usuário no campo Email.

  6. Nos campos Password e Confirm Password, digite a senha para o usuário.

  7. Opcionalmente, adicione um comentário explicando por que você criou o usuário.

  8. Deixe a caixa de seleção Force user to change password on first time login marcada para forçar o usuário a alterar sua senha ao entrar.

  9. Opcionalmente selecione Advanced User Options para especificar detalhes adicionais sobre o usuário:

    • Login Name para usar em vez do User Name ao entrar no Snowflake.

    • Display Name que aparece após o login.

    • First Name e Last Name para completar o perfil do usuário.

    • Default Role, Default Warehouse e Default Namespace.

  10. Selecione Create User.

Uso do console clássico

  1. Selecione Account Guia de conta » Users.

  2. Selecione Create.

  3. No campo User Name, digite um identificador único para o usuário.

    Nota

    O nome de usuário é o identificador único para o usuário no Snowflake. Ele não é o nome de login do usuário (ou seja, o nome que o usuário usa para fazer login no Snowflake). O Snowflake permite que os usuários tenham nomes de usuário e nomes de login diferentes, se desejarem. O usuário especifica um nome de login para o usuário na tela seguinte.

  4. Nos campos Password e Confirm Password, digite a senha para o usuário.

  5. Deixe a caixa de seleção Force Password Change selecionada para forçar o usuário a alterar sua senha em seu próximo login; caso contrário, desmarque a caixa de seleção.

  6. Selecione Next. A tela Advanced é aberta.

  7. Opcionalmente, insira o Login Name, Display Name e informações pessoais do usuário.

    Nota

    Os usuários precisam de um nome de login para entrar no Snowflake; se você não fornecer explicitamente um nome de login, o Snowflake usa seu nome de usuário como nome de login.

  8. Selecione Next. A tela Preferences é aberta.

  9. Opcionalmente, insira os valores padrão para o usuário:

    • Warehouse virtual

    • Namespace na forma de db_name ou db_name.schema_name

    • Função

  10. Selecione Finish. O Snowflake exibe uma mensagem de sucesso.

Uso de SQL

Use o comando CREATE USER para criar um usuário.

Importante

Ao criar um usuário, se você atribuir uma função padrão ao usuário, você deve então conceder explicitamente essa função ao usuário. Por exemplo:

CREATE USER janesmith PASSWORD = 'abc123' DEFAULT_ROLE = myrole MUST_CHANGE_PASSWORD = TRUE;

GRANT ROLE myrole TO USER janesmith;
Copy

Note que o comando GRANT ROLE permite atribuir várias funções a um único usuário. A interface da Web não oferece suporte atualmente à mesma capacidade.

Como usar o Python

Use a API Python UserCollection.create para criar um usuário.

Importante

Ao criar um usuário, se você atribuir uma função padrão ao usuário, você deve então conceder explicitamente essa função ao usuário. Por exemplo:

from snowflake.core.user import Securable, User

my_user = User(
  name="janesmith",
  password="abc123",
  default_role="myrole",
  must_change_password=True)
root.users.create(my_user)

root.users['janesmith'].grant_role(role_type="ROLE", role=Securable(name='myrole'))
Copy

Desativação ou ativação de um usuário

A desativação de um usuário impede que ele faça login no Snowflake. É possível desativar um usuário por meio das seguintes interfaces.

Como usar o Snowsight

  1. Faça login na Snowsight.

  2. Selecione Admin » Users & Roles.

  3. Localize o usuário que deseja desativar e selecione Mais opções » Disable User.

  4. Na caixa de diálogo de confirmação que se abre, selecione Disable.

Para ativar um usuário, siga as mesmas etapas, mas clique no botão Enable User.

Uso do console clássico

  1. Clique em Account Guia de conta » Users.

  2. Clique em uma linha de usuário para selecioná-lo e, em seguida, clique no botão Disable User. Uma caixa de diálogo de confirmação é aberta.

  3. Clique em Yes para desabilitar o usuário.

Para ativar um usuário, siga as mesmas etapas, mas clique no botão Enable User.

Uso de SQL

Use o comando ALTER USER para desabilitar ou habilitar um usuário. Por exemplo:

  • Desabilitar um usuário:

    ALTER USER janesmith SET DISABLED = TRUE;
    
    Copy
  • Habilitar um usuário:

    ALTER USER janesmith SET DISABLED = FALSE;
    
    Copy

Como usar o Python

Use a API Python UserResource.create_or_alter para desativar ou ativar um usuário. Por exemplo:

  • Desabilitar um usuário:

    user_parameters = root.users["janesmith"].fetch()
    user_parameters.disabled = True
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy
  • Habilitar um usuário:

    user_parameters = root.users["janesmith"].fetch()
    user_parameters.disabled = False
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy

Desbloqueio de um usuário

Se um login de usuário falhar após cinco tentativas consecutivas, o usuário é bloqueado por um tempo (atualmente 15 minutos) sem acesso a sua conta. Após o período, o sistema remove automaticamente o bloqueio e o usuário pode tentar fazer login novamente no sistema.

Para desbloquear o usuário antes do término do tempo, é possível redefinir o temporizador usando o comando ALTER USER ou a API Python UserResource.create_or_alter.

O exemplo a seguir reinicia o temporizador, para 0, o que imediatamente desbloqueia o usuário janesmith:

ALTER USER janesmith SET MINS_TO_UNLOCK= 0;
Copy

Dica

Se uma única função tem o privilégio OWNERSHIP sobre todos os usuários do Snowflake, recomendamos a concessão da função a múltiplos usuários. Dessa forma, se um membro da função for bloqueado, outro membro pode desbloquear esse usuário.

Alteração dos parâmetros de sessão de um usuário

  • Para mostrar os parâmetros de sessão de um usuário, use a seguinte sintaxe SQL:

    SHOW PARAMETERS [ LIKE '<pattern>' ] FOR USER <name>
    
    Copy
  • Para alterar os parâmetros de sessão de um usuário, use a seguinte sintaxe:

    ALTER USER <name> SET <session_param> = <value>
    
    Copy

    Por exemplo, permitir que um usuário permaneça conectado ao Snowflake indefinidamente sem atingir o tempo limite:

    ALTER USER janesmith SET CLIENT_SESSION_KEEP_ALIVE = TRUE;
    
    Copy
  • Para redefinir um parâmetro de sessão para um usuário para o valor padrão, use a seguinte sintaxe:

    ALTER USER <name> UNSET <session_param>
    
    Copy

Modificação de outras propriedades do usuário

É possível modificar todas as outras propriedades de usuário usando o comando ALTER USER ou a API Python UserResource.create_or_alter. Você pode modificar muitas das mesmas propriedades do usuário usando o Snowsight.

Por exemplo:

  • Altere o sobrenome do usuário janesmith para Jones:

    SQL:
    ALTER USER janesmith SET LAST_NAME = 'Jones';
    
    Copy
    Python:
    user_parameters = root.users["janesmith"].fetch()
    user_parameters.last_name = "Jones"
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy
    Snowsight:
    1. Faça login na Snowsight.

    2. Selecione Admin » Users & Roles.

    3. Localize o usuário que deseja desativar e selecione Mais opções » Edit.

    4. Para o campo Last Name, insira Jones:

    5. Selecione Save User.

  • Defina ou altere o warehouse padrão, namespace, função primária e funções secundárias do usuário janesmith:

    SQL:
    ALTER USER janesmith SET DEFAULT_WAREHOUSE = mywarehouse DEFAULT_NAMESPACE = mydatabase.myschema DEFAULT_ROLE = myrole DEFAULT_SECONDARY_ROLES = ('ALL');
    
    Copy
    Python:
    user_parameters = root.users["janesmith"].fetch()
    user_parameters.default_warehouse = "mywarehouse"
    user_parameters.default_namespace = "mydatabase.myschema"
    user_parameters.default_role = "myrole"
    user_parameters.default_secondary_roles = "ALL"
    root.users["janesmith"].create_or_alter(user_parameters)
    
    Copy
    Snowsight:

    Nota

    Você não pode definir funções secundárias padrão para um usuário usando o Snowsight.

    1. Faça login na Snowsight.

    2. Selecione Admin » Users & Roles.

    3. Localize o usuário que deseja desativar e selecione Mais opções » Edit.

    4. Abra Advanced User Options e insira valores nos campos relevantes.

    5. Selecione Save User.

Visualização dos usuários

É possível visualizar informações sobre os usuários usando as seguintes interfaces.

Uso de SQL

Use o comando DESCRIBE USER ou SHOW USERS para visualizar informações sobre um ou mais usuários.

Por exemplo:

DESC USER janeksmith;
Copy

Como usar o Python

Use a API Python UserResource.fetch para obter informações sobre um usuário.

Por exemplo:

my_user = root.users["janesmith"].fetch()
print(my_user.to_dict())
Copy

Use a API Python UserCollection.iter para listar os usuários em uma conta.

Por exemplo:

users = root.users.iter(like="jane%")
for user in users:
  print(user.name)
Copy

Como usar o Snowsight

  1. Faça login na Snowsight.

  2. Selecione Admin » Users & Roles.

  3. Localize o usuário do qual deseja visualizar mais detalhes.

    Você pode revisar o nome de exibição, o status, o horário do último login, a função de propriedade e se o usuário tem ou não autenticação multifator (MFA) configurada. Se o usuário tiver um comentário, você pode passar o mouse sobre ele Ícone de comentário.

  4. Opcionalmente, selecione o usuário para ver mais detalhes, como suas configurações padrão, funções com privilégios concedidos ao usuário e funções concedidas ao usuário.

Descarte de um usuário

Descartar um usuário retira as credenciais do usuário do Snowflake.

Importante

Quando você remove um usuário, as pastas, planilhas e painéis pertencentes a esse usuário se tornam inacessíveis e não são transferidos para outro usuário, a menos que o compartilhamento esteja habilitado.

Os destinatários compartilhados com permissões Ver, Ver + Executar e Editar manterão as permissões atribuídas e ainda poderão acessar as pastas, planilhas e painéis compartilhados. No entanto, somente usuários com permissões Editar podem modificar ou excluir pastas, planilhas e painéis compartilhados. Se você não conceder permissões Editar a pelo menos um outro usuário antes de remover o proprietário, as pastas, planilhas e painéis desse proprietário não poderão ser excluídos.

Se as planilhas de um usuário removido não tiverem o compartilhamento habilitado, um administrador poderá recuperar até 500 planilhas de propriedade do usuário.

Cuidado

Todas as planilhas no Classic Console serão excluídas permanentemente e os painéis ficarão inacessíveis se não tiverem sido compartilhados anteriormente com outro usuário.

Os objetos criados pelo usuário, como tabelas ou exibições, não são descartados porque pertencem à função ativa do usuário quando os objetos foram criados. Outro usuário com a mesma função ou uma função superior na hierarquia de funções pode gerenciar os objetos ou transferir a propriedade para outra função.

Como usar o Snowsight

  1. Faça login na Snowsight.

  2. Selecione Admin » Users & Roles.

  3. Localize o usuário que deseja desativar e selecione Mais opções » Drop.

  4. Na caixa de diálogo de confirmação que se abre, selecione Drop User.

Uso do console clássico

  1. Selecione Account Guia de conta » Users.

  2. Clique em uma linha de usuário para selecioná-la e selecione Drop. Uma caixa de diálogo de confirmação é aberta.

  3. Selecione Yes para descartar o usuário.

Uso de SQL

Use o comando DROP USER para descartar um usuário.

DROP USER janesmith;
Copy

Como usar o Python

Use a API Python UserResource.drop para eliminar um usuário.

root.users["janesmith"].drop()
Copy