Uso de políticas de sessão¶
Este tópico fornece exemplos sobre como usar políticas de sessão.
Política de sessão padrão¶
As etapas a seguir são um guia representativo para criar uma política de sessão e configurar a política de sessão em uma conta ou usuário.
Esses passos pressupõem uma abordagem de gerenciamento centralizado no qual uma função personalizada chamada policy_admin possui a política da sessão (ou seja, tem o privilégio OWNERSHIP da política da sessão) e é responsável por definir a política de sessão de uma conta ou usuário (ou seja, tem o privilégio APPLY SESSION POLICY sobre ACCOUNT ou o privilégio APPLY SESSION POLICY ON USER).
Nota
Para definir uma política em uma conta, a função personalizada policy_admin deve ter as seguintes permissões:
USAGE no banco de dados e no esquema que contém a política de sessão.
CREATE SESSION POLICY no esquema que contém a política de sessão.
Siga os passos a seguir para implementar uma política de sessão.
Crie uma função personalizada que permita aos usuários criar e gerenciar políticas de sessão. Ao longo deste exemplo, a função personalizada é
policy_admin, embora a função possa ter qualquer nome apropriado.Se a função personalizada já existir, continue para o próximo passo.
Caso contrário, crie a função personalizada
policy_admin:Conceda privilégios à função personalizada.
Se a função personalizada
policy_adminainda não tiver os seguintes privilégios, conceda-os como mostrado abaixo:USAGE no banco de dados e no esquema que conterá a política de sessão.
CREATE SESSION POLICY no esquema que conterá a política de sessão.
APPLY SESSION POLICY na conta.
APPLY SESSION POLICY em cada usuário, se você planeja definir políticas de sessão em nível de usuário.
Se for associar uma política de sessão a um usuário individual:
Para obter mais informações, consulte Resumo de comandos, operações e privilégios.
Crie uma nova política de sessão.
Para obter mais informações, consulte CREATE SESSION POLICY.
Defina a política de sessão da conta com o comando ALTER ACCOUNT ou um usuário com o comando ALTER USER.
Importante
Para substituir uma política de sessão que já está definida para uma conta ou usuário, primeiro desative a política de sessão e depois defina a nova política de sessão para a conta ou usuário. Por exemplo:
Especificar funções secundárias em uma política de sessão¶
As seções a seguir detalham como especificar funções secundárias em uma política de sessão:
Para obter mais informações sobre funções secundárias em uma política de sessão, consulte Funções secundárias em uma política de sessão.
Definir a propriedade em uma política de sessão¶
O administrador de segurança pode criar uma nova política de sessão ou modificar uma política de sessão existente para definir a propriedade ALLOWED_SECONDARY_ROLES. Por exemplo:
Crie uma nova política de sessão para permitir todas as funções secundárias:
Modifique uma política de sessão existente para proibir funções secundárias:
O comando ALTER SESSION POLICY pode modificar o valor da propriedade se a propriedade já estiver definida.
Para detalhes sobre a sintaxe, consulte Gerenciamento de políticas de sessão.
Você pode usar o comando DESCRIBE SESSION POLICY ou chamar a função GET_DDL para exibir o valor da propriedade ALLOWED_SECONDARY_ROLES.
Desconfigurar a propriedade em uma política de sessão¶
Você pode usar um comando ALTER SESSION POLICY para desconfigurar funções secundárias na política de sessão:
Proibir funções secundárias para todos os usuários na conta¶
Para impedir que todos os usuários em uma conta usem funções secundárias, defina uma política de sessão na conta que não permita funções secundárias para a sessão. Por exemplo:
Modifique uma política de sessão para proibir funções secundárias:
Atribuir a política de sessão à conta:
Se um usuário tentar ativar funções secundárias com um comando USE SECONDARY ROLES, como USE SECONDARY ROLES analyst;, a seguinte mensagem de erro ocorrerá:
Proibir funções secundárias para um usuário específico¶
Para impedir que um usuário específico use funções secundárias, defina uma política de sessão para o usuário que não permita funções secundárias para a sessão. Por exemplo, se essa política de sessão já existir:
Se houver uma política de sessão definida na conta, a política de sessão atribuída ao usuário substituirá a política de sessão na conta.
Se o usuário executar um comando USE SECONDARY ROLES para ativar funções secundárias, como USE SECONDARY ROLES (ANALYST, DATA_SCIENTIST);, ele verá a seguinte mensagem de erro:
Permitir que um usuário utilize funções secundárias específicas¶
Para permitir que um usuário utilize funções secundárias específicas, faça o seguinte:
Crie uma política de sessão que especifique as funções secundárias que um usuário pode usar:
Defina a política de sessão no usuário:
O usuário pode ativar as funções secundárias conforme necessário com um comando USE SECONDARY ROLES. Por exemplo:
Ative todas as funções secundárias:
Ative
DATA_SCIENTISTcomo uma função secundária:
Para detalhes sobre a sintaxe, consulte USE SECONDARY ROLES.
Replicar a política de sessão para uma conta de destino¶
Você pode replicar uma política de sessão e suas referências, que são as atribuições a um usuário ou à conta, da conta de origem para a conta de destino, usando a replicação de banco de dados e a replicação de conta. Para obter mais detalhes, consulte:
Para obter detalhes sobre como replicar uma política de sessão que especifica funções secundárias, consulte replicar políticas de sessão com funções secundárias.