ALTER USER

Modifica as propriedades e os parâmetros de objeto/sessão para um usuário existente no sistema:

  • Os administradores podem usar este comando para alterar propriedades e padrões de parâmetros para quaisquer usuários para os quais os administradores tenham os privilégios correspondentes.

  • Os usuários individuais podem usar este comando para alterar propriedades específicas e qualquer padrão de parâmetros de sessão para si mesmos. Para obter mais detalhes, consulte Notas de uso (neste tópico).

Também pode ser usado para abortar todas as consultas (e outras instruções SQL) enviadas pelo usuário.

Consulte também:

CREATE USER , DROP USER, SHOW PARAMETERS, SHOW USERS , DESCRIBE USER

Sintaxe

ALTER USER [ IF EXISTS ] [ <name> ] RENAME TO <new_name>

ALTER USER [ IF EXISTS ] [ <name> ] RESET PASSWORD

ALTER USER [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER USER [ IF EXISTS ] [ <name> ] ADD DELEGATED AUTHORIZATION OF ROLE <role_name> TO SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] REMOVE DELEGATED { AUTHORIZATION OF ROLE <role_name> | AUTHORIZATIONS } FROM SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] SET { AUTHENTICATION | PASSWORD | SESSION } POLICY <policy_name>

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { AUTHENTICATION | PASSWORD | SESSION } POLICY

ALTER USER [ IF EXISTS ] [ <name> ] SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER USER [ IF EXISTS ] [ <name> ] UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER USER [ IF EXISTS ] [ <name> ] SET { [ objectProperties ] [ objectParams ] [ sessionParams ] }

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { <object_property_name> | <object_param_name> | <session_param_name> } [ , ... ]
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>
    DISABLE_MFA = TRUE | FALSE
    RSA_PUBLIC_KEY = <string>
    RSA_PUBLIC_KEY_FP = <string>
    RSA_PUBLIC_KEY_2 = <string>
    RSA_PUBLIC_KEY_2_FP = <string>
    COMMENT = '<string>'
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>
    S3_STAGE_VPCE_DNS_NAME = <string>
    SEARCH_PATH = <string>
    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

name

Especifica o identificador do usuário a ser alterado. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Se o identificador for omitido, a instrução modificará o usuário ativo (ou seja, logado). As restrições descritas em Notas de uso (neste tópico) se aplicam.

RENAME TO new_name

Especifica o novo identificador do usuário; deve ser único para sua conta.

Para obter mais detalhes, consulte Requisitos para identificadores.

RESET PASSWORD

Gera um URL, que pode ser compartilhado com o usuário, que abre uma página da web a partir da qual o usuário pode inserir uma nova senha. O URL gerado é válido para um único uso e expira após 4 horas.

Note que a especificação deste parâmetro não invalida a senha atual do usuário. O usuário pode continuar a usar sua senha atual até redefini-la usando o URL.

Se você deseja invalidar sua senha atual, use SET PASSWORD = 'string' em vez disso, o que muda sua senha para um novo valor.

ABORT ALL QUERIES

Aborta todas as consultas e outras instruções SQL atualmente em execução ou programadas pelo usuário, independentemente do warehouse no qual as consultas estão em execução/agendadas.

Note que o usuário ainda pode entrar no Snowflake e iniciar novas consultas.

Se você quiser abortar todas as consultas em execução/agendadas e impedir que o usuário entre no Snowflake ou inicie novas consultas, especifique SET DISABLED = TRUE em vez disso.

ADD DELEGATED AUTHORIZATION OF ROLE role_name TO SECURITY INTEGRATION integration_name;

Adiciona o consentimento do usuário para iniciar uma sessão usando uma função específica para uma determinada integração.

Para obter mais detalhes, consulte Adição de autorizações delegadas para consentimento do usuário do OAuth.

REMOVE DELEGATED AUTHORIZATION OF ROLE role_name FROM SECURITY INTEGRATION integration_name , . REMOVE DELEGATED AUTHORIZATIONS FROM SECURITY INTEGRATION integration_name

Revoga o consentimento para o usuário:

  • A primeira sintaxe revoga o consentimento para uma integração de segurança específica para uma função específica. Isto tem o efeito de revogar qualquer token de acesso OAuth associado à integração e à função específica.

  • A segunda sintaxe revoga todo o consentimento de uma integração de segurança especificada. Isto tem o efeito de revogar qualquer token de acesso OAuth associado à integração.

Para obter mais detalhes, consulte:

{ AUTHENTICATION | PASSWORD | SESSION } POLICY policy_name

Especifica uma das seguintes políticas para o usuário:

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.

Propriedades do objeto (objectProperties)

SET property_name = property_value [ ... ] , . UNSET property_name [ , ... ]

Especifica uma (ou mais) propriedade do objeto a serem definidas ou não para o uso. A remoção de uma propriedade de objeto a redefine como padrão.

Para obter mais detalhes sobre as propriedades do objeto que você pode definir (por exemplo, PASSWORD, LOGIN_NAME, DEFAULT_ROLE), consulte CREATE USER.

Nota

