类别:

上下文函数 (通用)

SYS_CONTEXT(SNOWFLAKE$ORGANIZATION_SESSION 命名空间)

返回有关调用函数的会话和当前组织用户的信息。

您可以在以下上下文中调用此函数:

  • 您可以直接在当前会话中调用此函数。

  • 您可以运行调用此函数的调用方权限可执行文件(例如,调用方权限存储过程)。

  • 您可以运行调用此函数的所有者权限可执行文件(例如,所有者权限存储过程),前提是:

    • 所有者角色已被授予账户的 READ SESSION 权限。

    • 包含所有者角色的账户与会话的当前账户属于同一组织。

在任何其他上下文中,该函数返回 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:

使用说明

  • 如果您在 Shell 的双引号字符串中指定函数调用,请使用反斜杠 (\) 转义 $ 字符,以免 $ORGANIZATION_SESSION 被解释为 Shell 变量。

    例如,如果您使用的是 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                                       |
+-----------------------------------------------------------------+
语言: 中文