IS_GRANTED_TO_INVOKER_ROLE 関数: 出力への変更

注意

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

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

IS_GRANTED_TO_INVOKER_ROLE 関数の動作は以下のとおりです。

以前:

この関数は、引数が次のコンテキストのロールに対応するとき、 FALSE と評価されます。

  • 関数のそれ自体での呼び出し。アクティブなプライマリロールのロール階層(つまり、 CURRENT_ROLE())。

  • ストアドプロシージャの呼び出し元権限。

  • ストアドプロシージャの所有者権限。

  • タスクの所有者。

関数がテーブルを保護するマスキングポリシーで使用される場合、関数はポリシー所有者のロール階層を評価します。関数の引数のロールが、ポリシーを所有するロールのロール階層にある場合、関数は TRUE と評価します。それ以外の場合、関数は FALSE と評価します。

現在:

関数評価では、以下のコンテキストでセッションのプライマリロール階層を使用します。

  • 関数のそれ自体での呼び出し。

  • テーブル

  • 呼び出し元権限を持つストアドプロシージャ。

この関数が所有者権限を持つストアドプロシージャで使用される場合、関数は所有者権限を持つストアドプロシージャを所有するロールのロール階層を評価します。

同様に、この関数がタスクと共に使用される場合、関数はタスクを所有するロールのロール階層を評価します。

IS_GRANTED_TO_INVOKER_ROLE 関数を使用する既存のマスキングポリシーを識別するために、次のステートメントを実行します。

USE ROLE ACCOUNTADMIN;

SELECT *
    FROM snowflake.account_usage.masking_policies
    WHERE policy_body ilike '%is_granted_to_invoker_role%';
Copy

参照: 984