IS_GRANTED_TO_INVOKER_ROLE 関数: 出力への変更¶
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%';
参照: 984