カテゴリ:

コンテキスト関数 (セッションオブジェクト)

IS_GRANTED_TO_INVOKER_ROLE

INVOKER_ROLE 関数によって返されたロールが、関数の呼び出されるコンテキストに基づいて引数で指定されたロールの権限を継承する場合は、TRUE を返します。

INVOKER_ROLE 関数は、SQL ステートメントを実行するオブジェクトのアカウントロールのみを識別して返します。データベースロールはサポートされていません。

こちらもご参照ください。

IS_OBJECT

構文

IS_GRANTED_TO_INVOKER_ROLE( '<string_literal>' )
Copy

引数

'string_literal'

ロールの名前。

使用上の注意

  • マスキングポリシー または 行アクセスポリシー で IS_GRANTED_TO_INVOKER_ROLE 関数を使用する場合は、SnowflakeアカウントがEnterprise Edition以上であることを確認してください。

  • 引数として渡すことができるロール名は1つだけです。

  • 次のテーブルは、関数を呼び出すことができるコンテキストと、Snowflakeが評価するロール階層をまとめたものです。

    コンテキスト

    評価されるロール

    ユーザー

    CURRENT_ROLE

    テーブル

    CURRENT_ROLE。

    ビュー

    所有者のロールを表示します。

    UDF

    UDF 所有者のロール。

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

    CURRENT_ROLE。

    所有者権限を持つストアドプロシージャ

    ストアドプロシージャ所有者のロール。

    タスク

    タスク所有者のロール。

    ストリーム

    指定された ストリーム をクエリするロール。

  • 現在のセッションのロール階層を評価する場合は、代わりに IS_ROLE_IN_SESSION を呼び出します。

関数を直接呼び出します。

IS_GRANTED_TO_INVOKER_ROLE('ANALYST')

--------------------------------------+
IS_GRANTED_TO_INVOKER_ROLE('ANALYST') |
--------------------------------------+
                TRUE                  |
--------------------------------------+
Copy

マスキングポリシー本文で関数を指定します。

CREATE OR REPLACE MASKING POLICY mask_string AS
(val string) RETURNS string ->
CASE
  WHEN IS_GRANTED_TO_INVOKER_ROLE('ANALYST') then val
  ELSE '*******'
END;
Copy