Catégories :

Fonctions contextuelles (général)

IS_APPLICATION_ROLE_ACTIVATED (fonction SYS_CONTEXT)

Renvoie la valeur VARCHAR 'TRUE' si un rôle d’application est activé dans le contexte spécifié.

Voir aussi :

SYS_CONTEXT (espace de noms SNOWFLAKE$APPLICATION)

Syntaxe

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  'IS_APPLICATION_ROLE_ACTIVATED' ,
  '<context>' ,
  '<app_role>'
)
Copy

Arguments

'SNOWFLAKE$APPLICATION'

Spécifie que vous voulez appeler une fonction pour renvoyer des informations de contexte sur l’application dans laquelle la fonction est appelée.

'IS_APPLICATION_ROLE_ACTIVATED'

Appelle la fonction IS_APPLICATION_ROLE_ACTIVATED.

'context'

Spécifie le contexte d’exécution que vous souhaitez vérifier. Vous pouvez spécifier l’une des valeurs suivantes :

  • SESSION : Vérifie si le rôle d’application se trouve dans la hiérarchie des rôles des rôles principaux ou secondaires de la session en cours. La fonction renvoie 'TRUE' si le rôle se trouve dans la hiérarchie des rôles.

  • ACTIVE : Vérifie si le rôle d’application se trouve dans la hiérarchie des rôles dans le contexte de l’appel en cours.

    Par exemple, dans un appel à une procédure stockée des droits du propriétaire, la procédure est exécutée par le rôle du propriétaire. La fonction renvoie 'TRUE' si le rôle d’application se trouve dans la hiérarchie des rôles du rôle du propriétaire.

'app_role'

Spécifie le rôle d’application à vérifier.

Ne donnez pas le nom de l’application au nom de rôle. La fonction détermine automatiquement le nom de l’application à partir du contexte dans lequel la fonction est appelée.

Renvoie

La fonction renvoie l’une des valeurs VARCHAR suivantes :

  • 'TRUE' si le rôle d’application est activé dans le contexte spécifié par context.

  • 'FALSE' si le rôle d’application n’est pas activé dans ce contexte ou si le rôle d’application n’est pas valide.

Pour comparer cette valeur de retour à la valeur BOOLEAN TRUE ou FALSE, définissez la valeur de retour sur BOOLEAN. Par exemple :

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role')::BOOLEAN = TRUE;
Copy

Notes sur l’utilisation

Exemples

L’exemple suivant renvoie TRUE si le rôle d’application my_app_role se trouve dans la hiérarchie des rôles des rôles principaux ou secondaires de la session :

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role');
Copy