CREATE USER

Cria um novo usuário ou substitui um usuário existente no sistema. Para obter mais detalhes, consulte Gerenciamento de usuários.

Nota

Somente administradores de usuários (ou seja, usuários com a função USERADMIN ou superior), ou outra função com o privilégio CREATE USER para a conta podem criar usuários.

Consulte também:

DROP USER , ALTER USER , DESCRIBE USER , SHOW PARAMETERS

Sintaxe

CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
  [ objectProperties ]
  [ objectParams ]
  [ sessionParams ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Copy

Onde:

objectProperties ::=
  PASSWORD = '<string>'
  LOGIN_NAME = <string>
  DISPLAY_NAME = <string>
  FIRST_NAME = <string>
  MIDDLE_NAME = <string>
  LAST_NAME = <string>
  EMAIL = <string>
  MUST_CHANGE_PASSWORD = TRUE | FALSE
  DISABLED = TRUE | FALSE
  DAYS_TO_EXPIRY = <integer>
  MINS_TO_UNLOCK = <integer>
  DEFAULT_WAREHOUSE = <string>
  DEFAULT_NAMESPACE = <string>
  DEFAULT_ROLE = <string>
  DEFAULT_SECONDARY_ROLES = ( 'ALL' )
  MINS_TO_BYPASS_MFA = <integer>
  RSA_PUBLIC_KEY = <string>
  RSA_PUBLIC_KEY_FP = <string>
  RSA_PUBLIC_KEY_2 = <string>
  RSA_PUBLIC_KEY_2_FP = <string>
  COMMENT = '<string_literal>'
Copy
objectParams ::=
  ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
  NETWORK_POLICY = <string>
Copy
sessionParams ::=
  ABORT_DETACHED_QUERY = TRUE | FALSE
  AUTOCOMMIT = TRUE | FALSE
  BINARY_INPUT_FORMAT = <string>
  BINARY_OUTPUT_FORMAT = <string>
  DATE_INPUT_FORMAT = <string>
  DATE_OUTPUT_FORMAT = <string>
  ERROR_ON_NONDETERMINISTIC_MERGE = TRUE | FALSE
  ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE | FALSE
  JSON_INDENT = <num>
  LOCK_TIMEOUT = <num>
  QUERY_TAG = <string>
  ROWS_PER_RESULTSET = <num>
  SIMULATED_DATA_SHARING_CONSUMER = <string>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>
  STRICT_JSON_OUTPUT = TRUE | FALSE
  TIMESTAMP_DAY_IS_ALWAYS_24H = TRUE | FALSE
  TIMESTAMP_INPUT_FORMAT = <string>
  TIMESTAMP_LTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_NTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_OUTPUT_FORMAT = <string>
  TIMESTAMP_TYPE_MAPPING = <string>
  TIMESTAMP_TZ_OUTPUT_FORMAT = <string>
  TIMEZONE = <string>
  TIME_INPUT_FORMAT = <string>
  TIME_OUTPUT_FORMAT = <string>
  TRANSACTION_DEFAULT_ISOLATION_LEVEL = <string>
  TWO_DIGIT_CENTURY_START = <num>
  UNSUPPORTED_DDL_ACTION = <string>
  USE_CACHED_RESULT = TRUE | FALSE
  WEEK_OF_YEAR_POLICY = <num>
  WEEK_START = <num>
Copy

Nota

Para fins de legibilidade, a lista completa de parâmetros de sessão que podem ser definidos para um usuário não está incluída aqui. Para uma lista completa de todos os parâmetros de sessão com suas descrições, bem como parâmetros de conta e objeto, consulte Parâmetros.

Parâmetros obrigatórios

name

Identificador do usuário; deve ser único para sua conta.

O identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

Nota

O usuário não usa este valor para entrar no Snowflake; em vez disso, o usuário usa o valor especificado para a propriedade LOGIN_NAME para fazer login. Entretanto, se nenhum nome de login for explicitamente especificado para o usuário, o nome de usuário/identificador serve como o nome de login padrão.

Propriedades opcionais do objeto (objectProperties)

PASSWORD = 'string'

A senha para o usuário deve ser inserida entre aspas simples ou duplas. Se nenhuma senha for especificada, o usuário não poderá entrar no Snowflake até que uma senha tenha sido explicitamente especificada para ele.

Se a senha usar a barra invertida (ou seja, \), escape o caractere com uma barra invertida ou use delimitadores de cifrão duplo (ou seja, $$) ao especificar a senha em um comando SQL. Para obter mais detalhes, consulte Tipos de dados de cadeia de caracteres e binários.

Para obter mais informações sobre senhas no Snowflake, consulte Políticas de senhas.

Padrão: NULL

LOGIN_NAME = string

Nome que o usuário digita para fazer login no sistema. Os nomes de login dos usuários devem ser únicos em toda a sua conta.

Um nome de login pode ser qualquer cadeia de caracteres, incluindo espaços e caracteres não alfanuméricos, tais como pontos de exclamação (!), sinais de porcentagem (%) e asteriscos (*); entretanto, se a cadeia de caracteres contiver espaços ou caracteres não alfanuméricos, ela deve ser delimitada por aspas simples ou duplas. Os nomes de login não fazem distinção entre letras maiúsculas e minúsculas.

O Snowflake permite especificar diferentes nomes de usuário e de login para permitir o uso de identificadores comuns (por exemplo, endereços de e-mail) para login.

Padrão: nome/identificador do usuário (isto é, se nenhum valor for especificado, o valor especificado para name é usado como o nome de login)

DISPLAY_NAME = string

Nome exibido para o usuário na interface da web do Snowflake.

Padrão: nome/identificador do usuário (isto é, se nenhum valor for especificado, o valor especificado para name é usado como o nome de exibição)

FIRST_NAME = string , . MIDDLE_NAME = string , . LAST_NAME = string

Nome, nome do meio e sobrenome do usuário.

Padrão: NULL

EMAIL = string

Endereço de e-mail do usuário.

Não é necessário um endereço de e-mail para usar o Snowflake; entretanto, para acessar a Comunidade Snowflake para abrir tíquetes de suporte ou contribuir para os fóruns da comunidade, um endereço de e-mail válido deve ser especificado para o usuário.

Recomendamos especificar um endereço de e-mail comercial em vez de um endereço de e-mail pessoal. Os endereços de e-mail dos usuários ficam visíveis para todos os outros usuários em sua conta Snowflake.

Padrão: NULL

MUST_CHANGE_PASSWORD = TRUE | FALSE

Especifica se o usuário é forçado a alterar sua senha no próximo login (incluindo seu primeiro login/login inicial) no sistema.

Padrão: FALSE

DISABLED = TRUE | FALSE

Especifica se o usuário está desabilitado, o que impede as seguintes ações:

  • Para um novo usuário, o usuário fica bloqueado fora do Snowflake e não pode entrar no sistema.

  • Para um usuário existente, a configuração da propriedade anula todas as suas consultas atualmente em andamento e não permite que o usuário faça novas consultas; o usuário também é imediatamente bloqueado do Snowflake e não pode voltar a entrar no sistema.

Padrão: FALSE

DAYS_TO_EXPIRY = integer

Especifica o número de dias após os quais o status do usuário é definido como “Expirado” e o usuário não tem mais permissão para fazer o login. Isto é útil para definir usuários temporários (ou seja, usuários que só devem ter acesso ao Snowflake por um período limitado). Em geral, você não deve definir esta propriedade para administradores de conta (ou seja, usuários com a função ACCOUNTADMIN) porque o Snowflake os bloqueia quando eles se tornam “Expirados”.

Uma vez definido, o valor conta até 0, mas não para. Um valor negativo indica que o status para o usuário está “Expirado”. Para redefinir o valor, use ALTER USER para definir os seguintes valores:

  • Para reativar o usuário como um usuário temporário, defina o valor como um valor maior que 0.

  • Para especificar o usuário como um usuário permanente, defina o valor como NULL ou 0.

Padrão: NULL

MINS_TO_UNLOCK = integer

Especifica o número de minutos até que o bloqueio temporário no login de usuário seja liberado. Para proteger contra login de usuários não autorizados, o Snowflake coloca um bloqueio temporário em um usuário após cinco tentativas consecutivas sem sucesso de login:

  • Um valor positivo indica que o status do usuário é “Bloqueado”.

  • Uma vez que o valor é reduzido para 0 (ou um valor negativo), o bloqueio é liberado e o usuário tem permissão para fazer login novamente.

  • Quando o usuário faz login com sucesso no Snowflake, o valor é redefinido para NULL.

Ao criar um usuário, esta propriedade pode ser configurada para impedir que ele faça o login até que o tempo especificado expire.

Para remover imediatamente um cadeado para um usuário, use ALTER USER e especifique um valor de 0 para este parâmetro.

Padrão: NULL

DEFAULT_WAREHOUSE = string

Especifica o warehouse virtual que está ativo por padrão para a sessão do usuário no momento do login.

Um usuário pode especificar ou alterar seu warehouse virtual padrão atual usando ALTER USER. Além disso, após iniciar uma sessão (isto é, fazer login), um usuário pode mudar o warehouse virtual para a sessão usando USE WAREHOUSE.

Observe que a operação CREATE USER não verifica se o warehouse existe.

Padrão: NULL

DEFAULT_NAMESPACE = string

Especifica o namespace (banco de dados apenas ou banco de dados e esquema) que está ativo por padrão para a sessão do usuário no momento do login:

  • Para especificar apenas um banco de dados, digite o nome do banco de dados.

  • Para especificar um esquema, digite o nome do esquema totalmente qualificado na forma de db_name.schema_name.

Um usuário pode especificar ou alterar seu namespace padrão atual usando ALTER USER. Além disso, após iniciar uma sessão (ou seja, fazer o login), o usuário pode mudar o namespace de sua sessão usando USE DATABASE ou USE SCHEMA.

Observe que a operação CREATE USER não verifica se o namespace existe.

Padrão: NULL

DEFAULT_ROLE = string

Especifica a função principal que está ativa por padrão para a sessão do usuário no momento do login. A função principal é uma única função que autoriza a execução de instruções CREATE <objeto> ou qualquer outra ação SQL. As permissões para realizar estas ações podem ser concedidas à função principal ou a qualquer função inferior na hierarquia de funções.

Observe que a especificação de uma função padrão para um usuário não concede a função ao usuário. A função deve ser concedida explicitamente ao usuário usando o comando GRANT ROLE. Além disso, a operação CREATE USER não verifica se a função existe.

Um usuário pode especificar ou alterar sua função padrão atual usando ALTER USER. Além disso, após iniciar uma sessão (isto é, fazer login), um usuário pode mudar a função para a sessão usando USE ROLE. Em ambos os casos, eles só podem escolher entre as funções que lhes foram explicitamente atribuídas.

Padrão: NULL

DEFAULT_SECONDARY_ROLES = ( 'ALL' )

Especifica o conjunto de funções secundárias que estão ativas para a sessão do usuário após o login. As funções secundárias são um conjunto de funções que autorizam qualquer ação SQL diferente da execução de instruções CREATE <objeto>. As permissões para realizar estas ações podem ser concedidas à função principal, às funções secundárias ou a quaisquer funções inferiores nas hierarquias de funções.

Observe que a especificação de uma função secundária padrão para um usuário não concede a função ao usuário. A função também deve ser concedida explicitamente ao usuário usando o comando GRANT ROLE.

Os seguintes valores são suportados:

ALL:

Todas as funções que foram concedidas ao usuário.

Observe que o conjunto de funções é reavaliado quando cada instrução SQL é executada. Se funções adicionais forem concedidas ao usuário, e esse usuário executar uma nova instrução SQL, as novas funções concedidas serão funções secundárias ativas para a nova instrução SQL. A mesma lógica se aplica às funções que são revogadas de um usuário.

Padrão: NULL

MINS_TO_BYPASS_MFA = integer

Especifica número de minutos para contornar temporariamente o MFA para o usuário.

Esta propriedade pode ser usada para permitir que um usuário inscrito na MFA possa contornar temporariamente a MFA durante o login, caso seu dispositivo de MFA não esteja disponível.

RSA_PUBLIC_KEY = string

Especifica a chave pública do usuário RSA; usada para autenticação do par de chaves.

RSA_PUBLIC_KEY_FP = string

Especifica a impressão digital da chave pública do usuário RSA; usada para autenticação do par de chaves.

RSA_PUBLIC_KEY_2 = string

Especifica a segunda chave pública do usuário RSA; usada para rotacionar as chaves públicas e privadas para autenticação do par de chaves com base em um cronograma de validade definido por sua organização.

RSA_PUBLIC_KEY_2_FP = string

Especifica a impressão digital da segunda chave pública do usuário RSA; usada para rotacionar as chaves públicas e privadas para autenticação do par de chaves com base em um cronograma de validade definido por sua organização.

COMMENT = 'string_literal'

Especifica um comentário para o usuário.

Padrão: NULL

Parâmetros opcionais do objeto (objectParams)

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

Controla como as consultas que falham devido a erros de sintaxe ou análise aparecem em um histórico de consultas. Se FALSE, os conteúdos de uma consulta com falha é editado das exibições, páginas e funções que fornecem um histórico de consulta.

Este parâmetro controla o comportamento do usuário que visualiza o histórico da consulta, não do usuário que executou a consulta.

Somente os usuários com uma função que recebeu ou herdou o privilégio AUDIT podem definir o parâmetro ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR.

NETWORK_POLICY = string

Especifica que uma política de redes existente está ativa para o usuário. A política de redes restringe a lista de endereços IP do usuário ao trocar um código de autorização por um token de acesso ou de atualização e ao usar um token de atualização para obter um novo token de acesso.

Se este parâmetro não for definido, a política de redes para a conta (se houver) é utilizada em seu lugar.

Parâmetros opcionais de sessão (sessionParams)

Especifica uma (ou mais) predefinições de parâmetros de sessão a serem definidas para o usuário (separados por espaços em branco, vírgulas ou novas linhas). Estes padrões são definidos cada vez que o usuário entra no Snowflake e inicia a sessão. O próprio usuário pode sempre alterar estes padrões dentro da sessão usando ALTER SESSION.

Para obter a lista completa dos parâmetros da sessão, incluindo seus valores padrão, que podem ser especificados para um usuário, consulte Parâmetros.

Parâmetros opcionais

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter mais detalhes sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

CREATE USER

Conta

Only the USERADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

Exemplos

Criar um usuário com todas as propriedades padrão, uma função padrão e uma senha básica que deve ser alterada pelo usuário após seu primeiro login:

CREATE USER user1 PASSWORD='abc123' DEFAULT_ROLE = myrole DEFAULT_SECONDARY_ROLES = ('ALL') MUST_CHANGE_PASSWORD = TRUE;
Copy