IS_DATABASE_ROLE_IN_SESSION : résolution des noms avec politique et évaluation d’UDF (en attente)

Attention

Ce changement de comportement est présent dans le bundle 2024_01.

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

Le comportement de la fonction IS_DATABASE_ROLE_IN_SESSION avec une politique de masquage, une politique d’accès aux lignes et une UDF est le suivant :

Avant la modification:
  • Vous ne pouvez pas utiliser le nom complet du rôle de la base de données comme argument de la fonction, dans le format database_name.database_role_name, à moins que le nom de la base de données ne soit la même base de données que celle qui contient la politique ou l’UDF.

  • L’évaluation de la fonction dépend de l’existence ou non du rôle de base de données dans la base de données spécifiée. Si vous spécifiez un nom relatif comme argument de la fonction, celle-ci évalue toujours la base de données qui contient la politique ou l’UDF ; le rôle de la base de données doit se trouver dans la même base de données que la politique ou l’UDF.

Après la modification:
  • Vous pouvez utiliser le nom complet du rôle de base de données comme argument, mais la fonction est toujours évaluée à False.

  • Lorsque vous spécifiez le nom relatif du rôle de la base de données en tant qu’argument, la fonction vérifie si le rôle de base de données se trouve dans la même base de données que la table protégée ou la base de données qui contient l’UDF.

Si votre UDF ou vos conditions de politique appellent la fonction, confirmez que les rôles de base de données existent dans la même base de données que l’UDF ou la table protégée. Si nécessaire, recréez les rôles de base de données dans la base de données qui contient l’UDF ou la table protégée.

Important

Si vous utilisez cette fonction avec Secure Data Sharing, il est important que le fournisseur et le consommateur activent ou désactivent le bundle pour garantir un comportement cohérent.

Réf : 1499