DBMS ROLE MANAGEMENT 权限

与其他权限一样,用于角色管理的 DBMS 权限也可以被授予、拒绝或撤销。

有关语法描述的更多详细信息,请参阅 阅读管理命令语法

表 1. 角色管理权限命令语法
命令 描述
GRANT [IMMUTABLE] CREATE ROLE
  ON DBMS
  TO role[, ...]

使指定角色能够创建新角色。

GRANT [IMMUTABLE] RENAME ROLE
  ON DBMS
  TO role[, ...]

使指定角色能够更改角色的名称。

GRANT [IMMUTABLE] DROP ROLE
  ON DBMS
  TO role[, ...]

使指定角色能够删除角色。

GRANT [IMMUTABLE] ASSIGN ROLE
  ON DBMS
  TO role[, ...]

使指定角色能够将角色分配给用户。

GRANT [IMMUTABLE] REMOVE ROLE
  ON DBMS
  TO role[, ...]

使指定角色能够从用户处移除角色。

GRANT [IMMUTABLE] SHOW ROLE
  ON DBMS
  TO role[, ...]

使指定角色能够列出角色。

GRANT [IMMUTABLE] ROLE MANAGEMENT
  ON DBMS
  TO role[, ...]

使指定角色能够创建、删除、分配、移除和列出角色。

授予创建角色的权限

您可以使用 CREATE ROLE 权限来授予添加角色的权限。
例如:

GRANT CREATE ROLE ON DBMS TO roleAdder;

结果,roleAdder 角色拥有仅允许添加角色的权限。要以命令形式列出 roleAdder 角色的所有权限,请使用以下查询

SHOW ROLE roleAdder PRIVILEGES AS COMMANDS;
表 2. 结果
command(命令)

"GRANT CREATE ROLE ON DBMS TO `roleAdder`"

行:1

授予重命名角色的权限

您可以使用 RENAME ROLE 权限来授予重命名角色的权限。
例如:

GRANT RENAME ROLE ON DBMS TO roleNameModifier;

结果,roleNameModifier 角色拥有仅允许重命名角色的权限。要列出 roleNameModifier 角色的所有权限,请使用以下查询

SHOW ROLE roleNameModifier PRIVILEGES AS COMMANDS;
表 3. 结果
command(命令)

"GRANT RENAME ROLE ON DBMS TO `roleNameModifier`"

行:1

授予删除角色的权限

您可以使用 DROP ROLE 权限来授予删除角色的权限。
例如:

GRANT DROP ROLE ON DBMS TO roleDropper;

结果,roleDropper 角色拥有仅允许删除角色的权限。要以命令形式列出 roleDropper 角色的所有权限,请使用以下查询

SHOW ROLE roleDropper PRIVILEGES AS COMMANDS;
表 4. 结果
command(命令)

"GRANT DROP ROLE ON DBMS TO `roleDropper`"

行:1

授予分配角色的权限

您可以使用 ASSIGN ROLE 权限来授予将角色分配给用户或身份验证规则的权限。
例如:

GRANT ASSIGN ROLE ON DBMS TO roleAssigner;

结果,roleAssigner 角色拥有仅允许分配/授予角色的权限。要以命令形式列出 roleAssigner 角色的所有权限,请使用以下查询

SHOW ROLE roleAssigner PRIVILEGES AS COMMANDS;
表 5. 结果
command(命令)

"GRANT ASSIGN ROLE ON DBMS TO `roleAssigner`"

行:1

授予移除角色的权限

您可以使用 REMOVE ROLE 权限来授予从用户或身份验证规则中移除角色的权限。
例如:

GRANT REMOVE ROLE ON DBMS TO roleRemover;

结果,roleRemover 角色拥有仅允许移除/撤销角色的权限。要以命令形式列出 roleRemover 角色的所有权限,请使用以下查询

SHOW ROLE roleRemover PRIVILEGES AS COMMANDS;
表 6. 结果
command(命令)

"GRANT REMOVE ROLE ON DBMS TO `roleRemover`"

行:1

授予查看角色的权限

您可以使用 SHOW ROLE 权限来授予查看角色的权限。拥有此权限的角色被允许执行 SHOW ROLESSHOW POPULATED ROLES 管理命令。

为了使用 SHOW ROLES WITH USERSSHOW POPULATED ROLES WITH USERS 管理命令,需要同时具备 SHOW ROLESHOW USER 权限。

为了使用 SHOW ROLES WITH AUTH RULES 管理命令,需要同时具备 SHOW ROLESHOW AUTH RULE 权限。

以下查询显示了如何授予 SHOW ROLE 权限的示例

GRANT SHOW ROLE ON DBMS TO roleViewer;

结果,roleViewer 角色拥有仅允许查看角色的权限。要以命令形式列出 roleViewer 角色的所有权限,请使用以下查询

SHOW ROLE roleViewer PRIVILEGES AS COMMANDS;
表 7. 结果
command(命令)

"GRANT SHOW ROLE ON DBMS TO `roleViewer`"

行:1

授予管理角色的权限

您可以使用 ROLE MANAGEMENT 权限来授予创建、重命名、删除、分配、移除和列出角色的权限。
例如:

GRANT ROLE MANAGEMENT ON DBMS TO roleManager;

结果,roleManager 角色拥有管理角色的所有权限。要以命令形式列出 roleManager 角色的所有权限,请使用以下查询

SHOW ROLE roleManager PRIVILEGES AS COMMANDS;
表 8. 结果
command(命令)

"GRANT ROLE MANAGEMENT ON DBMS TO `roleManager`"

行:1