IS_DATABASE_ROLE_IN_SESSION: ポリシーと UDF 評価による名前解決(保留中)¶
マスキングポリシー、行アクセスポリシー、 UDF を使用する IS_DATABASE_ROLE_IN_SESSION 関数の動作は以下のとおりです。
- 変更前:
データベース名がポリシーまたは UDF を含む同じデータベースでない限り、データベースの完全修飾名を
database_name.database_role_name
の形式で関数の引数として使用することはできません。関数の評価は、指定されたデータベースにデータベースロールが存在するかどうかに影響されます。関数の引数として相対名を指定した場合、関数は常にポリシーまたは UDF を含むデータベースに対して評価されます。データベースロールはポリシーまたは UDF と同じデータべースにある必要があります。
- 変更後:
データベースロールの完全修飾名を引数として使用できますが、この関数は常に
False
と評価されます。引数としてデータベースロールの相対名を指定すると、関数はデータベースロールが保護されたテーブルと同じデータベースにあるかどうか、または UDF を含むデータベースにあるかどうかをチェックします。
UDF またはポリシー条件が関数を呼び出す場合、データベースロールが UDF または保護されたテーブルと同じデータベースに存在することを確認してください。必要に応じて、 UDF または保護されたテーブルを含むデータベースでデータベースロールを再作成します。
重要
この関数をSecure Data Sharingで使用する場合、一貫した動作を保証するために、プロバイダーとコンシューマーの 両方 がバンドルを有効にするか、バンドルを無効にすることが重要です。
参照: 1499