Sessões do Snowflake e políticas de sessão

Este tópico descreve as sessões do Snowflake e as políticas de sessão e fornece instruções para configurar as políticas de sessão em nível de conta ou de usuário.

Sessões do Snowflake

Uma sessão começa quando um usuário se conecta ao Snowflake e se autentica com sucesso usando um cliente programático do Snowflake, a Snowsight ou a Classic Console. Uma sessão é independente da sessão de um provedor de identidade (isto é, IdP). Se a sessão Snowflake expirar mas a sessão do IdP permanecer ativa, um usuário pode entrar no Snowflake sem fornecer novamente suas credenciais de login (ou seja, autenticação silenciosa).

A sessão é mantida indefinidamente com a atividade contínua do usuário. Após um período de inatividade na sessão, conhecido como tempo limite de sessão ociosa, o usuário deve se autenticar novamente no Snowflake. O tempo limite de sessão ociosa tem um valor máximo de quatro horas e uma política de sessão pode modificar o período de tempo limite da sessão ociosa. O tempo limite de sessão ociosa se aplica aos seguinte elementos:

O Snowflake recomenda reutilizar as sessões existentes quando possível e fechar a conexão com o Snowflake quando uma sessão não for mais necessária.

Sessões do Snowsight

Snowflake cria uma nova sessão para cada planilha no Snowsight. Uma sessão de planilha impõe a política de sessão que se aplica ao usuário que cria a planilha.

Cuidado

As consultas ativas não são canceladas quando a sessão termina e o usuário é desconectado, mesmo que o parâmetro ABORT_DETACHED_QUERY esteja definido como verdadeiro.

Sessões do console clássico

Na guia Worksheets Guia Planilha, o Snowflake cria uma nova sessão toda vez que uma nova planilha é criada. Cada planilha é limitada a um máximo de 4 horas de comportamento ocioso, e o tempo ocioso de cada planilha é rastreado separadamente.

Quando uma planilha é fechada, a sessão do usuário para a planilha é encerrada.

Depois que o limite de 4 horas expira para qualquer planilha aberta, o Snowflake faz o logout do usuário da interface da Web.

Nota

Observe que comportamentos passivos, tais como rolar pelo conjunto de resultados da consulta ou ordenar um conjunto de dados, não reinicializam o controlador de tempo limite de sessão ociosa.

Para evitar o encerramento precoce da sessão e a desconexão da Classic Console, salve todas as instruções SQL necessárias em um arquivo local e feche as planilhas abertas que não estejam em uso.

Monitoramento do uso da sessão

Você pode monitorar sessões ativas e uso de sessão usando o Snowsight ou um visualizador de SQL. Você pode visualizar suas próprias sessões ou usar uma função com acesso para visualizar a exibição SESSIONS para visualizar sessões da sua conta. Consulte Funções do banco de dados SNOWFLAKE do esquema ACCOUNT_USAGE.

SQL:

Consulte a exibição SESSIONS no esquema ACCOUNT USAGE do banco de dados SNOWFLAKE compartilhado para monitorar o uso da sessão.

Snowsight:

Selecione Admin » Security e depois escolha Sessions. Você pode revisar o ID de sessão, o nome de usuário, a hora de início, o driver de cliente em uso para a sessão, o endereço de rede do cliente e o método de autenticação. Passe o mouse sobre o horário de início para visualizar a data e a hora exatas em que a sessão começou, em seu fuso horário local.

Políticas de sessão

Uma política de sessão define o tempo limite de sessão ociosa em minutos e oferece a opção de ignorar o valor padrão de tempo limite de inatividade. O período de tempo limite começa com uma autenticação bem sucedida no Snowflake. O valor mínimo de tempo ocioso configurável para uma política de sessão é de 5 minutos.

Se uma política de sessão não for definida, o Snowflake usará um valor padrão de 240 minutos (quatro horas).

Quando a sessão expirar, o usuário deve autenticar-se novamente no Snowflake. No entanto, o Snowflake não impõe nenhuma configuração definida pelo Ponto de extremidade de logout personalizado.

A política de sessão pode ser definida para uma conta ou usuário com períodos de tempo limite de inatividade configuráveis para atender às exigências de conformidade. Se um usuário está associado tanto a uma conta quanto a uma política de sessão no nível de usuário, a política de sessão no nível de usuário tem precedência. Após a política da sessão ser definida por conta ou usuário, Snowflake aplica a política da sessão.

Há duas propriedades que regem o comportamento da política da sessão:

  • SESSION_IDLE_TIMEOUT_MINS para clientes programáticos e do Snowflake.

  • SESSION_UI_IDLE_TIMEOUT_MINS para Classic Console e Snowsight.

Para obter mais informações, consulte Gerenciamento de políticas de sessão.

Funções secundárias em uma política de sessão

Quando um usuário se conecta ao Snowflake e a sessão começa, o usuário pode ativar funções secundárias cm um comando USE SECONDARY ROLES. No entanto, como administrador de segurança , você pode querer gerenciar as funções secundárias que estão disponíveis para um usuário individual, grupos de usuários e a conta inteira. Gerenciar funções secundárias ajuda a definir o escopo do conjunto de privilégios disponíveis para um usuário durante a sessão.

Para atender a essas necessidades de gerenciamento, você pode definir a propriedade ALLOWED_SECONDARY_ROLES em uma política de sessão, e definir a política de sessão na conta ou um usuário na conta. Em seguida, o usuário pode executar um comando USE SECONDARY ROLES e especificar as funções secundárias que ele pode usar durante a sessão do Snowflake.

Para exemplos, consulte Especificar funções secundárias em uma política de sessão.

Nota

Quando você definir a propriedade ALLOWED_SECONDARY_ROLES em uma política de sessão, a aplicação das funções secundárias começa quando uma nova sessão é iniciada. Você pode iniciar uma nova sessão do Snowflake efetuando login no Snowflake ou abrindo uma nova planilha na Snowsight.

Antes de atualizar a política de sessão para avaliar funções secundárias, considere seu cronograma de carga de trabalho e o controle de acesso para cada carga de trabalho a fim de evitar interrupções desnecessárias.

Considerações

  • Se um cliente oferece suporte à opção CLIENT_SESSION_KEEP_ALIVE e a opção está definida para TRUE, o cliente preserva a sessão do Snowflake indefinidamente enquanto a conexão com o Snowflake estiver ativa. Caso contrário, se a opção for definida para FALSE, a sessão termina após 4 horas. Quando possível, evite usar esta opção, pois isso pode resultar em muitas sessões abertas e aumentar a demanda de recursos, levando a uma degradação do desempenho.

  • Você pode usar o parâmetro CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY para especificar o número de segundos entre as tentativas do cliente de atualizar o token da sessão. A sessão da interface da Web pode ser atualizada à medida que objetos Snowflake continuam a ser usados, como a execução de instruções DDL e DML. O Snowflake verifica esse comportamento a cada 30 segundos.

  • Criar uma nova planilha ou abrir uma planilha existente continua a utilizar a sessão de usuário estabelecida, mas o tempo limite de sessão ociosa é redefinido para 0.

Limitações

Concessões futuras:

Concessões futuras de privilégios em políticas de sessão não são suportadas.

Como alternativa, conceda o privilégio APPLYSESSION POLICY a uma função personalizada para permitir que esta função aplique políticas de sessão em um usuário ou conta Snowflake.