- 类别:
上下文函数 (通用)
IS_APPLICATION_ROLE_ACTIVATED(SYS_CONTEXT 函数)¶
如果在指定的上下文中激活了应用程序角色,则返回 VARCHAR 值 'TRUE'。
语法¶
SYS_CONTEXT(
'SNOWFLAKE$APPLICATION' ,
'IS_APPLICATION_ROLE_ACTIVATED' ,
'<context>' ,
'<app_role>'
)
实参¶
'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。例如:
SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role')::BOOLEAN = TRUE;
使用说明¶
示例¶
如果应用程序角色 my_app_role 位于会话主要或次要角色的角色层次结构中,则以下示例返回 TRUE:
SELECT SYS_CONTEXT('SNOWFLAKE$APPLICATION', 'IS_APPLICATION_ROLE_ACTIVATED', 'SESSION', 'my_app_role');