Categorias:

Funções de contexto (General)

SYS_CONTEXT (namespace SNOWFLAKE$ORGANIZATION_SESSION)

Retorna informações sobre a sessão na qual a função é chamada e o usuário atual da organização.

Você pode chamar essa função nos seguintes contextos:

  • Você pode chamar essa função diretamente na sessão atual.

  • Você pode executar um executável de direitos do autor da chamada (por exemplo, um procedimento armazenado de direitos do autor da chamada) que chama essa função.

  • Você pode executar um executável de direitos do proprietário (por exemplo, um procedimento armazenado de direitos do proprietário) que chama essa função, desde que:

    • A função de proprietário tenha recebido o privilégio READ SESSION na conta.

    • A conta que contém a função de proprietário seja da mesma organização que a conta atual da sessão.

Em qualquer outro contexto, a função retorna NULL.

Consulte também:

SYS_CONTEXT, SYS_CONTEXT (namespace SNOWFLAKE$APPLICATION), SYS_CONTEXT (namespace SNOWFLAKE$ENVIRONMENT), SYS_CONTEXT (namespace SNOWFLAKE$ORGANIZATION)

Sintaxe

Sintaxe para recuperar propriedades:

SYS_CONTEXT(
  'SNOWFLAKE$ORGANIZATION_SESSION' ,
  '<property>'
)
Copy

Argumentos

'SNOWFLAKE$ORGANIZATION_SESSION'

Especifica que você deseja recuperar uma propriedade ou chamar uma função para retornar informações sobre a sessão na qual a função é chamada, quando a conta atual estiver em uma organização.

'property'

Nome da propriedade que você deseja recuperar. Você pode especificar as seguintes propriedades:

Propriedade

Descrição

PRINCIPAL_NAME

Nome da entidade (o usuário da organização) que iniciou a sessão.

Se o usuário atual não for um usuário da organização, o valor dessa propriedade será NULL.

Retornos

A função retorna um valor VARCHAR ou NULL:

Notas de uso

  • Se você estiver especificando a chamada da função em uma cadeia de caracteres entre aspas duplas em um shell, aplique o escape do caractere $ com uma barra invertida (\) para que $ORGANIZATION_SESSION não seja interpretado como uma variável do shell.

    Por exemplo, se você estiver usando Snowflake CLI e especificando a instrução SQL como um argumento de linha de comando entre aspas duplas:

    snow sql --query "SELECT SYS_CONTEXT('SNOWFLAKE\$ORGANIZATION_SESSION', 'PRINCIPAL_NAME');"
    
    Copy

Exemplos

O exemplo a seguir retorna o nome do usuário da organização para a sessão atual:

SELECT SYS_CONTEXT('SNOWFLAKE$ORGANIZATION_SESSION', 'PRINCIPAL_NAME');
Copy
+-----------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$ORGANIZATION_SESSION', 'PRINCIPAL_NAME') |
|-----------------------------------------------------------------|
| my_organization_user_name                                       |
+-----------------------------------------------------------------+