今天遇到一個問題,公司的産品提示無法聯系資料庫。檢視日志發現有ora-28001的錯誤提示。

經檢視相關資料,發現是由于oracle11g的新特性所緻, oracle11g建立使用者時預設密碼過期限制是180天(即6個月), 如果超過180天使用者密碼未做修改則該使用者無法登入。 oracle公司是為了資料庫的安全性預設在11g中引入了這個預設功能,但是這個預設的功能很容易被dba或者是開發人員給疏忽,一旦密碼180天未修改過,就會出現這樣的問題。
解決方法可通過如下sql語句
select * from dba_profiles where profile=’default’ and resource_name=’password_life_time’;
查詢密碼的有效期設定,limit字段是密碼有效天數。
在密碼将要過期或已經過期時可通過如下語句進行修改密碼,密碼修改後該使用者可正常連接配接資料庫。
alter user 使用者名 identified by 密碼;
如果想去除180天的密碼生存周期的限制可通過如下sql語句将其關閉:
alter profile default limit password_life_time unlimited;
如上sql語句将密碼有效期預設值180天修改成了“無限制”。但是出于資料庫安全性考慮,不建議将password_life_time值設定成unlimited,建議大家定期修改資料庫使用者密碼。