カテゴリ:

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

IS_APPLICATION_ROLE_IN_SESSION

アプリケーション・ロールがコンシューマーの現在のセッションで有効になっているかどうかを検証します。

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

IS_ROLE_IN_SESSIONIS_DATABASE_ROLE_IN_SESSION

構文

IS_APPLICATION_ROLE_IN_SESSION( '<string_literal>' )
Copy

引数

'string_literal'

アプリケーションロール名。アプリケーションロール名が指定されていない場合、アプリケーションロール名は現在のデータベースセッションのコンテキストによって推測されます。

戻り値

  • 指定したロール名がコンシューマーの現在のセッションでアクティブ化された場合は TRUE

    この関数は常にコンシューマーの現在のセッションを使用し、この関数を使用してコンシューマーにアプリケーションロールが付与される場合、 TRUE を返します。

    アプリケーションロールは所有されているけれども、アプリには付与されていないため、アプリケーションが関数を呼び出しても、この関数は TRUE を返しません。

  • 指定したアプリケーションロール名がコンシューマーの現在のセッションでアクティブ化されていない場合は FALSE

使用上の注意

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

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

  • この関数はマテリアライズドビュー定義では使用できません。関数が決定論的ではなく、Snowflakeはマテリアライズするデータを決定できないためです。

指定されたアプリケーションロールが現在のセッションにあるかどうかを確認します。

SELECT IS_APPLICATION_ROLE_IN_SESSION('ANALYST');
Copy
+-------------------------------------------+
| IS_APPLICATION_ROLE_IN_SESSION('ANALYST') |
+-------------------------------------------+
| FALSE                                     |
+-------------------------------------------+