As propriedades dos objetos EXT_AUTHN_DUO e EXT_AUTHN_UID não podem ser modificadas.

Para ativar ou desativar a autenticação multifator, modifique a propriedade DISABLE_MFA do usuário. Quando um administrador de conta executa o comando ALTER USER para definir DISABLE_MFA como TRUE, o valor para a propriedade EXT_AUTHN_DUO é automaticamente definido como FALSE.

Consulte Notas de uso (neste tópico) para obter detalhes mais gerais sobre a configuração e o cancelamento de propriedades.

Parâmetros de objeto (objectParams)

SET ...

Especifica um ou mais parâmetros a serem definidos para o usuário (separados por espaços em branco, vírgulas ou novas linhas):

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 a política de redes que está ativa para o usuário.

Consulte também Notas de uso (neste tópico) para detalhes mais gerais sobre como definir e remover parâmetros.

UNSET ...

Especifica as propriedades a serem removidas para a usuário, o que as restaura para os padrões.

  • NETWORK_POLICY

  • SESSION POLICY

  • TAG tag_name [ , tag_name ... ]

Parâmetros de sessão (sessionParams)

SET session_param_name = param_value [ ... ] , . UNSET session_param_name [ , ... ]

Especifica um (ou mais) parâmetros de sessão a serem definidos ou não para o usuário. O cancelamento de um parâmetro de sessão o redefine como padrão.

Para obter mais detalhes sobre os parâmetros da sessão que você pode definir (ABORT_DETACHED_SESSION, AUTOCOMMIT etc.), consulte Parâmetros.

Consulte também Notas de uso (neste tópico) para detalhes mais gerais sobre como definir e remover parâmetros.

Notas de uso

  • Somente a função com o privilégio OWNERSHIP para o usuário, ou uma função superior, pode executar este comando para modificar a maioria das propriedades de usuário.

    Dica

    Ao alterar a senha de um usuário usando SET PASSWORD = 'string', recomendamos também especificar MUST_CHANGE_PASSWORD = TRUE para forçar o usuário a entrar na interface da web e alterar sua senha antes que ele possa entrar no Snowflake por qualquer outra interface (por exemplo, SnowSQL ou outro aplicativo cliente).

    Opcionalmente, use RESET PASSWORD para gerar um URL para uma página da web que o usuário possa acessar para alterar sua senha.

  • Os usuários individuais podem executar o comando ALTER USER em si mesmos (isto é, especificando seu nome de usuário/identificador no comando) e alterar o seguinte:

    • DEFAULT_WAREHOUSE

    • DEFAULT_NAMESPACE

    • DEFAULT_ROLE

    • Qualquer um de seus padrões de parâmetros de sessão

    Note que os usuários não podem usar este comando para mudar sua senha. Por razões de segurança, o Snowflake só permite aos usuários mudar suas senhas de dentro da interface da web.

    No entanto, um administrador com os privilégios apropriados pode usar este comando com SET PASSWORD = 'string' para alterar a senha de um usuário.

    Dica

    Ao alterar a senha de um usuário, recomendamos também especificar MUST_CHANGE_PASSWORD = TRUE para forçar o usuário a entrar na interface da web e alterar sua senha antes que ele possa entrar no Snowflake por qualquer outra interface (por exemplo, SnowSQL ou outro aplicativo cliente).

    Opcionalmente, use RESET PASSWORD para gerar um URL para uma página da web que o usuário possa acessar para alterar sua senha.

  • Uma instrução ALTER USER não verifica que os objetos padrão (DEFAULT_WAREHOUSE, DEFAULT_NAMESPACE e DEFAULT_ROLE) existem. Observe que DEFAULT_SECONDARY_ROLES não aceita um nome de objeto como valor, mas uma instrução ALTER USER verifica que um valor suportado é especificado.

  • Você pode definir e remover propriedades de múltiplos objetos e parâmetros de objeto/sessão com uma única instrução ALTER:

    • Ao definir várias propriedades/parâmetros, separe-os com espaços em branco, vírgulas ou novas linhas.

    • Ao remover várias propriedades/parâmetros, eles devem ser separados por uma vírgula. Além disso, ao remover uma propriedade/parâmetro, especifique somente o nome; especificar um valor para a propriedade/parâmetro retornará um erro.

  • Se você especificar SET DISABLED = TRUE para um usuário:

    • Todas as consultas e outras instruções SQL atualmente em execução ou programadas pelo usuário são abortadas e o usuário não pode iniciar consultas adicionais.

    • O usuário fica bloqueado no Snowflake e não pode entrar novamente no sistema.

    Se você quiser apenas abortar todas as consultas/instruções em execução e programadas para um usuário, use ABORT ALL QUERIES em vez disso.

  • 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.

Exemplos

Renomear user1 como user2:

ALTER USER user1 RENAME TO user2;
Copy

Definir a senha de um usuário chamado user1 como H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt e exigir que o usuário altere sua senha acessando a interface da web do Snowflake:

ALTER USER user1 SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;
Copy

Remover um comentário existente de um usuário:

ALTER USER user1 UNSET COMMENT;
Copy