ALTER AUTHENTICATION POLICY¶
Modifica as propriedades de uma política de autenticação.
- Consulte também:
CREATE AUTHENTICATION POLICY, DESCRIBE AUTHENTICATION POLICY, DROP AUTHENTICATION POLICY, SHOW AUTHENTICATION POLICIES
Sintaxe¶
ALTER AUTHENTICATION POLICY <name> RENAME TO <new_name>
ALTER AUTHENTICATION POLICY [ IF EXISTS ] <name> SET
[ AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_ENROLLMENT = { REQUIRED | OPTIONAL } ]
[ MFA_POLICY= ( ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } [ , { 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) ) ]
[ CLIENT_TYPES = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ SECURITY_INTEGRATIONS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ PAT_POLICY = ( {list_of_properties} ) ]
[ COMMENT = '<string_literal>' ]
ALTER AUTHENTICATION POLICY [ IF EXISTS ] <name> UNSET
[ CLIENT_TYPES ]
[ AUTHENTICATION_METHODS ]
[ SECURITY_INTEGRATIONS ]
[ MFA_AUTHENTICATION_METHODS ]
[ MFA_ENROLLMENT ]
[ MFA_POLICY ]
[ PAT_POLICY ]
[ COMMENT ]
Parâmetros¶
name
Especifica o identificador para a política de autenticação a ser alterada.
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.
Para obter mais informações, consulte Requisitos para identificadores.
RENAME TO ...
Especifica um novo nome para uma política de autenticação existente.
SET ...
Especifica uma ou mais propriedades a serem definidas para a política de autenticação, separadas por espaços em branco, vírgulas ou novas linhas.
AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )
Altera os métodos de autenticação permitidos durante o login. Este parâmetro aceita um ou mais dos seguintes valores:
Cuidado
A restrição por método de autenticação pode ter consequências indesejadas, como o bloqueio de conexões de driver ou integrações de terceiros.
ALL
Permitir todos os métodos de autenticação.
SAML
Permite integrações de segurança SAML2. Se
SAML
estiver presente, uma opção de login SSO será exibida. SeSAML
não estiver presente, uma opção de login SSO não aparecerá.PASSWORD
Permite que os usuários se autentiquem usando nome de usuário e senha.
OAUTH
Permite OAuth externo.
KEYPAIR
Permite autenticação do par de chaves.
PROGRAMMATIC_ACCESS_TOKEN
Permite que os usuários se autentiquem com um token de acesso programático.
Padrão:
ALL
.MFA_AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )
Uma lista de métodos de autenticação que impõem autenticação multifator (MFA) durante o login. Os métodos de autenticação não listados neste parâmetro não solicitam autenticação multifator.
Os seguintes métodos de autenticação são compatíveis com MFA:
SAML
PASSWORD
Este parâmetro aceita um ou mais dos seguintes valores:
SAML
Solicita MFA aos usuários, se estiverem inscritos em MFA, ao autenticar com integrações SAML2 de segurança.
PASSWORD
Solicita MFA aos usuários, caso estejam inscritos para MFA, ao autenticar com um nome de usuário e senha.
Padrão:
('PASSWORD', 'SAML')
.MFA_ENROLLMENT = { REQUIRED | OPTIONAL }
Altera se um usuário deve se registrar para autenticação multifator.
REQUIRED
Obriga os usuários a se inscreverem para MFA. Se esse valor for usado, o parâmetro
CLIENT_TYPES
deverá incluirSNOWFLAKE_UI
, visto que Snowsight é o único lugar onde os usuários podem se registrar na autenticação multifator (MFA).OPTIONAL
Os usuários podem escolher se desejam se inscrever para MFA.
Padrão:
REQUIRED
.MFA_POLICY= ( ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } [ , { 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) )
Especifica os métodos de autenticação multifator (MFA) que os usuários podem usar como um segundo fator de autenticação. Você pode especificar mais de um método.
ALL
Os usuários podem usar uma chave de acesso, um aplicativo autenticador ou o Duo como segundo fator de autenticação.
PASSKEY
Os usuários podem usar uma chave de acesso como segundo fator de autenticação.
TOTP
Os usuários podem usar um aplicativo autenticador como segundo fator de autenticação.
DUO
Os usuários podem usar o Duo como segundo fator de autenticação.
CLIENT_TYPES = ( 'string_literal' [ , 'string_literal' , ... ] )
Altera quais clientes podem autenticar com Snowflake.
Se um cliente tentar se conectar e não for um dos valores válidos de
CLIENT_TYPES
listados abaixo, a tentativa de login falhará.Se você definir
MFA_ENROLLMENT
comoREQUIRED
, deverá incluirSNOWFLAKE_UI
na listaCLIENT_TYPES
para permitir que os usuários se inscrevam em MFA.Se você quiser excluir
SNOWFLAKE_UI
da listaCLIENT_TYPES
, deverá definirMFA_ENROLLMENT
comoOPTIONAL
.The
CLIENT_TYPES
property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.Esta propriedade aceita um ou mais dos seguintes valores:
ALL
Permitir que todos os clientes se autentiquem.
SNOWFLAKE_UI
Snowsight ou Classic Console, as interfaces da Web do Snowflake.
Cuidado
If
SNOWFLAKE_UI
is not included in theCLIENT_TYPES
list whileMFA_ENROLLMENT
is set toREQUIRED
, orMFA_ENROLLMENT
is unspecified, MFA enrollment doesn’t work.DRIVERS
Os drivers permitem acesso ao Snowflake a partir de aplicativos escritos em linguagens suportadas. Por exemplo, os drivers Go, JDBC, .NET e Snowpipe Streaming.
Cuidado
Se
DRIVERS
não estiver incluído na listaCLIENT_TYPES
, a ingestão automatizada poderá parar de funcionar.SNOWFLAKE_CLI
Um cliente de linha de comando para se conectar ao Snowflake e para gerenciar cargas de trabalho centradas no desenvolvedor e operações SQL.
SNOWSQL
Um cliente de linha de comando para conexão com o Snowflake.
Se um cliente tentar se conectar e não for um dos
CLIENT_TYPES
válidos, a tentativa de login falhará. SeCLIENT_TYPES
não estiver definido, qualquer cliente poderá se conectar.Padrão:
ALL
.SECURITY_INTEGRATIONS = ( 'string_literal' [ , 'string_literal' , ... ] )
Altera as integrações de segurança às quais a política de autenticação está associada. Este parâmetro não tem efeito quando
SAML
ouOAUTH
não estão na listaAUTHENTICATION_METHODS
.Todos os valores da lista
SECURITY_INTEGRATIONS
devem ser compatíveis com os valores da listaAUTHENTICATION_METHODS
. Por exemplo, seSECURITY_INTEGRATIONS
contiver uma integração de segurança SAML eAUTHENTICATION_METHODS
contiverOAUTH
, não será possível criar a política de autenticação.ALL
Permitir todas as integrações de segurança.
Padrão:
ALL
.
PAT_POLICY = ( list_of_properties )
Especifica as políticas para tokens de acesso programático. Defina isso como uma lista delimitada por espaço de uma ou mais das seguintes propriedades e valores:
DEFAULT_EXPIRY_IN_DAYS = number_of_days
Especifica o tempo de expiração padrão (em dias) para um token de acesso programático. Você pode especificar um valor de 1 até o tempo máximo (que pode ser especificado pela configuração MAX_EXPIRY_IN_DAYS).
O tempo de expiração padrão é de 15 dias.
Para obter mais informações, consulte Configuração do tempo de expiração padrão.
MAX_EXPIRY_IN_DAYS = number_of_days
Especifica o número máximo de dias que podem ser definidos para o tempo de expiração de um token de acesso programático. Você pode especificar um valor de 1 a 365.
O tempo de expiração máximo padrão é de 365 dias.
Nota
Se houver tokens de acesso programático existentes com tempos de expiração que excedam o novo tempo máximo de expiração, as tentativas de autenticação com esses tokens falharão.
Por exemplo, suponha que você gere um token de acesso programático chamado
my_token
com o tempo de expiração de 7 dias. Se você alterar posteriormente o tempo máximo de expiração de todos os tokens para 2 dias, a autenticação commy_token
falhará porque o tempo de expiração do token excede o novo tempo máximo de expiração.Para obter mais informações, consulte Configuração do tempo máximo de expiração.
NETWORK_POLICY_EVALUATION = { ENFORCED_REQUIRED | ENFORCED_NOT_REQUIRED | NOT_ENFORCED }
Especifica como os requisitos de política de redes são tratados para tokens de acesso programático.
Por padrão, um usuário deve estar sujeito a uma política de redes com uma ou mais regras de rede para gerar ou usar tokens de acesso programático:
Os usuários do serviço (com TYPE=SERVICE) devem estar sujeitos a uma política de redes para gerar e usar tokens de acesso programático.
Os usuários humanos (com TYPE=PERSON) devem estar sujeitos a uma política de redes para usar tokens de acesso programático.
Para substituir esse comportamento, defina essa propriedade como um dos seguintes valores:
ENFORCED_REQUIRED
(comportamento padrão)O usuário deve estar sujeito a uma política de redes para gerar e usar tokens de acesso programático.
Se o usuário estiver sujeito a uma política de redes, a política de redes será aplicada durante a autenticação.
ENFORCED_NOT_REQUIRED
O usuário não precisa estar sujeito a uma política de redes para gerar e usar tokens de acesso programático.
Se o usuário estiver sujeito a uma política de redes, a política de redes será aplicada durante a autenticação.
NOT_ENFORCED
O usuário não precisa estar sujeito a uma política de redes para gerar e usar tokens de acesso programático.
Se o usuário estiver sujeito a uma política de redes, a política de redes não será aplicada durante a autenticação.
Por exemplo:
PAT_POLICY=( DEFAULT_EXPIRY_IN_DAYS=30 MAX_EXPIRY_IN_DAYS=365 NETWORK_POLICY_EVALUATION = ENFORCED_NOT_REQUIRED );
COMMENT = 'string_literal'
Altera o comentário da política de autenticação.
UNSET ...
Especifica as propriedades a serem removidas para a política de autenticação, o que as restaura para os padrões.
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
Notas |
---|---|---|
OWNERSHIP |
Política de autenticação |
Only the SECURITYADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. |
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.
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¶
Se você quiser atualizar uma política de autenticação existente e precisar ver a definição da política, execute o comando DESCRIBE AUTHENTICATION POLICY ou a função GET_DDL.
Exemplos¶
Altere a lista de clientes permitidos em uma política de autenticação:
ALTER AUTHENTICATION POLICY restrict_client_types_policy SET CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWSQL');