IS_DATABASE_ROLE_IN_SESSION: ポリシーと UDF 評価による名前解決(保留中)

注意

この動作変更は2024_01バンドルにあります。

バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。

マスキングポリシー、行アクセスポリシー、 UDF を使用する IS_DATABASE_ROLE_IN_SESSION 関数の動作は以下のとおりです。

変更前:
  • データベース名がポリシーまたは UDF を含む同じデータベースでない限り、データベースの完全修飾名を database_name.database_role_name の形式で関数の引数として使用することはできません。

  • 関数の評価は、指定されたデータベースにデータベースロールが存在するかどうかに影響されます。関数の引数として相対名を指定した場合、関数は常にポリシーまたは UDF を含むデータベースに対して評価されます。データベースロールはポリシーまたは UDF と同じデータべースにある必要があります。

変更後:
  • データベースロールの完全修飾名を引数として使用できますが、この関数は常に False と評価されます。

  • 引数としてデータベースロールの相対名を指定すると、関数はデータベースロールが保護されたテーブルと同じデータベースにあるかどうか、または UDF を含むデータベースにあるかどうかをチェックします。

UDF またはポリシー条件が関数を呼び出す場合、データベースロールが UDF または保護されたテーブルと同じデータベースに存在することを確認してください。必要に応じて、 UDF または保護されたテーブルを含むデータベースでデータベースロールを再作成します。

重要

この関数をSecure Data Sharingで使用する場合、一貫した動作を保証するために、プロバイダーとコンシューマーの 両方 がバンドルを有効にするか、バンドルを無効にすることが重要です。

参照: 1499