【ORA-28001】ORA-28001: the password has expired

TaihangMeng發表於2018-03-06

一、問題現象   

   登入資料庫時,Oracle提示錯誤訊息 ORA-28001: the password has expired。


二、問題解析

   由於Oracle11g的新特性,Oracle11g建立使用者時預設密碼過期限制是180天(即6個月),如果超過180天使用者密碼未做修改則該使用者無法登入。Oracle公司是為了資料庫的安全性預設在11g中引入了這個預設功能,但是這個預設的功能很容易被DBA或者是開發人員給疏忽,一旦密碼180天未修改過,就會出現這樣的問題。


三、解決方法

1、查詢密碼的有效期設定,LIMIT欄位是密碼有效期天數

SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';


2、在密碼將要過期或已經過期時可通過如下語句進行修改密碼

ALTER USER 使用者名稱 IDENTIFIED BY 密碼; 


3、修改密碼後,會發現該賬戶會被鎖定,這時需要通過如下SQL語句進行解鎖

ALTER USER 使用者名稱 ACCOUNT UNLOCK;


4、如果想去除180天的密碼生存週期的限制可通過如下SQL語句將其關閉

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;


四、問題小結

   如果追求安全性的話,建議定期修改使用者登入密碼;如果使用特定密碼,建議將密碼生存週期的限制關閉。

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

相關文章