SHOW CALLER GRANTS

列出用于实施受限调用方权利的 调用方授权

语法

SHOW CALLER GRANTS
{
{ ON <object_type> <object_name> | ON ACCOUNT }
| TO { ROLE | DATABASE ROLE }  <owner_name>
}
Copy

参数

ON object_type object_name . ON ACCOUNT

指定是列出特定对象的调用方授权,还是列出涉及账户的所有调用方授权。

使用 object_type 的单数形式,例如 TABLEWAREHOUSE

TO ROLE <owner_name> . TO DATABASE ROLE <owner_name>

指定可执行所有者,该所有者列出已授予该所有者的所有调用方授权。

输出

命令的输出包括以下列,它们描述了对象的属性和元数据:

描述

created_on

授予调用方授权的日期和时间。

privilege

grantee_name 拥有的可执行文件运行时可以使用的权限。

granted_on

受调用方授权约束的对象类型,不考虑是直接授予对象还是授予该类型的所有对象。

name

如果调用方授权是直接授予特定对象,则指定对象的名称。

is_inherited

如果为 TRUE,则使用 GRANT INHERITED CALLER 或 GRANT ALL INHERITED CALLER PRIVILEGES 语句将调用方授权授予特定类型的所有对象。

如果为 FALSE,则调用方授权直接授予 name 对象。

inherited_from

如果调用方授权是使用 GRANT INHERITED CALLER 或 GRANT ALL INHERITED CALLER PRIVILEGES 语句授予某个类型的所有对象,则指明授予的权限级别。ACCOUNTDATABASESCHEMA 中的一个。

inherited_from_database

如果 inherited_from 是数据库(包括应用程序或应用程序包),则指定数据库的名称。如果 inherited_from 是架构,则指定包含该架构的数据库的名称。

inherited_from_schema

如果 inherited_from 是架构,则指定该架构的名称。

granted_to

获授调用方授权的可执行所有者的类型。ROLEDATABASE ROLE 之一。

grantee_name

获授调用方授权的可执行所有者的名称。

访问控制要求

任何人都可以执行 SHOW CALLER GRANTS TO ... 命令,列出已授予特定可执行所有者的调用方授权。

执行 SHOW CALLER GRANTS ON ... 命令需要以下权限:

权限

对象

备注

任何权限

指定的对象

对于在 SHOW CALLER GRANTS 命令中指定的对象,至少需要一项权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 当执行 SHOW CALLER GRANTS ON ... 语句时,输出的不同行可以表示不同的内容。例如,一行可以指示直接授予对象的调用方授权,而另一行则指示在 GRANT 语句中使用 IN 子句指定对象。有关更多信息,请参阅 列出调用方授权

  • 当用户执行 SHOW CALLER GRANTS 时,结果仅包含他们具有至少一项权限的对象。有关更多信息,请参阅 条件输出

  • 该命令不需要正在运行的仓库即可执行。

  • 该命令仅返回当前用户的当前角色已获授至少一项访问权限的对象。

  • MANAGE GRANTS 访问权限隐式允许其持有者查看账户中的每个对象。默认情况下,只有账户管理员(具有 ACCOUNTADMIN 角色的用户)和安全管理员(具有 SECURITYADMIN 角色的用户)才具有 MANAGE GRANTS 权限。

  • To post-process the output of this command, you can use the pipe operator (->>) or the RESULT_SCAN function. Both constructs treat the output as a result set that you can query.

    The output column names for this command are generated in lowercase. If you consume a result set from this command with the pipe operator or the RESULT_SCAN function, use double-quoted identifiers for the column names in the query to ensure that they match the column names in the output that was scanned. For example, if the name of an output column is type, then specify "type" for the identifier.

示例

列出已获授的表 t1 调用方授权。

SHOW CALLER GRANTS ON TABLE t1;
Copy

列出已获授的当前账户的所有调用方授权。这包括账户 (GRANT CALLER ...ON ACCOUNT) 的直接授权和账户 (GRANT INHERITED CALLER ...IN ACCOUNT) 中所有对象的授权。

SHOW CALLER GRANTS ON ACCOUNT;
Copy

列出已授予数据库角色 db.owner_role 的所有调用方授权。

SHOW CALLER GRANTS TO DATABASE ROLE db.owner_role;
Copy
语言: 中文