类别:

上下文函数 (会话对象)

IS_APPLICATION_ROLE_IN_SESSION

验证使用者当前会话中的应用程序角色是否已激活。

另请参阅:

IS_ROLE_IN_SESSIONIS_DATABASE_ROLE_IN_SESSION

语法

IS_APPLICATION_ROLE_IN_SESSION( '<string_literal>' )
Copy

实参

'string_literal'

应用程序角色名称。如果未指定应用程序角色名称,则根据当前数据库会话上下文推断应用程序角色名称。

返回

  • 当指定的角色名称在使用者的当前会话中激活时为 TRUE

    该函数始终使用使用者的当前会话,并在使用该函数的使用者被授予应用程序角色时返回 TRUE

    当应用程序调用该函数时,函数不会返回 TRUE,因为应用程序角色被拥有但未授予该应用程序。

  • 当指定的应用程序角色名称未在使用者的当前会话中激活时为 FALSE

使用说明

  • 如果将 IS_APPLICATION_ROLE_IN_SESSION 函数与 掩码策略行访问策略 结合使用,请验证您的 Snowflake 账户是否为 Enterprise Edition 或更高版本。

  • 只能传递一个角色名称作为实参。

  • 此函数不能在物化视图定义中使用,因为该函数不是确定性的,并且 Snowflake 无法确定要物化的数据。

示例

验证当前会话中是否有指定的应用程序角色:

SELECT IS_APPLICATION_ROLE_IN_SESSION('ANALYST');
Copy
+-------------------------------------------+
| IS_APPLICATION_ROLE_IN_SESSION('ANALYST') |
+-------------------------------------------+
| FALSE                                     |
+-------------------------------------------+
语言: 中文