ITPub博客

首页 > 数据库 > 数据库开发技术 > Oracle 23ai新特性—DB_DEVELOPER_ROLE

Oracle 23ai新特性—DB_DEVELOPER_ROLE

原创 数据库开发技术 作者:sjw1933 时间:2024-05-16 07:50:00 0 删除 编辑

作者:Digital Observer(施嘉伟)

Oracle ACE Associate: Database

PostgreSQL ACE Partner

11年数据库行业经验,现主要从事数据库服务工作

拥有Oracle OCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证

ITPUB认证专家、PolarDB开源社区技术顾问

国内某高校企业实践指导教师

公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;PGFans:施嘉伟。

Oracle Database 23c 中的 DB_DEVELOPER_ROLE 是一个新角色,为数据库开发者提供了必要的基本角色和权限。这个角色比传统的 CONNECT 和 RESOURCE 角色更全面,提供了与最小权限原则相符的权限集,以增强应用程序开发过程中的安全性。


DB_DEVELOPER_ROLE 关键点:

  • 包括构建数据模型所需的系统权限和监控及调试应用程序所需的对象权限。

  • 可以在CDB或PDB中使用。

  • 启用了如 SODA_APP(用于处理 JSON 集合)和 CTXAPP(用于创建和删除 Oracle Text 首选项)等角色。



对于数据库开发者来说,这个角色简化了分配必要权限的过程,并通过避免使用 DBA 角色时可能出现的权限过度配置,坚持了安全最佳实践。
执行DB_DEVELOPER_ROLE角色的授予和撤销

要将DB_DEVELOPER_ROLE授予其他用户或角色,要使用GRANT语句,就像授予任何角色一样。例如:

GRANT DB_DEVELOPER_ROLE TO shjw;

检查授权状态:

SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE='shijw';

撤销DB_DEVELOPER_ROLE角色:

REVOKE DB_DEVELOPER_ROLE FROM shijw;
对比CONNECT、RESOURCE和DEVELOPER

以下三个部分显示与每个角色相关联的系统、角色和对象权限。

CONNECT角色:

SQL> variable v_role VARCHAR2(30)
SQL> exec :v_role := 'CONNECT';

PL/SQL procedure successfully completed.

SQL> 
SQL> 
-- System Privileges
SQL> SQL> select sp.privilege
  2  from   dba_sys_privs sp
  3  where  sp.grantee = :v_role
  4  order by 1;

PRIVILEGE
----------------------------------------
CREATE SESSION
SET CONTAINER

SQL> -- Role Privileges
SQL> select rp.granted_role
  2  from   dba_role_privs rp
  3  where  rp.grantee = :v_role
  4  order by 1;

no rows selected

SQL> -- Object Privileges
SQL> column privilege format a30
column table_name format a30
SQL> SQL> 
SQL> select tp.privilege, tp.table_name 
from   dba_tab_privs tp
  2    3  where  tp.grantee = :v_role
  4  order by 1, 2;

no rows selected

RESOURCE 角色:

以下是与 RESOURCE 角色关联的系统、角色和对象权限。与 19c 相比,23ai 中向 RESOURCE 角色授予的系统权限多了 7 个。

SQL> variable v_role VARCHAR2(30)
SQL> exec :v_role := 'RESOURCE';

PL/SQL procedure successfully completed.

SQL> 
SQL> 
SQL> -- System Privileges
SQL> select sp.privilege
  2  from   dba_sys_privs sp
  3  where  sp.grantee = :v_role
order by 1;  4  

PRIVILEGE
------------------------------
CREATE ANALYTIC VIEW
CREATE ATTRIBUTE DIMENSION
CREATE CLUSTER
CREATE HIERARCHY
CREATE INDEXTYPE
CREATE MATERIALIZED VIEW
CREATE OPERATOR
CREATE PROCEDURE
CREATE PROPERTY GRAPH
CREATE SEQUENCE
CREATE SYNONYM

PRIVILEGE
------------------------------
CREATE TABLE
CREATE TRIGGER
CREATE TYPE
CREATE VIEW

15 rows selected.

SQL> -- Role Privileges
SQL> select rp.granted_role
  2  from   dba_role_privs rp
  3  where  rp.grantee = :v_role
  4  order by 1;

GRANTED_ROLE
--------------------------------------------------------------------------------
SODA_APP

SQL> -- Object Privileges
SQL> column table_name format a30
SQL> 
SQL> select tp.privilege, tp.table_name 
  2  from   dba_tab_privs tp
  3  where  tp.grantee = :v_role
  4  order by 1, 2;

