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 时,结果仅包含他们具有至少一项权限的对象。有关更多信息,请参阅 条件输出

  • 若要对此命令的输出进行后处理,可以使用 RESULT_SCAN 函数,该函数会将输出视为可查询的表。

示例

列出已获授的表 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
语言: 中文