数据库角色:更新了授予共享时的错误消息¶
与使用 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