SHOW DATABASE ROLES¶
列出指定数据库中的所有数据库角色。
重要
具有任何活动角色并已被授予对活动数据库的任何权限(如 USAGE)的用户都可以列出数据库中的数据库角色。但是,这并不一定意味着该角色允许用户使用数据库角色来执行 SQL 操作。要使用数据库角色,必须首先将其授予用户可以在用户会话中激活的账户角色,或者将其授予层次结构中较低的账户角色。
这是自主访问控制和基于角色的访问控制的一部分。有关更多信息,请参阅 访问控制概述。
小技巧
除了 SQL,您还可以使用其他接口,如 Snowflake REST APIs、Snowflake Python APIs 和 Snowflake CLI。请参阅 备用接口。
语法¶
SHOW DATABASE ROLES IN DATABASE <name>
[ LIMIT <rows> [ FROM '<name_string>' ] ]
必填参数¶
name
指定数据库的名称。
如果未指定名称标识符,则该命令将返回错误。
可选参数¶
LIMIT rows [ FROM 'name_string' ]
(可选)限制返回的最大行数,同时还对结果启用“分页”功能。返回的实际行数可能小于指定的限制。例如,现有对象的数量小于指定的限制。
可选的
FROM 'name_string'
分子句实际上会充当结果的“游标”。这样就可以提取对象名称与指定字符串匹配的第一行之后的指定行数:该字符串必须放在单引号内并且 区分大小写。
该字符串不必包含完整的对象名称;支持部分名称。
默认:无值(不对输出应用限制)
备注
对于支持
FROM 'name_string'
和STARTS WITH 'name_string'
的 SHOW 子句,您可以将这两个子句组合在同一语句中。但是,两个条件都必须满足,否则它们相互抵消,不返回任何结果。此外,对象按名称的字典顺序返回,因此
FROM 'name_string'
仅返回字典值高于STARTS WITH 'name_string'
所返回行的行。例如:
... STARTS WITH 'A' LIMIT ... FROM 'B'
不会返回任何结果。... STARTS WITH 'B' LIMIT ... FROM 'A'
不会返回任何结果。... STARTS WITH 'A' LIMIT ... FROM 'AB'
将返回结果(如果有任何行与输入字符串匹配)。
使用说明¶
此命令仅支持显示特定数据库中的数据库角色。
不能使用此命令显示账户中的数据库角色。
该命令不需要正在运行的仓库即可执行。
该命令仅返回当前用户的当前角色已获授至少一项访问权限的对象。
MANAGE GRANTS 访问权限隐式允许其持有者查看账户中的每个对象。默认情况下,只有账户管理员(具有 ACCOUNTADMIN 角色的用户)和安全管理员(具有 SECURITYADMIN 角色的用户)才具有 MANAGE GRANTS 权限。
若要对此命令的输出进行后处理,可以使用 RESULT_SCAN 函数,该函数会将输出视为可查询的表。
示例¶
在名为 mydb
的数据库中的第一个名为 db_role2
的数据库角色之后,返回最多十个数据库角色:
SHOW DATABASE ROLES IN DATABASE mydb LIMIT 10 FROM 'db_role2';
备用接口¶
Snowflake REST APIs
列出数据库角色 端点
Snowflake Python APIs
Snowflake CLI
不支持