Fonction IS_GRANTED_TO_INVOKER_ROLE : modification de la sortie

Attention

Ce changement de comportement est présent dans le bundle 2023_04.

Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.

Le comportement de la fonction IS_GRANTED_TO_INVOKER_ROLE est le suivant :

Précédemment:

La fonction est évaluée à FALSE lorsque l’argument correspond à un rôle dans le contexte suivant :

  • Appel de la fonction par elle-même : hiérarchie des rôles du rôle actif et principal (c’est-à-dire CURRENT_ROLE()).

  • Droits de l’appelant de la procédure stockée.

  • Droits du propriétaire de la procédure stockée.

  • Propriétaire de la tâche.

Si la fonction est utilisée dans une politique de masquage qui protège une table, la fonction évalue la hiérarchie des rôles du propriétaire de la politique. Si le rôle figurant dans l’argument de la fonction se trouve dans la hiérarchie des rôles du rôle propriétaire de la politique, la fonction est évaluée à TRUE. Dans le cas contraire, la fonction est évaluée à FALSE.

Actuellement:

L’évaluation de la fonction utilise la hiérarchie des rôles principaux pour la session dans les contextes suivants :

  • Appel de la fonction par elle-même.

  • Table

  • Procédure stockée avec droit de l’appelant

Si la fonction est utilisée dans une procédure stockée avec des droits de propriétaire, la fonction évalue la hiérarchie des rôles du rôle qui possède la procédure stockée avec des droits de propriétaire.

De même, si la fonction est utilisée avec une tâche, elle évalue la hiérarchie des rôles du rôle propriétaire de la tâche.

Pour identifier les politiques de masquage existantes qui utilisent la fonction IS_GRANTED_TO_INVOKER_ROLE , exécutez les instructions suivantes :

USE ROLE ACCOUNTADMIN;

SELECT *
    FROM snowflake.account_usage.masking_policies
    WHERE policy_body ilike '%is_granted_to_invoker_role%';
Copy

Réf : 984