Oracle提示錯(cuò)誤消息ORA-28001: the password has expired,,是由于Oracle11G的新特性所致,, Oracle11G創(chuàng)建用戶時(shí)缺省密碼過期限制是180天(即6個(gè)月),, 如果超過180天用戶密碼未做修改則該用戶無法登錄。 Oracle公司是為了數(shù)據(jù)庫(kù)的安全性默認(rèn)在11G中引入了這個(gè)默認(rèn)功能,,但是這個(gè)默認(rèn)的功能很容易被DBA或者是開發(fā)人員給疏忽,一旦密碼180天未修改過,,就會(huì)出現(xiàn)這樣的問題,。
解決方法可通過如下SQL語句
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'
查詢密碼的有效期設(shè)置,LIMIT字段是密碼有效天數(shù),。
在密碼將要過期或已經(jīng)過期時(shí)可通過如下語句進(jìn)行修改密碼,,密碼修改后該用戶可正常連接數(shù)據(jù)庫(kù)。
ALTER USER 用戶名 IDENTIFIED BY 密碼 ;
如果想去除180天的密碼生存周期的限制可通過如下SQL語句將其關(guān)閉
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED
如上SQL語句將口令有效期默認(rèn)值180天修改成了“無限制”,。但是出于數(shù)據(jù)庫(kù)安全性考慮,,不建議將PASSWORD_LIFE_TIME值設(shè)置成UNLIMITED,建議大家定期修改數(shù)據(jù)庫(kù)用戶口令,。