GRANT 和 REVOKE 命令:对失败授权的输出的更改

注意

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

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

这些命令的行为如下:

之前:

当您执行这些命令中的任意命令,并且该操作不适用于您在命令中指定的一个或多个权限或角色时,Snowflake 会将响应 格式化 为“成功状态消息”(即表)并指明相关信息。例如:

GRANT ALL ON ACCOUNT TO ROLE r1;
Copy
+--------------------------------------------------------------------------------------------------------------------------+
| status                                                                                                                   |
|--------------------------------------------------------------------------------------------------------------------------|
| Grant partially executed: privileges [MANAGE LISTING AUTO FULFILLMENT, MANAGE ORGANIZATION SUPPORT CASES] not granted.   |
+--------------------------------------------------------------------------------------------------------------------------+

此输出是执行任意这些命令时可能出现的许多消息之一的代表性示例。

现在:

当您执行这些命令中的任意命令,并且该操作不适用于您在命令中指定的一个或多个权限或角色时,Snowflake 会将响应:emph:`格式化`为包含错误代码的错误消息并指明相关信息。例如:

003011 (42501): Grant partially executed: privileges [MANAGE LISTING AUTO FULFILLMENT, MANAGE ORGANIZATION SUPPORT CASES] not granted.

实际消息文本不会发生变化

小技巧

如果您的工作流程依赖于这两个命令之一的结果,请更新脚本以解析错误代码信息,在本例中为 003011 (42501)

受此更改影响的错误代码列表如下:

003011: Grant partially executed: [ one or more privileges ] not granted.
003012: Revoke partially executed: [ one or more privileges ] not revoked.
003102: Grant not executed: Insufficient privileges.
003103: Revoke not executed: Insufficient privileges.
003104: Grant not executed: Operation not supported on a SHARE object.
003105: Revoke not executed: Operation not supported on a SHARE object.
Copy

示例中的值 (42501) 反映了用户选择用于执行命令的 SQL 客户端,在本例中为 Snowflake Connector for Python。此值可能不会显示,具体取决于您执行命令的方式(例如,Snowsight 不会返回此值或错误代码值 003011)。

[ one or more privileges ] 值是一个占位符,用于返回有关导致错误的语句的信息。在本例中,这些占位符表示未授予的 REFERENCE_USAGE 权限。

参考:515

语言: 中文