Rôles : changements relatifs à la façon dont les réattributions de droits sont enregistrées dans la vue GRANTS_TO_USERS

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.

La sortie de la vue GRANTS_TO_USERS a été modifiée en ce qui concerne la manière dont les attributions d’un même rôle à un même utilisateur étaient enregistrées :

Précédemment

La vue comprenait une ligne pour chaque attribution du même rôle au même utilisateur. La valeur de la colonne DELETED_ON est NULL pour la ligne contenant la subvention active. Lors d’une réattribution de droits, la valeur de la colonne DELETED_ON de la ligne contenant l’attribution précédente est mise à jour en fonction de l’horodatage de la date de la réattribution.

Actuellement

La vue comprend une ligne pour l’attribution du même rôle au même utilisateur. Les réattributions d’un même rôle à un même utilisateur ne sont pas enregistrées comme de nouvelles lignes. La colonne DELETED_ON reste NULL tant que l’octroi est actif. La valeur de la colonne est mise à jour lorsque le rôle est REVOKED de l’utilisateur.

Après avoir révoqué le rôle de l’utilisateur, l’octroi du même rôle au même utilisateur sera enregistré dans une nouvelle ligne. Dans cette nouvelle ligne, la valeur de la colonne DELETED_ON est NULL car l’octroi est désormais actif.

Utilisez la requête suivante pour vous aider à déterminer si votre compte contient des enregistrements dans la vue qui seront affectés :

  • TRUE : la vue contient des enregistrements qui seront affectés.

  • FALSE: aucun enregistrement de la vue ne sera affecté.

SELECT
    COUNT(*) > 0 AS IS_IMPACTED
FROM
    SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_USERS AS GL
        INNER JOIN SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_USERS AS GR
            ON GL.ROLE = GR.ROLE
            AND GL.GRANTED_TO = GR.GRANTED_TO
            AND GL.GRANTEE_NAME = GR.GRANTEE_NAME
            AND GL.GRANTED_BY = GR.GRANTED_BY
            AND GL.DELETED_ON = GR.CREATED_ON
            AND GR.DELETED_ON IS NOT NULL;
Copy

Réf : 1132