Catégories :

Fonctions contextuelles (général)

SYS_CONTEXT (espace de noms SNOWFLAKE$ORGANIZATION_SESSION)

Renvoie des informations sur la session dans laquelle la fonction est appelée et l’utilisateur actuel de l’organisation.

Vous pouvez appeler cette fonction dans les contextes suivants :

  • Vous pouvez appeler cette fonction directement dans la session en cours.

  • Vous pouvez exécuter un exécutable des droits de l’appelant (par exemple, une procédure stockée des droits de l’appelant) qui appelle cette fonction.

  • Vous pouvez exécuter un exécutable des droits du propriétaire (par exemple, une procédure stockée des droits du propriétaire) qui appelle cette fonction, à condition que :

    • Le rôle de propriétaire a reçu le privilège READ SESSION sur le compte.

    • Le compte contenant le rôle de propriétaire est la même organisation que le compte actuel de la session.

Dans tout autre contexte, la fonction renvoie NULL.

Voir aussi :

SYS_CONTEXT, SYS_CONTEXT (espace de noms SNOWFLAKE$APPLICATION), SYS_CONTEXT (espace de noms SNOWFLAKE$ENVIRONMENT), SYS_CONTEXT (espace de noms SNOWFLAKE$ORGANIZATION)

Syntaxe

Syntaxe pour la récupération des propriétés :

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

Arguments

'SNOWFLAKE$ORGANIZATION_SESSION'

Spécifie que vous souhaitez récupérer une propriété ou appeler une fonction pour renvoyer des informations sur la session dans laquelle la fonction est appelée, lorsque le compte actuel se trouve dans une organisation.

'property'

Nom de la propriété à récupérer. Vous pouvez spécifier les propriétés suivantes :

Propriété

Description

PRINCIPAL_NAME

Nom du principal (l’utilisateur d’organisation) qui a démarré la session.

Si l’utilisateur actuel n’est pas un utilisateur d’organisation, la valeur de cette propriété est NULL.

Renvoie

La fonction renvoie une valeur VARCHAR ou NULL :

Notes sur l’utilisation

  • Si vous spécifiez l’appel de fonction dans une chaîne entre guillemets doubles dans un shell, isolez le caractère $ avec une barre oblique inverse (\) de sorte que $ORGANIZATION_SESSION ne soit pas interprété comme une variable de shell.

    Par exemple, si vous utilisez Snowflake CLI et que vous spécifiez l’instruction SQL comme argument de ligne de commande entre guillemets doubles :

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

Exemples

L’exemple suivant renvoie le nom de l’utilisateur de l’organisation pour la session en cours :

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