SHOW CALLER GRANTS¶
列出用于实施受限调用方权利的 调用方授权。
语法¶
SHOW CALLER GRANTS
{
{ ON <object_type> <object_name> | ON ACCOUNT }
| TO { ROLE | DATABASE ROLE } <owner_name>
}
参数¶
ON object_type object_name
或 .ON ACCOUNT
指定是列出特定对象的调用方授权,还是列出涉及账户的所有调用方授权。
使用
object_type
的单数形式,例如TABLE
或WAREHOUSE
。TO ROLE <owner_name>
或 .TO DATABASE ROLE <owner_name>
指定可执行所有者,该所有者列出已授予该所有者的所有调用方授权。
输出¶
命令的输出包括以下列,它们描述了对象的属性和元数据:
列 |
描述 |
---|---|
|
授予调用方授权的日期和时间。 |
|
|
|
受调用方授权约束的对象类型,不考虑是直接授予对象还是授予该类型的所有对象。 |
|
如果调用方授权是直接授予特定对象,则指定对象的名称。 |
|
如果为 如果为 |
|
如果调用方授权是使用 GRANT INHERITED CALLER 或 GRANT ALL INHERITED CALLER PRIVILEGES 语句授予某个类型的所有对象,则指明授予的权限级别。 |
|
如果 |
|
如果 |
|
获授调用方授权的可执行所有者的类型。 |
|
获授调用方授权的可执行所有者的名称。 |
访问控制要求¶
任何人都可以执行 SHOW CALLER GRANTS TO ... 命令,列出已授予特定可执行所有者的调用方授权。
执行 SHOW CALLER GRANTS ON ... 命令需要以下权限:
权限 |
对象 |
备注 |
---|---|---|
任何权限 |
指定的对象 |
对于在 SHOW CALLER GRANTS 命令中指定的对象,至少需要一项权限。 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
当执行 SHOW CALLER GRANTS ON ... 语句时,输出的不同行可以表示不同的内容。例如,一行可以指示直接授予对象的调用方授权,而另一行则指示在 GRANT 语句中使用 IN 子句指定对象。有关更多信息,请参阅 列出调用方授权。
当用户执行 SHOW CALLER GRANTS 时,结果仅包含他们具有至少一项权限的对象。有关更多信息,请参阅 条件输出。
该命令不需要正在运行的仓库即可执行。
该命令仅返回当前用户的当前角色已获授至少一项访问权限的对象。
MANAGE GRANTS 访问权限隐式允许其持有者查看账户中的每个对象。默认情况下,只有账户管理员(具有 ACCOUNTADMIN 角色的用户)和安全管理员(具有 SECURITYADMIN 角色的用户)才具有 MANAGE GRANTS 权限。
若要对此命令的输出进行后处理,可以使用 RESULT_SCAN 函数,该函数会将输出视为可查询的表。
示例¶
列出已获授的表 t1
调用方授权。
SHOW CALLER GRANTS ON TABLE t1;
列出已获授的当前账户的所有调用方授权。这包括账户 (GRANT CALLER ...ON ACCOUNT) 的直接授权和账户 (GRANT INHERITED CALLER ...IN ACCOUNT) 中所有对象的授权。
SHOW CALLER GRANTS ON ACCOUNT;
列出已授予数据库角色 db.owner_role
的所有调用方授权。
SHOW CALLER GRANTS TO DATABASE ROLE db.owner_role;