- Catégories :
Fonctions contextuelles (Objet de session)
IS_GRANTED_TO_INVOKER_ROLE¶
Renvoie TRUE si le rôle renvoyé par la fonction INVOKER_ROLE hérite des privilèges du rôle spécifié dans l’argument, en fonction du contexte dans lequel la fonction est appelée.
La fonction INVOKER_ROLE identifie et renvoie uniquement le rôle de compte de l’objet exécutant une instruction SQL. Les rôles de base de données ne sont pas pris en charge.
- Voir aussi :
Syntaxe¶
IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
Arguments¶
'string_literal'
Nom du rôle.
Notes sur l’utilisation¶
Si vous utilisez la fonction IS_GRANTED_TO_INVOKER_ROLE avec une politique de masquage ou une politique d’accès aux lignes, vérifiez que votre compte Snowflake est bien en Enterprise Edition ou une version supérieure.
Un seul nom de rôle peut être validé en tant qu’argument.
Le tableau suivant résume le contexte dans lequel vous pouvez appeler la fonction et la hiérarchie des rôles que Snowflake évalue.
Contexte
Rôle évalué
Utilisateur
Table
CURRENT_ROLE.
Vue
Afficher le rôle du propriétaire.
UDF
Rôle du propriétaire de l’UDF.
Procédure stockée avec droit de l’appelant
CURRENT_ROLE.
Procédure stockée avec droit du propriétaire
Rôle du propriétaire de la procédure stockée.
Tâche
Rôle de propriétaire de tâche.
Flux
Rôle qui interroge un flux donné.
Si vous préférez évaluer la hiérarchie des rôles pour la session en cours, appelez plutôt IS_ROLE_IN_SESSION.
Exemple¶
Appelez la fonction deux fois :
IS_GRANTED_TO_INVOKER_ROLE('ANALYST') --------------------------------------+ IS_GRANTED_TO_INVOKER_ROLE('ANALYST') | --------------------------------------+ TRUE | --------------------------------------+
Spécifiez la fonction dans le corps de la politique de masquage :
CREATE OR REPLACE MASKING POLICY mask_string AS
(val string) RETURNS string ->
CASE
WHEN IS_GRANTED_TO_INVOKER_ROLE('ANALYST') then val
ELSE '*******'
END;