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:
Sintaxe¶
CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
[ objectProperties ]
[ objectParams ]
[ sessionParams ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
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>'objectParams ::= ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE NETWORK_POLICY = <string>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>
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
ou0
.
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 informações 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;