اتصال به PDB با مجوز sysdba بدون تعیین پسورد(اوراکل 19.7)

همانطور که می دانید، با اجرای دستور  “sqlplus “/as sysdba در محیط container database، به صورت پیش فرض به root container متصل خواهیم شد:

 [oracle@OL7 ~]$ sqlplus “/as sysdba”

SQL*Plus: Release 18.0.0.0.0 – Production on Sun Sep 13 15:52:16 2020

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production

Version 18.5.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

———- —————————— ———- ———-

         2 PDB$SEED                       READ ONLY  NO

         3 PDB1                         READ WRITE NO

         4 PDB2                         READ WRITE NO

SQL> show con_id

CON_ID

——————————

1

همانطور که مشاهده می کنید، بدون اطلاع از پسورد کاربر دارای مجوز sysdba، می توان به root container متصل شد این مسئله برای pdb ها صادق نیست و برای اتصال به این نوع از containerها باید از کاربر مطلع بود:

[oracle@OL7 ~]$ sqlplus sys/a@192.168.140.10:1521/PDB1 as sysdba

SQL*Plus: Release 18.0.0.0.0 – Production on Sun Sep 13 15:52:41 2020

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production

Version 18.5.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

———- —————————— ———- ———-

         3 PDB1                         READ WRITE NO

 البته بدیهی است که این شیوه اتصال، نیازمند اجرای سرویس listener است و در صورت توقف این سرویس، امکان اتصال هم از بین خواهد رفت:

[oracle@OL7 ~]$ lsnrctl stop

LSNRCTL for Linux: Version 18.0.0.0.0 – Production on 13-SEP-2020 15:53:33

Copyright (c) 1991, 2018, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=OL7)(PORT=1521)))

The command completed successfully

[oracle@OL7 ~]$ sqlplus sys/a@192.168.140.10:1521/PDB1 as sysdba

SQL*Plus: Release 18.0.0.0.0 – Production on Sun Sep 13 15:53:35 2020

Version 18.5.0.0.0

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

ERROR:

ORA-12541: TNS:no listener

در اوراکل نسخه 19.7RU، متغیری به نام ORACLE_PDB_SID ارائه شد که مشکل ذکر شده را برطرف خواهد کرد به این صورت که با تنظیم مقدار این پارامتر به اسم یکی از PDBها، دستور “sqlplus “/as sysdba ما را به ان PDB متصل خواهد کرد:

[oracle@ol7 ~]$ export ORACLE_PDB_SID=pdb

[oracle@ol7 ~]$ sqlplus “/as sysdba”

SQL*Plus: Release 19.0.0.0.0 – Production on Sun Sep 13 07:17:14 2020

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production

Version 19.8.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

———- —————————— ———- ———-

         3 PDB                            READ WRITE NO

SQL> show con_id

CON_ID

——————————

3

ارتباط با نویسنده مطلب:vahidusefzadeh@ کانال تخصصی اوراکل و لینوکس: OracleDB@

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.