بررسی ویژگی جدید 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@freepdb1SQL*Plus: Release 23.0.0.0.0 – Developer-Release on Wed May 17 02:16:08 2023Version 23.2.0.0.0Copyright (c) 1982, 2023, Oracle. All rights reserved.Last Successful login time: Wed May 17 2023 02:08:11 +00:00Connected to:Oracle Database 23c Free, Release 23.0.0.0.0 – Developer-ReleaseVersion 23.2.0.0.0SQL> 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 myprocISBEGINDBMS_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 VIEWCREATE ATTRIBUTE DIMENSIONCREATE CUBECREATE CUBE BUILD PROCESSCREATE CUBE DIMENSIONCREATE DIMENSIONCREATE DOMAINCREATE HIERARCHYCREATE JOBCREATE MATERIALIZED VIEWCREATE MINING MODELCREATE MLECREATE PROCEDURECREATE SEQUENCECREATE SESSIONCREATE SYNONYMCREATE TABLECREATE TRIGGERCREATE TYPECREATE VIEWDEBUG CONNECT SESSIONEXECUTE DYNAMIC MLEFORCE TRANSACTIONON COMMIT REFRESH۲۴ rows selected.SQL> SELECT GRANTED_ROLE FROM ROLE_ROLE_PRIVS WHERE ROLE=’DB_DEVELOPER_ROLE’;GRANTED_ROLE——————————————————————————–SODA_APPCTXAPPSQL> SELECT TABLE_NAME FROM ROLE_TAB_PRIVS WHERE ROLE=’DB_DEVELOPER_ROLE’;TABLE_NAME——————————————————————————–JAVASCRIPTV_$STATNAMEV_$PARAMETERDBA_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 VIEWCREATE ATTRIBUTE DIMENSIONCREATE CUBECREATE CUBE BUILD PROCESSCREATE CUBE DIMENSIONCREATE DIMENSIONCREATE DOMAINCREATE HIERARCHYCREATE JOBCREATE MATERIALIZED VIEWCREATE MINING MODELCREATE MLECREATE PROCEDURECREATE SEQUENCECREATE SESSIONCREATE SYNONYMCREATE TABLECREATE TRIGGERCREATE TYPECREATE USERCREATE VIEWDEBUG CONNECT SESSIONEXECUTE DYNAMIC MLEFORCE TRANSACTIONON COMMIT REFRESH۲۵ rows selected.برای خدمات آموزش، مشاوره و نگهداری پایگاه داده اوراکل با ما در تماس باشیدمنبع مقاله