IS_DATABASE_ROLE_IN_SESSION:具有策略和 UDF 评估的名称解析¶
附带掩码策略、行访问策略和 UDF 的 IS_DATABASE_ROLE_IN_SESSION 函数行为具体如下:
- 变更前:
不能使用数据库角色的完全限定名称作为函数的实参,格式为
database_name.database_role_name
,除非数据库名称与包含策略或者 UDF 的数据库相同。函数的评估取决于指定的数据库中是否存在数据库角色。如果将相对名称指定为函数的实参,则函数将始终计算包含策略或 UDF 的数据库;数据库角色必须与策略或者 UDF 位于同一数据库中。
- 变更后:
您可以使用数据库角色的完全限定名称作为实参,但是,该函数的计算结果始终为
False
。当您将数据库角色的相对名称指定为实参时,该函数将检查数据库角色是否与受保护表位于同一数据库,或者包含 UDF 的数据库中。
如果您的 UDF 或策略条件调用函数,请确认数据库角色与 UDF 或受保护的表存在于同一数据库中。如有必要,请在包含 UDF 或受保护的表的数据库中重新创建数据库角色。
重要
如果您将此功能与 Secure Data Sharing 一起使用,请务必确保提供商和使用者 双方 都可以启用和禁用捆绑包,以确保行为一致。
参考:1499