角色介绍
从 Oracle Database 23ai 开始,新角色“DB_DEVELOPER_ROLE”允许管理员快速分配开发人员为 Oracle 数据库设计、构建和部署应用程序所需的所有必要权限。(包括构建数据模型所需的系统权限以及监视和调试应用程序所需的对象权限)。通过使用此角色,管理员不再需要猜测应用程序开发可能需要哪些权限。
官方建议,在项目开发、测试、上线过程中,授予应用程序开发人员DB_DEVELOPER_ROLE角色,而不是单独授予这些权限或授予用户 DBA 角色,因为DB_DEVELOPER_ROLE角色遵循最小权限原则,并确保开发环境具有更高的安全性,避免了权限过大产生的数据丢失、变更风险,以及避免了相对应的权限审计问题。DB_DEVELOPER_ROLE角色可以在 CDB 根或 PDB 中使用,但不能对该角色进行修改。
角色权限
1、查询ROLE_TAB_PRIVS
SQL> SET LINESIZE 100
SQL> SET PAGESIZE 100
SQL> COL ROLE FOR A20
SQL> SELECT ROLE,PRIVILEGE FROM ROLE_TAB_PRIVS WHERE ROLE = 'DB_DEVELOPER_ROLE';
ROLE PRIVILEGE
-------------------- ----------------------------------------
DB_DEVELOPER_ROLE EXECUTE
DB_DEVELOPER_ROLE READ
DB_DEVELOPER_ROLE READ
DB_DEVELOPER_ROLE EXECUTE
DB_DEVELOPER_ROLE EXECUTE
DB_DEVELOPER_ROLE EXECUTE
DB_DEVELOPER_ROLE EXECUTE
DB_DEVELOPER_ROLE SELECT
已选择 8 行。
2、查询ROLE_SYS_PRIVS
SQL> SET LINESIZE 100
SQL> SET PAGESIZE 100
SQL> COL ROLE FOR A20
SQL> SELECT ROLE,PRIVILEGE FROM ROLE_SYS_PRIVS WHERE ROLE = 'DB_DEVELOPER_ROLE';
ROLE PRIVILEGE
-------------------- ----------------------------------------
DB_DEVELOPER_ROLE CREATE DOMAIN
DB_DEVELOPER_ROLE CREATE MLE
DB_DEVELOPER_ROLE EXECUTE DYNAMIC MLE
DB_DEVELOPER_ROLE CREATE CUBE BUILD PROCESS
DB_DEVELOPER_ROLE CREATE CUBE
DB_DEVELOPER_ROLE CREATE CUBE DIMENSION
DB_DEVELOPER_ROLE CREATE MINING MODEL
DB_DEVELOPER_ROLE CREATE JOB
DB_DEVELOPER_ROLE DEBUG CONNECT SESSION
DB_DEVELOPER_ROLE ON COMMIT REFRESH
DB_DEVELOPER_ROLE CREATE DIMENSION
DB_DEVELOPER_ROLE FORCE TRANSACTION
DB_DEVELOPER_ROLE CREATE SESSION
已选择 13 行。
3、查询ROLE_ROLE_PRIVS
SQL> COL ROLE FOR A20
SQL> COL GRANTED_ROLE FOR A10
SQL> SELECT ROLE,GRANTED_ROLE FROM ROLE_ROLE_PRIVS WHERE ROLE = 'DB_DEVELOPER_ROLE';
ROLE GRANTED_RO
-------------------- ----------
DB_DEVELOPER_ROLE RESOURCE
DB_DEVELOPER_ROLE CTXAPP