DBMS USER MANAGEMENT 权限

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

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

表 1. 用户管理权限命令语法
命令 描述
GRANT [IMMUTABLE] CREATE USER
  ON DBMS
  TO role[, ...]

允许指定角色创建新用户。

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

允许指定角色更改用户名。

GRANT [IMMUTABLE] ALTER USER
  ON DBMS
  TO role[, ...]

允许指定角色修改用户。

GRANT [IMMUTABLE] SET PASSWORD[S]
  ON DBMS
  TO role[, ...]

允许指定角色修改用户的密码,以及是否要求用户在首次登录时更改密码。

GRANT [IMMUTABLE] SET AUTH
  ON DBMS
  TO role[, ...]

允许指定角色 SET(设置)或 REMOVE(移除)用户的 认证提供程序 (auth providers)

GRANT [IMMUTABLE] SET USER HOME DATABASE
  ON DBMS
  TO role[, ...]

允许指定角色修改用户的宿主数据库 (home database)。

GRANT [IMMUTABLE] SET USER STATUS
  ON DBMS
  TO role[, ...]

允许指定角色修改用户的账户状态。

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

允许指定角色删除用户。

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

允许指定角色列出用户。

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

允许指定角色创建、删除、修改和列出用户。

授予创建用户的权限

您可以使用 CREATE USER 权限来授予添加用户的权利。
例如:

GRANT CREATE USER ON DBMS TO userAdder

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

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

"GRANT CREATE USER ON DBMS TO `userAdder`"

行:1

授予重命名用户的权限

您可以使用 RENAME USER 权限来授予重命名用户的权利。
例如:

GRANT RENAME USER ON DBMS TO userNameModifier

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

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

"GRANT RENAME USER ON DBMS TO `userNameModifier`"

行:1

授予修改用户的权限

您可以使用 ALTER USER 权限来授予修改用户的权利。
例如:

GRANT ALTER USER ON DBMS TO userModifier

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

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

"GRANT ALTER USER ON DBMS TO `userModifier`"

行:1

ALTER USER 权限允许用户执行 ALTER USER 管理命令,并包含 SET PASSWORDSET PASSWORD CHANGE [NOT] REQUIREDSET AUTHREMOVE AUTHSET STATUSSET HOME DATABASEREMOVE HOME DATABASE 中的一个或多个部分。
例如:

ALTER USER jake SET PASSWORD 'verysecret' SET STATUS SUSPENDED

请注意,SET PASSWORDSSET AUTHSET USER STATUSSET USER HOME DATABASE 权限的组合等同于 ALTER USER 权限。

授予修改用户密码的权限

您可以使用 SET PASSWORDS 权限来授予修改用户密码以及是否要求在首次登录时更改密码的权利。
例如:

GRANT SET PASSWORDS ON DBMS TO passwordModifier

因此,passwordModifier 角色仅拥有修改用户密码及设置首次登录是否需改密要求的权限。若要以命令形式列出角色 passwordModifier 的所有权限,请使用以下查询:

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

"GRANT SET PASSWORD ON DBMS TO `passwordModifier`"

行:1

SET PASSWORDS 权限允许用户执行 ALTER USER 管理命令,并包含 SET PASSWORDSET PASSWORD CHANGE [NOT] REQUIRED 中的一个或两个部分。

ALTER USER jake SET PASSWORD 'abcd5678' CHANGE NOT REQUIRED

授予修改用户认证信息的权限

您可以使用 SET AUTH 权限来授予修改用户认证信息的权利。
例如:

GRANT SET AUTH ON DBMS TO authModifier

因此,authModifier 角色仅拥有修改用户认证信息的权限。

SET AUTH 权限允许用户执行 ALTER USER 管理命令,并包含 SET AUTHREMOVE AUTH 中的一个或两个部分。
例如:

ALTER USER jake REMOVE AUTH 'native' SET AUTH 'oidc-okta' { SET id 'jakesUniqueOktaUserId' }

授予修改用户账户状态的权限

您可以使用 SET USER STATUS 权限来授予修改用户账户状态的权利。
例如:

GRANT SET USER STATUS ON DBMS TO statusModifier

因此,statusModifier 角色仅拥有修改用户账户状态的权限。若要以命令形式列出角色 statusModifier 的所有权限,请使用以下查询:

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

"GRANT SET USER STATUS ON DBMS TO `statusModifier`"

行:1

SET USER STATUS 权限允许用户仅执行包含 SET STATUS 部分的 ALTER USER 管理命令。

ALTER USER jake SET STATUS ACTIVE

授予修改用户宿主数据库的权限

您可以使用 SET USER HOME DATABASE 权限来授予修改用户宿主数据库的权利。
例如:

GRANT SET USER HOME DATABASE ON DBMS TO homeDbModifier

因此,homeDbModifier 角色仅拥有修改用户宿主数据库的权限。若要以命令形式列出角色 homeDbModifier 的所有权限,请使用以下查询:

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

"GRANT SET USER HOME DATABASE ON DBMS TO `homeDbModifier`"

"GRANT SET USER STATUS ON DBMS TO `homeDbModifier`"

行:2

SET USER HOME DATABASE 权限允许用户仅执行包含 SET HOME DATABASEREMOVE HOME DATABASE 部分的 ALTER USER 管理命令。

ALTER USER jake SET HOME DATABASE otherDb
ALTER USER jake REMOVE HOME DATABASE

授予删除用户的权限

您可以使用 DROP USER 权限来授予删除用户的权利。
例如:

GRANT DROP USER ON DBMS TO userDropper

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

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

"GRANT DROP USER ON DBMS TO `userDropper`"

行:1

授予显示用户的权限

您可以使用 SHOW USER 权限来授予显示用户的权利。
例如:

GRANT SHOW USER ON DBMS TO userViewer

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

SHOW ROLE userViewer PRIVILEGES AS COMMANDS;
表 9. 结果
command(命令)

"GRANT SHOW USER ON DBMS TO `userViewer`"

行:1

授予管理用户的权限

您可以使用 USER MANAGEMENT 权限来授予创建、重命名、修改、删除和列出用户的权利。
例如:

GRANT USER MANAGEMENT ON DBMS TO userManager

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

SHOW ROLE userManager PRIVILEGES AS COMMANDS;
表 10. 结果
command(命令)

"GRANT SHOW USER ON DBMS TO `userManager`"

行:1