وبلاگ وحید نوروزی

تجربه و ترجمه و تحقیق درباره اوراکل را در این وبلاگ خواهید یافت.

وبلاگ وحید نوروزی

تجربه و ترجمه و تحقیق درباره اوراکل را در این وبلاگ خواهید یافت.

  • ۰
  • ۰

lock_sys_user

سلام

یکی از سازمان ها بر اساس درخواست نهاد ناظر، درخواست lock کردن کاربر sys رو دادند. نسخه دیتابیسی که تو این سازمان نصب شده 12.2 هست. 

اگر مستقیم دستور alter user sys account lock رو بزنیم با خطا مواجه می شیم:

sys@testcdb(78)> alter user sys account lock;
alter user sys account lock
*
ERROR at line 1:
ORA-40365: The SYS user cannot be locked while the password file is in its current format.

چاره چیست؟

ابتدا با اجرای دستور زیر اطلاعاتی از دیتابیس به دست می آوریم:

[oracle@db12cprimary-node1 ~]$ srvctl config database -d testcdb
Database unique name: testcdb
Database name: testcdb
Oracle home: /u01/app/oracle/product/12.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/TESTCDB/PARAMETERFILE/spfile.273.999485507
Password file: +DATA/TESTCDB/PASSWORD/pwdtestcdb.257.999485035
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
...

در قدم اول پسورد فایل موجود را پاک می کنیم:

[oracle@db12cprimary-node1 ~]$ orapwd dbuniquename=testcdb delete=y

حالا پسورد فایل جدید را با ذکر فرمت می سازیم:

[oracle@db12cprimary-node1 ~]$ orapwd file='+data'  dbuniquename=testcdb password=Vahid_1234 entries=20 format=12.2

دوباره وضعیت دیتابیس را چک می کنیم:

[oracle@db12cprimary-node1 ~]$ srvctl config database -d testcdb
Database unique name: testcdb
Database name: testcdb
Oracle home: /u01/app/oracle/product/12.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/TESTCDB/PARAMETERFILE/spfile.273.999485507
Password file: +DATA/TESTCDB/PASSWORD/pwdtestcdb.257.1016598059
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
...

حالا می توانیم کاربر sys را lock کنیم:

sys@testcdb(59)> alter user sys account lock;


User altered.
 
در این حالت اگر از طریق listener بخواهیم به این کاربر متصل شویم، با پیغام account is locked مواجه می شویم.
 
[oracle@db12cprimary-node1 ~]$ sqlplus sys@testcdb as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sun Aug 18 05:57:11 2019

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

Enter password:
ERROR:
ORA-28000: the account is locked

همچنین اطلاعات کاربر بصورت زیر است:

sys@testcdb(1)> select username , account_status from dba_users where username='SYS';

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
SYS                            LOCKED

آما، در همین حال نیز می توان با دستور زیر به دیتابیس با کاربر SYS متصل شد:

[oracle@db12cprimary-node1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sun Aug 18 05:59:52 2019

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

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

sys@testcdb(1)> show user
USER is "SYS"

شاد باشید.

------------------------------------------------------------------------------

در هنگام رانندگی به احترام عابرین پیاده بایستیم.

 

 

  • ۹۸/۰۵/۲۷
  • قدیر نوروزی میرصادقی

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی