مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۳ دقیقه·۱ سال پیش

بررسی ویژگی جدید DB_DEVELOPER_ROLE در Oracle 23c

مقدمه

یکی از ویژگی های جدید در پایگاه داده Oracle 23c، نقش جدید به نام DB_DEVELOPER_ROLE است.

به‌جای اعطا و لغو امتیازات فردی به یک توسعه‌دهنده برنامه، فقط می‌توانیم نقش واحد DB_DEVELOPER_ROLE را که شامل (بیشتر) امتیازات رایج و ضروری برای طراحی، توسعه و استقرار برنامه‌ها است، اعطا کنیم.

اغلب ممیزی ها متوجه می شوند که به توسعه دهندگان نقش DBA یا امتیازات بالاتری نسبت به آنچه برای توسعه برنامه مورد نیاز است، اعطا شده است.

بنابراین در Oracle Database 23c اعطای نقش جدید واحد DB_DEVELOPER_ROLE به اصل کمترین امتیاز پایبند است و امنیت بیشتری را برای محیط توسعه تضمین می کند. همچنین مدیریت آسان تر و ساده تر اعطای نقش و لغو را برای کاربران برنامه تسهیل می کند.

در ادامه نمونه ای از آن را باهم بررسی می کنیم.

نصب و راه اندازی اوراکل ۲۳c

بررسی نقش DB_DEVELOPER_ROLE

کاربر توسعه برنامه را ایجاد کنید و DB_DEVELOPER_ROLE را اعطا کنید.

SQL> create user dev1 identified by Oracle_4U;

User created.

SQL> grant db_developer_role to dev1;

Grant succeeded.

SQL> alter user dev1 quota unlimited on users;

User altered.

ما می توانیم به عنوان کاربر توسعه برنامه متصل شویم (حتی اگر CONNECT یا CREATE SESSION اعطا نشده باشد)و اشیایی مانند جدول، view و storeprocedure ایجاد کنیم.

اشیاء ایجاد می شوند حتی اگر هیچ امتیاز واضح CREATE به کاربر اعطا نشده باشد.

[oracle@localhost ~]$ sqlplus dev1/Oracle_4U@freepdb1

SQL*Plus: Release 23.0.0.0.0 – Developer-Release on Wed May 17 02:16:08 2023

Version 23.2.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Last Successful login time: Wed May 17 2023 02:08:11 +00:00

Connected to:

Oracle Database 23c Free, Release 23.0.0.0.0 – Developer-Release

Version 23.2.0.0.0

SQL> create table mytab as select * from all_tables;

Table created.

SQL> create view myview as select owner,object_name from all_objects;

View created.

SQL> CREATE OR REPLACE PROCEDURE myproc

IS

BEGIN

DBMS_OUTPUT.PUT_LINE(‘Hello World!’);

END;

/

۲    ۳    ۴    ۵    ۶

Procedure created.

به امتیازات و نقش هایی که به DB_DEVELOPER_ROLE اعطا شده است توجه کنید.

SQL> SELECT PRIVILEGE FROM ROLE_SYS_PRIVS WHERE ROLE=’DB_DEVELOPER_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

۲۴ rows selected.

SQL> SELECT GRANTED_ROLE FROM ROLE_ROLE_PRIVS WHERE ROLE=’DB_DEVELOPER_ROLE’;

GRANTED_ROLE

——————————————————————————–

SODA_APP

CTXAPP

SQL> SELECT TABLE_NAME FROM ROLE_TAB_PRIVS WHERE ROLE=’DB_DEVELOPER_ROLE’;

TABLE_NAME

——————————————————————————–

JAVASCRIPT

V_$STATNAME

V_$PARAMETER

DBA_PENDING_TRANSACTIONS

اگرچه مستندات بیان می‌کنند که ما نمی‌توانیم امتیازاتی را به DB_DEVELOPER_ROLE اعطا کنیم یا لغو کنیم (“فقط می‌توان آن را در طول ارتقا یا تنزل پایگاه داده Oracle تغییر داد”) اما گویا می‌توانیم امتیازات بیشتری را به این نقش اعطا کنیم.

SQL> grant create user to db_developer_role;

Grant succeeded.

SQL> SELECT PRIVILEGE FROM ROLE_SYS_PRIVS WHERE ROLE=’DB_DEVELOPER_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 USER

CREATE VIEW

DEBUG CONNECT SESSION

EXECUTE DYNAMIC MLE

FORCE TRANSACTION

ON COMMIT REFRESH

۲۵ rows selected.

برای خدمات آموزش، مشاوره و نگهداری پایگاه داده اوراکل با ما در تماس باشید

منبع مقاله

آموزش اوراکلاوراکلخدمات نگهداری اوراکلمشاوره اوراکلمسعود سلطانی راد
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید