カテゴリ:

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

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

使用上の注意

  • この関数は、Snowflake Native App 内から呼び出された場合にのみサポートされます。アプリ外のユーザーから呼び出された場合は機能しません。

  • IS_APPLICATION_ROLE_IN_SESSIONマスキングポリシー :doc:`</user-guide/security-column-intro> または `行アクセスポリシー :doc:`</user-guide/security-row-intro> で ` 関数を使用する場合、Snowflake がEnterprise Edition 以上である必要があります。

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

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

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

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