管理员角色权限AuraDB Business CriticalAuraDB Virtual Dedicated Cloud企业版
您可以使用内置的 admin 角色管理 DBMS 权限,也可以通过创建具有所需特定权限的自定义角色来进行管理。
使用自定义角色管理 DBMS 权限
您可以通过向角色授予所需权限来创建自定义角色以管理 DBMS 权限。或者,您可以复制 admin 角色并撤销或拒绝不需要的权限。以下示例展示了如何通过这两种方法创建一个仅包含 admin 角色权限子集的自定义角色。
从零开始创建自定义管理员角色
通过创建一个新角色并授予 USER MANAGEMENT(用户管理)和 ROLE MANAGEMENT(角色管理)权限,创建一个仅能管理用户和角色的管理员角色。
-
创建新角色
CREATE ROLE userAndRoleAdministrator; -
授予管理用户的权限
GRANT USER MANAGEMENT ON DBMS TO userAndRoleAdministrator; -
授予管理角色的权限
GRANT ROLE MANAGEMENT ON DBMS TO userAndRoleAdministrator;结果,
userAndRoleAdministrator角色仅拥有允许管理用户和角色的权限。 -
若要以命令形式列出
userAndRoleAdministrator角色的所有权限,请使用以下查询:SHOW ROLE userAndRoleAdministrator PRIVILEGES AS COMMANDS;表 1. 结果 command(命令) "GRANT ROLE MANAGEMENT ON DBMS TO `userAndRoleAdministrator`""GRANT USER MANAGEMENT ON DBMS TO `userAndRoleAdministrator`"行:2
|
此角色不允许执行所有 DBMS 功能。例如,该角色缺少管理、创建和删除数据库的权限,以及执行 |
从零开始创建功能更强大的自定义管理员角色
您还可以创建具有受限功能的自定义管理员角色。这可以通过创建一个新角色并授予所有 DBMS 权限,然后拒绝您不希望该角色拥有的权限,最后再授予想要包含的其他权限来实现。例如,您可以创建一个自定义管理员角色 customAdministrator,该角色拥有除创建、删除和修改数据库之外的所有 DBMS 权限,同时还拥有管理事务的权限。
-
创建一个新角色
CREATE ROLE customAdministrator; -
授予所有 DBMS 功能权限
GRANT ALL DBMS PRIVILEGES ON DBMS TO customAdministrator; -
显式拒绝管理数据库的权限
DENY DATABASE MANAGEMENT ON DBMS TO customAdministrator; -
授予事务管理权限
GRANT TRANSACTION MANAGEMENT (*) ON DATABASE * TO customAdministrator;结果,
customAdministrator角色拥有的权限包括事务管理权限以及除创建、删除和修改数据库之外的所有 DBMS 权限。 -
若要以命令形式列出
customAdministrator角色的所有权限,请使用以下查询:SHOW ROLE customAdministrator PRIVILEGES AS COMMANDS;表 2. 结果 command(命令) "DENY DATABASE MANAGEMENT ON DBMS TO `customAdministrator`""GRANT ALL DBMS PRIVILEGES ON DBMS TO `customAdministrator`""GRANT TRANSACTION MANAGEMENT (*) ON DATABASE * TO `customAdministrator`"行:3
通过复制 admin 角色创建自定义管理员角色
您还可以通过复制 admin 角色,然后撤销或拒绝您不需要的权限来创建自定义管理员角色。例如,您可以创建一个名为 newAdministrator 的新角色,该角色拥有 admin 角色的所有权限,然后撤销其读取/写入/加载数据、管理约束、索引、名称的能力,并移除访问所有数据库(system 数据库除外)的能力。
-
通过复制
admin角色创建新角色CREATE ROLE newAdministrator AS COPY OF admin; -
撤销读取/写入/加载数据的能力
REVOKE GRANT MATCH {*} ON GRAPH * NODE * FROM newAdministrator; REVOKE GRANT MATCH {*} ON GRAPH * RELATIONSHIP * FROM newAdministrator; REVOKE GRANT WRITE ON GRAPH * FROM newAdministrator; REVOKE GRANT LOAD ON ALL DATA FROM newAdministrator; -
撤销管理索引/约束/名称的能力
REVOKE GRANT CONSTRAINT MANAGEMENT ON DATABASE * FROM newAdministrator; REVOKE GRANT INDEX MANAGEMENT ON DATABASE * FROM newAdministrator; REVOKE GRANT NAME MANAGEMENT ON DATABASE * FROM newAdministrator; REVOKE GRANT SHOW CONSTRAINT ON DATABASE * FROM newAdministrator; REVOKE GRANT SHOW INDEX ON DATABASE * FROM newAdministrator; -
撤销访问所有数据库的能力
REVOKE GRANT ACCESS ON DATABASE * FROM newAdministrator; -
授予访问
system数据库的能力GRANT ACCESS ON DATABASE system TO newAdministrator; -
若要以命令形式列出
newAdministrator角色的所有权限,请使用以下查询:SHOW ROLE newAdministrator PRIVILEGES AS COMMANDS;表 3. 结果 command(命令) "GRANT ACCESS ON DATABASEsystemTO `newAdministrator`""GRANT ALL DBMS PRIVILEGES ON DBMS TO `newAdministrator`""GRANT START ON DATABASE * TO `newAdministrator`""GRANT STOP ON DATABASE * TO `newAdministrator`""GRANT TRANSACTION MANAGEMENT (*) ON DATABASE * TO `newAdministrator`"行:5