SHOW DATABASE ROLES

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

重要

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

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

另请参阅:

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' 将返回结果(如果有任何行与输入字符串匹配)。

使用说明

  • 此命令仅支持显示特定数据库中的数据库角色。

    不能使用此命令显示账户中的数据库角色。

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

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

示例

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

SHOW DATABASE ROLES IN DATABASE mydb LIMIT 10 FROM 'db_role2';
Copy
语言: 中文