- カテゴリ:
コンテキスト関数 (セッションオブジェクト)
IS_GRANTED_TO_INVOKER_ROLE¶
INVOKER_ROLE 関数によって返されたロールが、関数の呼び出されるコンテキストに基づいて引数で指定されたロールの権限を継承する場合は、TRUE を返します。
INVOKER_ROLE 関数は、SQL ステートメントを実行するオブジェクトのアカウントロールのみを識別して返します。データベースロールはサポートされていません。
- こちらもご参照ください。
構文¶
IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
引数¶
'string_literal'
ロールの名前。
使用上の注意¶
マスキングポリシー または 行アクセスポリシー で IS_GRANTED_TO_INVOKER_ROLE 関数を使用する場合は、SnowflakeアカウントがEnterprise Edition以上であることを確認してください。
引数として渡すことができるロール名は1つだけです。
次のテーブルは、関数を呼び出すことができるコンテキストと、Snowflakeが評価するロール階層をまとめたものです。
コンテキスト
評価されるロール
ユーザー
テーブル
CURRENT_ROLE。
ビュー
所有者のロールを表示します。
UDF
UDF 所有者のロール。
呼び出し元権限を持つストアドプロシージャ
CURRENT_ROLE。
所有者権限を持つストアドプロシージャ
ストアドプロシージャ所有者のロール。
タスク
タスク所有者のロール。
ストリーム
指定された ストリーム をクエリするロール。
現在のセッションのロール階層を評価する場合は、代わりに IS_ROLE_IN_SESSION を呼び出します。
例¶
関数を直接呼び出します。
IS_GRANTED_TO_INVOKER_ROLE('ANALYST') --------------------------------------+ IS_GRANTED_TO_INVOKER_ROLE('ANALYST') | --------------------------------------+ TRUE | --------------------------------------+
マスキングポリシー本文で関数を指定します。
CREATE OR REPLACE MASKING POLICY mask_string AS
(val string) RETURNS string ->
CASE
WHEN IS_GRANTED_TO_INVOKER_ROLE('ANALYST') then val
ELSE '*******'
END;