Oracle 如何恢復sys使用者歷史密碼

chenoracle發表於2021-10-26

問題:

新接手的Oracle資料庫不知道sys使用者密碼,
雖然可以本地作業系統驗證方式登入資料庫,
但是指不定什麼時候會用到sys密碼,比如用sys使用者遠端登入資料庫等場景。
然而資料庫使用者密碼也不能隨便更改,
即使各個應用系統連線資料庫都是指定業務使用者,沒有使用sys使用者,
但是也不能完全肯定沒有其他什麼系統在連線sys使用者,
所以就算更改了sys密碼,也要有方法可以快速恢復sys使用者的歷史密碼。

方法:

常見的方法一般有兩種。

一:在11g以前dba_users還記錄使用者密碼的密文資訊。

在修改sys或其他使用者密碼前,先將使用者密碼的密文資訊查出來。
select username,password from dba_users;
還原密碼操作如下,比重置密碼多了一個values關鍵字。
alter user username identified by values 'hash密碼值';
此種方法在11g時,dba_users已經不記錄password了,但是可以在sys.user$裡查到。
select user,password from sys.user$;
在12c開始又繼續取消了user$有關password記錄。

二:方法二適用於sysdba許可權的使用者,當然也包含sys使用者

可以透過orapwd重置sys密碼,重置前備份口令檔案即可。
重置密碼操作示例如下:
cp orapwchendb orapwchendb_20211026bak
orapwd file=orapwchendb entries=10 force=y  password=ChenJch#123
透過orapwd方式重置sys密碼和使用alter user sys identified by '*****';方式相同,都可以達到重置密碼的目的。
恢復sys原密碼,只需要恢復原口令檔案即可。

#####chenjuchao 20211026 22:10 #####


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

相關文章