【PASSWORD】Linux環境下使用密碼驗證方式重置SYS使用者密碼

secooler發表於2011-04-29
Linux作業系統,當我們忘記SYS使用者名稱密碼又無法透過作業系統驗證方式訪問資料庫時,就需要考慮使用密碼驗證方式找回SYS使用者的密碼。

本文給出這種方法的實踐。

1.確保remote_login_passwordfile引數值為“EXCLUSIVE”或“SHARED”

sys@ora10g> show parameter remote_login

NAME                        TYPE                 VALUE
--------------------------- -------------------- ------------
remote_login_passwordfile   string               EXCLUSIVE

2.禁止作業系統驗證方式
1)備份sqlnet.ora檔案
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ cp sqlnet.ora sqlnet.ora_backup

2)在檔案中新增如下內容
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ vi sqlnet.ora
# sqlnet.ora Network Configuration File: /oracle/ora10gR2/product/10.2.0/db_2/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES)
sqlnet.authentication_services=(none)

~
~

3)驗證作業系統驗證方式已經被禁用
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/network/admin$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 29 21:06:33 2011

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

ERROR:
ORA-01031: insufficient privileges


Enter user-name:

此時提示許可權不足表明作業系統認證方式已經被成功禁用。

3.備份密碼檔案
1)進入到密碼檔案目錄
ora10g@secdb /home/oracle$ cd $ORACLE_HOME/dbs

2)備份原有的密碼檔案
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ cp orapwora10g orapwora10g_backup

4.重新建立新的密碼檔案
1)刪除原有密碼檔案
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ rm -f orapwora10g

2)使用新的密碼建立密碼檔案
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ orapwd file=orapwora10g password=secooler

5.驗證新密碼是否有效
ora10g@secdb /oracle/ora10gR2/product/10.2.0/db_2/dbs$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 29 21:28:26 2011

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

NotConnected@> connect sys as sysdba
Enter password:     -- 這裡輸入新密碼,這裡是“secooler”
Connected.
sys@ora10g>

連線成功。密碼初步修改成功。

6.透過v$pwfile_users檢視進一步驗證修改的有效性
sys@ora10g> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE  TRUE

7.修改資料字典中關於SYS使用者的密碼
方法就是修改使用者名稱密碼的命令。
sys@ora10g> alter user sys identified by secooler;

User altered.

到此,整個密碼修改的過程便結束了。

8.小結
Linux系統上如果可以使用作業系統驗證方式登入到資料庫,我們僅需在資料庫中透過“alter user”語句對SYS使用者修改密碼即可。
使用本文中提到的方法可以在無法順利的使用作業系統驗證方法進入到資料庫的前提下達到找回SYS使用者密碼的目的。

Good luck.

secooler
11.04.29

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-694144/,如需轉載,請註明出處,否則將追究法律責任。

相關文章