カテゴリ:

コンテキスト関数 (一般)

IS_APPLICATION_ROLE_ACTIVATED(SYS_CONTEXT 機能)

アプリケーションロールが指定されたコンテキストでアクティブ化された場合は、VARCHAR 値 ``'TRUE'``が返されます。

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

SYS_CONTEXT(SNOWFLAKE$APPLICATION 名前空間)

構文

SYS_CONTEXT(
  'SNOWFLAKE$APPLICATION' ,
  'IS_APPLICATION_ROLE_ACTIVATED' ,
  '<context>' ,
  '<app_role>'
)
Copy

引数

'SNOWFLAKE$APPLICATION'

関数を呼び出して、関数が呼び出されたアプリケーションに関するコンテキスト情報を返すことを指定します。

'IS_APPLICATION_ROLE_ACTIVATED'

IS_APPLICATION_ROLE_ACTIVATED 関数を呼び出します。

'context'

チェックする実行コンテキストを指定します。次の値のいずれかを指定できます。

  • SESSION:アプリケーションロールが現在のセッションのプライマリロールまたはセカンダリロールのロール階層にあるかどうかを確認します。ロールがロール階層にある場合、関数は 'TRUE' を返します。

  • ACTIVE:アプリケーションロールが現在の呼び出しのコンテキストでロール階層にあるかどうかを確認します。

    たとえば、所有者権限ストアドプロシージャへの呼び出しでは、プロシージャは所有者のロールによって実行されます。アプリケーションロールが所有者ロールのロール階層にある場合、関数は 'TRUE' を返します。

'app_role'

チェックするアプリケーションロールを指定します。

アプリケーションの名前でロール名を修飾しないでください。関数は、関数が呼び出されるコンテキストからアプリケーション名を自動的に決定します。

戻り値

この関数は、次の VARCHAR 値のいずれかを返します。

  • アプリケーションロールが context で指定されたコンテキストでアクティブ化されている場合は 'TRUE'

  • アプリケーションロールがそのコンテキストでアクティブ化されていないか、アプリケーションロールが有効でない場合は 'FALSE'

この戻り値を BOOLEAN 値 TRUE または FALSE と比較するには、BOOLEAN への戻り値を:ref:キャストします <label-data_type_explicit_casting>。例:

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role')::BOOLEAN = TRUE;
Copy

使用上の注意

アプリケーションロール my_app_role が、セッションのプライマリロールまたはセカンダリロールのロール階層にある場合、次の例では TRUE を返します。

SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role');
Copy