- 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>'
)
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_NAMENome 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:
O valor de retorno depende da propriedade que você está recuperando.
Se você chamar SYS_CONTEXT com o namespace SNOWFLAKE$ORGANIZATION_SESSION fora de qualquer um dos contextos aceitos, a função retornará 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_SESSIONnã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');"
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');
+-----------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$ORGANIZATION_SESSION', 'PRINCIPAL_NAME') |
|-----------------------------------------------------------------|
| my_organization_user_name |
+-----------------------------------------------------------------+