数据库角色:更新了授予共享时的错误消息

注意

此行为变更在 2023_06 捆绑包中。

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

与使用 GRANT DATABASE ROLE ...TO SHARE 命令向共享授予数据库角色相关的错误消息已发生变更。

在这些表中,“解析”一词意味着数据库角色(执行角色)的所有者角色具有适当的权限,可访问已授予数据库角色的对象。例如,如果数据库角色具有某个表的 SELECT 权限,并具有存储该表的数据库和架构的 USAGE 权限,则所有者角色可以解析该表,而且具有已授予数据库角色的相同权限。

下表列出了向共享授予数据库角色时的错误消息(替换后的错误消息):

行为

之前

现在

执行角色可以解析对象,但不能共享对象。

无法共享被授予“表”对象的“SELECT”权限的数据库角色: SQL 编译错误:视图在创建为 SECURE 视图时才能共享,或者在使用 ALTER VIEW V SET SECURE 标记为 SECURE 时才能共享。

无法共享被授予 VIEW “DB.SCH.V”的“SELECT”权限的数据库角色: SQL 编译错误:视图在创建为 SECURE 视图时才能共享,或者在使用 ALTER VIEW V SET SECURE 标记为 SECURE 时才能共享。

数据库角色无法解析对象,并且不会共享对象。

无法共享被授予“表”对象的“SELECT”权限的数据库角色。

无法共享被授予不可共享权限的数据库角色。使用具有 MANAGE GRANTS 权限的角色来解决这个问题。

数据库角色可以解析未共享的已删除对象。

无法共享被授予“表”对象的“SELECT”权限的数据库角色: SQL 编译错误:视图在创建为 SECURE 视图时才能共享,或者在使用 ALTER VIEW VD SET SECURE 标记为 SECURE 时才能共享。

无法共享被授予 DROPPED 视图“DB.DSCH.V”的“SELECT”权限的数据库角色。使用具有 MANAGE GRANTS 权限的角色调用 CLEANUP_DATABASE_ROLE_GRANTS('database_role_name', 'share_name') 以撤消权限,然后将数据库角色授予共享。

数据库角色无法解析未共享的已删除对象。

无法共享被授予“表”对象的“SELECT”权限的数据库角色。

无法共享被授予不可共享权限的数据库角色。使用具有 MANAGE GRANTS 权限的角色来解决这个问题。

此外,系统函数 SYSTEM$CLEANUP_DATABASE_ROLE_GRANTS 有助于解决此情况:数据库角色可以解析未共享的已删除对象。

下表列出了尝试向共享授予数据库角色时的错误消息(要废除的错误消息)。

行为

之前的错误消息

当前结果

数据库角色无法解析共享对象。

无法共享被授予“表”对象的“SELECT”权限的数据库角色。

您可以向共享授予数据库角色。Snowflake 返回成功状态消息。

数据库角色无法解析共享的已删除对象。

无法共享被授予“表”对象的“SELECT”权限的数据库角色。

您可以向共享授予数据库角色。Snowflake 返回成功状态消息。

参考:1220

语言: 中文