در اوراکل 23cء، open mode جدیدی به نام Hybrid read-only برای pluggable databaseها اضافه شد که در صورت قرار دادن PDB در این حالت، local userها تنها می توانند به صورت Read Only به دیتابیس وصل شوند البته در این open mode محدودیتی برای common userها ایجاد نخواهد شد و این دسته از کاربران امکان write خواهند داشت:
SQL> ALTER PLUGGABLE DATABASE TEHRANPDB OPEN HYBRID READ ONLY; Pluggable database altered.
SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 TEHRANPDB READ WRITE NO
از طریق کاربر sys به TEHRANPDB وصل شده و امکان write را تست می کنیم:
sqlplus "sys/sys@target:1522/TEHRANPDB as sysdba"
SQL> show user USER is "SYS" SQL> select OPEN_MODE from v$pdbs; OPEN_MODE ---------- READ WRITE
SQL> create table usef.tbl1(id number); Table created.
کاربر sysء OPEN_MODE این PDB را به صورت READ WRITE می بیند در حالی که PDB را در حالت OPEN HYBRID READ ONLY باز کرده بودیم.
این تست را برای کاربر محلی usef تکرار می کنیم:
sqlplus "usef/a@target:1522/TEHRANPDB"
SQL> show user USER is "USEF" SQL> select OPEN_MODE from v$pdbs; OPEN_MODE ---------- READ ONLY
SQL> create table usef.tbl2(id number); ORA-16000: Attempting to modify database or pluggable database that is open for read-only access.
کاربر usef امکان نوشتن در این شرایط را ندارد.
صرف نظر از نحوه اتصال به PDB، از طریق ویوی V$CONTAINER_TOPOLOGY می توان قرار داشتن PDB در حالت OPEN HYBRID READ ONLY را بررسی کرد:
SQL> select IS_HYBRID_READ_ONLY,CON_NAME,OPEN_MODE from V$CONTAINER_TOPOLOGY; IS_HYBRID_READ_ONLY CON_NAME OPEN_MODE -------------------- ---------- ---------- YES TEHRANPDB READ WRITE