IS_DATABASE_ROLE_IN_SESSION: Namensauflösung mit Richtlinie und UDF-Evaluierung (Ausstehend)

Achtung

Diese Verhaltensänderung ist in Bundle 2024_01 enthalten.

Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.

Das Verhalten der Funktion IS_DATABASE_ROLE_IN_SESSION mit einer Maskierungsrichtlinie, einer Zeilenzugriffsrichtlinie oder einer UDF ist wie folgt:

Vor der Änderung:
  • Sie können den vollqualifizierten Namen der Datenbankrolle nicht als Argument für die Funktion im Format database_name.database_role_name verwenden, es sei denn, der Datenbankname ist der von der Datenbank, die die Richtlinie oder UDF enthält.

  • Die Funktionsauswertung hängt davon ab, ob die Datenbankrolle in der angegebenen Datenbank existiert. Wenn Sie als Argument der Funktion einen relativen Namen angeben, ergibt die Funktion immer die Datenbank, die die Richtlinie oder UDF enthält; die Datenbankrolle muss sich in derselben Datenbank befinden wie die Richtlinie oder UDF.

Nach der Änderung:
  • Sie können den vollqualifizierten Namen der Datenbankrolle als Argument verwenden, die Funktion ergibt jedoch immer False.

  • Wenn Sie den relativen Namen der Datenbankrolle als Argument angeben, prüft die Funktion, ob sich die Datenbankrolle in derselben Datenbank befindet wie die geschützte Tabelle oder die Datenbank, die die UDF enthält.

Wenn Ihre UDF- oder Richtlinienbedingungen die Funktion aufrufen, stellen Sie sicher, dass die Datenbankrollen in derselben Datenbank wie die UDF oder die geschützte Tabelle existieren. Erstellen Sie gegebenenfalls die Datenbankrollen in der Datenbank neu, die die UDF oder die geschützte Tabelle enthält.

Wichtig

Wenn Sie diese Funktion mit Secure Data Sharing verwenden, ist es wichtig, dass Anbieter und Verbraucher das Bundle entweder aktivieren oder deaktivieren, um ein einheitliches Verhalten sicherzustellen.

Ref.: 1499