IS_DATABASE_ROLE_IN_SESSION:具有策略和 UDF 评估的名称解析

注意

此行为变更包含在 2024_01 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

附带掩码策略、行访问策略和 UDF 的 IS_DATABASE_ROLE_IN_SESSION 函数行为具体如下:

变更前:
  • 不能使用数据库角色的完全限定名称作为函数的实参,格式为 database_name.database_role_name,除非数据库名称与包含策略或者 UDF 的数据库相同。

  • 函数的评估取决于指定的数据库中是否存在数据库角色。如果将相对名称指定为函数的实参,则函数将始终计算包含策略或 UDF 的数据库;数据库角色必须与策略或者 UDF 位于同一数据库中。

变更后:
  • 您可以使用数据库角色的完全限定名称作为实参,但是,该函数的计算结果始终为 False

  • 当您将数据库角色的相对名称指定为实参时,该函数将检查数据库角色是否与受保护表位于同一数据库,或者包含 UDF 的数据库中。

如果您的 UDF 或策略条件调用函数,请确认数据库角色与 UDF 或受保护的表存在于同一数据库中。如有必要,请在包含 UDF 或受保护的表的数据库中重新创建数据库角色。

重要

如果您将此功能与 Secure Data Sharing 一起使用,请务必确保提供商和使用者 双方 都可以启用和禁用捆绑包,以确保行为一致。

参考:1499

语言: 中文