カテゴリ:

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

SYS_CONTEXT(SNOWFLAKE$ORGANIZATION_SESSION 名前空間)

関数が呼び出されたセッションと現在の組織ユーザーに関する情報を返します。

この関数は以下のコンテキストで呼び出すことができます。

  • この関数は現在のセッションで直接呼び出すことができます。

  • この関数を呼び出す呼び出し元権限実行可能ファイル(呼び出し元権限ストアドプロシージャなど)を実行することができます。

  • 次の場合、この関数を呼び出す所有者権限実行可能ファイル(所有者権限ストアドプロシージャなど)を実行することができます。

    • 所有者ロールにアカウントに対する READSESSION 権限が付与されている。

    • 所有者ロールを含むアカウントがセッションの現在のアカウントと同じ組織である。

その他のコンテキストでは、関数は NULL を返します。

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

SYS_CONTEXTSYS_CONTEXT(SNOWFLAKE$APPLICATION 名前空間)SYS_CONTEXT(SNOWFLAKE$ENVIRONMENT 名前空間)SYS_CONTEXT(SNOWFLAKE$ORGANIZATION 名前空間)

構文

プロパティを取得するための構文:

SYS_CONTEXT(
  'SNOWFLAKE$ORGANIZATION_SESSION' ,
  '<property>'
)
Copy

引数

'SNOWFLAKE$ORGANIZATION_SESSION'

現在のアカウントが組織内にある場合、プロパティを取得するか、関数を呼び出して、関数が呼び出されたセッションに関するコンテキスト情報を返すことを指定します。

'property'

取得するプロパティの名前。次のプロパティを指定できます。

プロパティ

説明

PRINCIPAL_NAME

セッションを開始したプリンシパルの名前( 組織ユーザー)。

現在のユーザーが組織ユーザーでない場合、このプロパティの値は NULL です。

戻り値

関数は VARCHAR 値または NULL を返します。

使用上の注意

  • シェルの二重引用符で囲まれた文字列で関数呼び出しを指定する場合は、$ 文字をバックスラッシュ(\)でエスケープして、$ORGANIZATION_SESSION がシェル変数として解釈されないようにします。

    たとえば、Snowflake CLI を使用していて、SQL ステートメントを二重引用符で囲まれたコマンドライン引数として指定する 場合は、次のようになります。

    snow sql --query "SELECT SYS_CONTEXT('SNOWFLAKE\$ORGANIZATION_SESSION', 'PRINCIPAL_NAME');"
    
    Copy

次の例は、現在のセッションの組織ユーザーの名前を返します。

SELECT SYS_CONTEXT('SNOWFLAKE$ORGANIZATION_SESSION', 'PRINCIPAL_NAME');
Copy
+-----------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$ORGANIZATION_SESSION', 'PRINCIPAL_NAME') |
|-----------------------------------------------------------------|
| my_organization_user_name                                       |
+-----------------------------------------------------------------+