Catégories :

Fonctions contextuelles (Objet de session)

IS_ROLE_IN_SESSION

Renvoie TRUE si le rôle actuel de l’utilisateur dans la session (c’est-à-dire le rôle retourné par CURRENT_ROLE) hérite des privilèges du rôle spécifié. Le rôle spécifié peut être le rôle actuel ou tout rôle inférieur dans la hiérarchie des rôles.

Renvoie FALSE si le rôle spécifié est soit plus élevé dans la hiérarchie des rôles du rôle actuel, soit ne figure pas du tout dans la hiérarchie des rôles.

Voir aussi :

IS_OBJECT, Rubriques de sécurité avancées au niveau des colonnes

Syntaxe

is_role_in_session( '<string_literal>' )

Arguments

'litéral_chaine'

Nom du rôle.

Notes sur l’utilisation

  • Si vous utilisez la fonction IS_ROLE_IN_SESSION avec Sécurité au niveau des colonnes, vérifiez que votre compte Snowflake est bien l’édition Enterprise ou une version plus récente.

  • Un seul nom de rôle peut être validé en tant qu’argument.

Exemple

Vérifiez si les privilèges accordés à un rôle spécifique sont hérités par le rôle actuel dans la session :

select is_role_in_session('ANALYST');

+-------------------------------+
| IS_ROLE_IN_SESSION('ANALYST') |
|-------------------------------|
| True                          |
+-------------------------------+

Utilisez la fonction dans une politique de masquage :

case
  when is_role_in_session('ANALYST') then val
  else '*******'
end;