Catégories :

Fonctions contextuelles (Objet de session)

IS_ROLE_IN_SESSION

Renvoie TRUE si le nom de rôle validé dans l’argument est l’un des rôles activés dans la session (c’est-à-dire que le rôle renvoyé par la fonction CURRENT_ROLE hérite des privilèges du rôle spécifié).

Les rôles activés peuvent être l’un des rôles de la hiérarchie CURRENT_ROLE. Pour plus d’informations sur la hiérarchie des rôles, voir Aperçu du contrôle d’accès.

TRUE

Si IS_ROLE_IN_SESSION('ANALYST') est TRUE, le CURRENT_ROLE de l’utilisateur hérite des privilèges de rôle personnalisé ANALYST. Par conséquent, le CURRENT_ROLE de l’utilisateur est un rôle de privilège plus élevé que le rôle personnalisé ANALYST dans la même hiérarchie de rôles.

FALSE

Si IS_ROLE_IN_SESSION('ANALYST') est FALSE, le CURRENT_ROLE de l’utilisateur n’hérite pas des privilèges de rôle personnalisé ANALYST. Par conséquent, le CURRENT_ROLE de l’utilisateur est soit un rôle de privilège inférieur au rôle personnalisé ANALYST, soit le rôle personnalisé CURRENT_ROLE et ANALYST de l’utilisateur se trouve dans des hiérarchies de rôles différentes.

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

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

Exemple

Vérifier si un rôle donné est activé dans une session :

select is_role_in_session('ANALYST');

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

Utilisation de la fonction dans une politique de masquage :

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