no rows selected

SQL>

以下为19c的信息:

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> variable v_role VARCHAR2(30)
SQL> exec :v_role := 'RESOURCE';


PL/SQL procedure successfully completed.

SQL> SQL> 
SQL> -- System Privileges
SQL> select sp.privilege
  2  from   dba_sys_privs sp
  3  where  sp.grantee = :v_role
  4  order by 1;

PRIVILEGE
----------------------------------------
CREATE CLUSTER
CREATE INDEXTYPE
CREATE OPERATOR
CREATE PROCEDURE
CREATE SEQUENCE
CREATE TABLE
CREATE TRIGGER
CREATE TYPE

8 rows selected.

SQL> -- Role Privileges
SQL> select rp.granted_role
  2  from   dba_role_privs rp
  3  where  rp.grantee = :v_role
  4  order by 1;

GRANTED_ROLE
--------------------------------------------------------------------------------
SODA_APP

SQL> -- Object Privileges
SQL> column table_name format a30
SQL> 
SQL> select tp.privilege, tp.table_name 
  2  from   dba_tab_privs tp
  3  where  tp.grantee = :v_role
  4  order by 1, 2;

no rows selected

SQL>

DB_DEVELOPER_ROLE 角色:

以下是与 DB_DEVELOPER_ROLE 角色关联的系统、角色和对象权限。

SQL> variable v_role VARCHAR2(30)
SQL> exec :v_role := 'DB_DEVELOPER_ROLE';

PL/SQL procedure successfully completed.

SQL> 
SQL> 
SQL> -- System Privileges
SQL> select sp.privilege
  2  from   dba_sys_privs sp
  3  where  sp.grantee = :v_role
  4  order by 1;

PRIVILEGE
------------------------------
CREATE CUBE
CREATE CUBE BUILD PROCESS
CREATE CUBE DIMENSION
CREATE DIMENSION
CREATE DOMAIN
CREATE JOB
CREATE MINING MODEL
CREATE MLE
CREATE SESSION
DEBUG CONNECT SESSION
EXECUTE DYNAMIC MLE

PRIVILEGE
------------------------------
FORCE TRANSACTION
ON COMMIT REFRESH

13 rows selected.

SQL> -- Role Privileges
SQL> select rp.granted_role
from   dba_role_privs rp
  2    3  where  rp.grantee = :v_role
  4  order by 1;

GRANTED_ROLE
--------------------------------------------------------------------------------
CTXAPP
RESOURCE

SQL> -- Object Privileges
SQL> column privilege format a30
SQL> column table_name format a30
SQL> 
SQL> select tp.privilege, tp.table_name 
  2  from   dba_tab_privs tp
  3  where  tp.grantee = :v_role
  4  order by 1, 2;

PRIVILEGE                      TABLE_NAME
------------------------------ ------------------------------
EXECUTE                        DBMS_REDACT
EXECUTE                        DBMS_RLS
EXECUTE                        DBMS_TSDP_MANAGE
EXECUTE                        DBMS_TSDP_PROTECT
EXECUTE                        JAVASCRIPT
READ                           V_$PARAMETER
READ                           V_$STATNAME
SELECT                         DBA_PENDING_TRANSACTIONS

8 rows selected.

SQL>

REC

总的来说,DB_DEVELOPER_ROLE角色是为了提高数据库开发的安全性和效率而设计的,它确保了开发者能够在一个更安全、更高效的环境中工作。这个角色是对传统 CONNECT和RESOURCE角色的一个重要补充,它提供了一个更加全面和细致的权限集,以支持现代数据库开发的需求。大家如果有什么见解,欢迎评论区交流!

欲知更多精彩内容,请关注下一期公众号!


END

Oracle 23ai新特性—DBMS_DICTIONARY_CHECK

分类分级在Oracle 23ai中的应用

初探Oracle 23ai——SQL*Plus新特性

国产数据库初体验——HaloDB安装

Oracle 23ai新增参数介绍(一)

揭秘oracle 23ai新增参数

Oracle 23ai FREE安装初体验

你的生产数据库遭受过哪些迫害?


今天因为你的点赞,让我元气满满!


点击此处“阅读全文”查看更多内容

原文作者:Digital Observer;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
11年数据库行业经验,Oracle ACE、PG ACE、OCM、IBM Certified DBA、MySQL OCP、PolarDB技术专家、KCP、PCTP、PCSD、达梦师资认证、PolarDB开源社区技术顾问、ITPUB认证专家、某高校外聘教师

注册时间:2019-05-05

  • 博文量
    295
  • 访问量
    300769