DBMS PRIVILEGE MANAGEMENT 权限

DBMS 的权限管理权限可以像其他权限一样被授予、拒绝或撤销。

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

表 1. 权限管理权限命令语法
命令 描述
GRANT [IMMUTABLE] SHOW PRIVILEGE
  ON DBMS
  TO role[, ...]

允许指定的角色列出权限。

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

允许指定的角色使用 GRANTDENY 命令分配权限。

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

允许指定的角色使用 REVOKE 命令移除权限。

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

允许指定的角色列出、分配和移除权限。

授予列出权限的权限

您可以授予 SHOW PRIVILEGE 权限,以允许用户使用 SHOW PRIVILEGESHOW ROLE roleName PRIVILEGESSHOW USER username PRIVILEGES 管理命令来列出权限。SHOW USER username PRIVILEGES 命令还需要 SHOW USER 权限。

例如:

GRANT SHOW PRIVILEGE ON DBMS TO privilegeViewer;

因此,privilegeViewer 角色仅拥有显示权限的权限。若要以命令形式列出 privilegeViewer 角色的所有权限,请使用以下查询:

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

"GRANT SHOW PRIVILEGE ON DBMS TO `privilegeViewer`"

行:1

通过 SHOW USER username PRIVILEGESSHOW USER PRIVILEGES 命令查看当前用户自己的权限时,不需要任何特定权限。

如果使用 LDAP 等非原生身份验证提供程序,SHOW USER PRIVILEGES 的功能将受到限制,仅允许用户查看自己的权限。使用非原生身份验证提供程序时,无法列出其他用户的权限。

授予分配权限的权限

您可以授予 ASSIGN PRIVILEGE 权限以允许分配权限。
拥有此权限的用户可以执行 GRANTDENY 管理命令。
例如:

GRANT ASSIGN PRIVILEGE ON DBMS TO privilegeAssigner;

因此,privilegeAssigner 角色仅拥有分配权限的权限。若要以命令形式列出 privilegeAssigner 角色的所有权限,请使用以下查询:

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

"GRANT ASSIGN PRIVILEGE ON DBMS TO `privilegeAssigner`"

行:1

授予移除权限的权限

您可以授予 REMOVE PRIVILEGE 权限以允许从角色中移除权限。
拥有此权限的用户可以执行 REVOKE 管理命令。
例如:

GRANT REMOVE PRIVILEGE ON DBMS TO privilegeRemover;

因此,privilegeRemover 角色仅拥有移除权限的权限。若要以命令形式列出 privilegeRemover 角色的所有权限,请使用以下查询:

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

"GRANT REMOVE PRIVILEGE ON DBMS TO `privilegeRemover`"

行:1

授予管理权限的权限

您可以授予 PRIVILEGE MANAGEMENT 权限,以允许列出、分配和移除权限。
例如:

GRANT PRIVILEGE MANAGEMENT ON DBMS TO privilegeManager;

因此,privilegeManager 角色拥有管理权限的所有权限。若要以命令形式列出 privilegeManager 角色的所有权限,请使用以下查询:

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

"GRANT PRIVILEGE MANAGEMENT ON DBMS TO `privilegeManager`"

行:1