カテゴリ:

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

IS_ROLE_IN_SESSION

セッション内のユーザーの現在のロール(つまり、 CURRENT_ROLE によって返されるロール)が指定されたロールの権限を継承する場合は、TRUE を返します。指定されたロールは、現在のロールまたはロール階層の下位にある任意のロールにすることができます。

指定されたロールが現在のロールのロール階層の上位にあるか、ロール階層にまったくない場合は、FALSE を返します。

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

IS_OBJECT高度な列レベルのセキュリティトピック

構文

is_role_in_session( '<string_literal>' )

引数

'文字列リテラル'

ロールの名前。

使用上の注意

  • 列レベルのセキュリティ で IS_ROLE_IN_SESSION 関数を使用する場合は、SnowflakeアカウントがEnterprise Edition以上であることを確認してください。

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

指定されたロールに付与された権限が、セッション内の現在のロールに継承されているかどうかを確認します。

select is_role_in_session('ANALYST');

+-------------------------------+
| IS_ROLE_IN_SESSION('ANALYST') |
|-------------------------------|
| True                          |
+-------------------------------+

マスキングポリシーで関数を使用します。

case
  when is_role_in_session('ANALYST') then val
  else '*******'
end;