- 类别:
上下文函数 (通用)
SYS_CONTEXT(SNOWFLAKE$ORGANIZATION_SESSION 命名空间)¶
返回有关调用函数的会话和当前组织用户的信息。
您可以在以下上下文中调用此函数:
您可以直接在当前会话中调用此函数。
您可以运行调用此函数的调用方权限可执行文件(例如,调用方权限存储过程)。
您可以运行调用此函数的所有者权限可执行文件(例如,所有者权限存储过程),前提是:
所有者角色已被授予账户的 READ SESSION 权限。
包含所有者角色的账户与会话的当前账户属于同一组织。
在任何其他上下文中,该函数返回 NULL。
- 另请参阅:
SYS_CONTEXT、SYS_CONTEXT(SNOWFLAKE$APPLICATION 命名空间)、SYS_CONTEXT(SNOWFLAKE$ENVIRONMENT 命名空间)、SYS_CONTEXT(SNOWFLAKE$ORGANIZATION 命名空间)
语法¶
用来检索属性的语法:
SYS_CONTEXT(
'SNOWFLAKE$ORGANIZATION_SESSION' ,
'<property>'
)
实参¶
'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');"
示例¶
以下示例返回当前会话的组织用户的名称:
SELECT SYS_CONTEXT('SNOWFLAKE$ORGANIZATION_SESSION', 'PRINCIPAL_NAME');
+-----------------------------------------------------------------+
| SYS_CONTEXT('SNOWFLAKE$ORGANIZATION_SESSION', 'PRINCIPAL_NAME') |
|-----------------------------------------------------------------|
| my_organization_user_name |
+-----------------------------------------------------------------+