暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DB_DEVELOPER_ROLE在甲骨文(oracle)数据库 23c 中的作用

原创 Ellison 2023-04-14
318

Oracle数据库23c引入了一个新的角色,以提供Oracle认为数据库开发人员所必需的基本角色和特权。DB_DEVELOPER_ROLE

  • DB_DEVELOPER_ROLE角色基础知识
  • 比较连接、资源和DB_DEVELOPER_ROLE
    1. 连接角色
    2. 资源角色
    3. DB_DEVELOPER_ROLE角色
  • 考虑

角色基础

Oracle数据库23c引入了一个新的角色,以提供Oracle认为数据库开发人员所必需的基本角色和特权。在此版本之前,人们通常会授予 and 角色作为大多数开发人员的起点,但角色不仅仅是这两个角色的总和,我们将在下面看到。DB_DEVELOPER_ROLECONNECTRESOURCEDB_DEVELOPER_ROLE

角色以正常方式授予和撤销。DB_DEVELOPER_ROLE

conn sys/SysPassword1@//localhost:1521/freepdb1 as sysdba

grant db_developer_role to testuser1;

revoke db_developer_role from testuser1;
复制


比较连接、资源和开发人员

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

连接角色

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

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


-- System Privileges
select sp.privilege
from   dba_sys_privs sp
where  sp.grantee = :v_role
order by 1;

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

SQL>


-- Role Privileges
select rp.granted_role
from   dba_role_privs rp
where  rp.grantee = :v_role
order by 1;

no rows selected

SQL>


-- Object Privileges
column privilege format a30
column table_name format a30

select tp.privilege, tp.table_name 
from   dba_tab_privs tp
where  tp.grantee = :v_role
order by 1, 2;

no rows selected

SQL>
复制


资源角色

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

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


-- System Privileges
select sp.privilege
from   dba_sys_privs sp
where  sp.grantee = :v_role
order by 1;

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
CREATE TABLE
CREATE TRIGGER
CREATE TYPE
CREATE VIEW

15 rows selected.

SQL>


-- Role Privileges
select rp.granted_role
from   dba_role_privs rp
where  rp.grantee = :v_role
order by 1;

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

SQL>


-- Object Privileges
column table_name format a30

select tp.privilege, tp.table_name 
from   dba_tab_privs tp
where  tp.grantee = :v_role
order by 1, 2;

no rows selected

SQL>
复制


DB_DEVELOPER_ROLE角色

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

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


-- System Privileges
select sp.privilege
from   dba_sys_privs sp
where  sp.grantee = :v_role
order by 1;

PRIVILEGE
----------------------------------------
CREATE ANALYTIC VIEW
CREATE ATTRIBUTE DIMENSION
CREATE CUBE
CREATE CUBE BUILD PROCESS
CREATE CUBE DIMENSION
CREATE DIMENSION
CREATE DOMAIN
CREATE HIERARCHY
CREATE JOB
CREATE MATERIALIZED VIEW
CREATE MINING MODEL
CREATE MLE
CREATE PROCEDURE
CREATE SEQUENCE
CREATE SESSION
CREATE SYNONYM
CREATE TABLE
CREATE TRIGGER
CREATE TYPE
CREATE VIEW
DEBUG CONNECT SESSION
EXECUTE DYNAMIC MLE
FORCE TRANSACTION
ON COMMIT REFRESH

24 rows selected.

SQL>


-- Role Privileges
select rp.granted_role
from   dba_role_privs rp
where  rp.grantee = :v_role
order by 1;

GRANTED_ROLE
--------------------------------------------------------------------------------
CTXAPP
SODA_APP

SQL>


-- Object Privileges
column privilege format a30
column table_name format a30

select tp.privilege, tp.table_name 
from   dba_tab_privs tp
where  tp.grantee = :v_role
order by 1, 2;

PRIVILEGE                      TABLE_NAME
------------------------------ ------------------------------
EXECUTE                        JAVASCRIPT
READ                           V_$PARAMETER
READ                           V_$STATNAME
SELECT                         DBA_PENDING_TRANSACTIONS

SQL>
复制


考虑

多年来,我们一直不鼓励使用预定义的角色,并鼓励在向用户授予权限时使用“最小权限”方法。从安全角度来看,用户拥有的权限越少,攻击面就越小。

从上面的对比中我们可以看出,角色拥有的权限比角色和角色加起来还要多。对于某些人或公司来说,这可能被认为是太多的特权。由您或您的公司决定此角色是否合适。DB_DEVELOPER_ROLECONNECTRESOURCE

最后修改时间:2023-04-17 10:37:00
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论