SHOW DATABASE ROLES

列出指定数据库中的所有数据库角色。

重要

具有任何活动角色并已被授予对活动数据库的任何权限(如 USAGE)的用户都可以列出数据库中的数据库角色。但是,这并不一定意味着该角色允许用户使用数据库角色来执行 SQL 操作。要使用数据库角色,必须首先将其授予用户可以在用户会话中激活的账户角色,或者将其授予层次结构中较低的账户角色。

这是自主访问控制和基于角色的访问控制的一部分。有关更多信息,请参阅 访问控制概述

小技巧

除了 SQL,您还可以使用其他接口,如 Snowflake REST APIs、Snowflake Python APIs 和 Snowflake CLI。请参阅 备用接口

另请参阅:

SHOW GRANTSCREATE DATABASE ROLEALTER DATABASE ROLEDROP DATABASE ROLE

语法

SHOW DATABASE ROLES IN DATABASE <name>
  [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

必填参数

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 权限。

  • 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.

示例

在名为 mydb 的数据库中的第一个名为 db_role2 的数据库角色之后,返回最多十个数据库角色:

SHOW DATABASE ROLES IN DATABASE mydb LIMIT 10 FROM 'db_role2';
Copy

备用接口

语言: 中文