ORA-28001: the password has expired解決方法

https://blog.csdn.net/qiaqia609/article/details/46998311
Oracle提示錯誤消息ORA-28001: the password has expired,是由於Oracle11G的新特性所致, Oracle11G創建用戶時缺省密碼過期限制是180天(即6個月), 如果超過180天用戶密碼未做修改則該用戶無法登錄。 Oracle公司是爲了數據庫的安全性默認在11G中引入了這個默認功能,但是這個默認的功能很容易被DBA或者是開發人員給疏忽,一旦密碼180天未修改過,就會出現這樣的問題。
解決方法可通過如下SQL語句

注: 首先需要使用dba登錄.
運行SQLPlus命令行工具, 輸入:
connect as sysdba;
輸入dba的用戶名和密碼後進行.

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,建議大家定期修改數據庫用戶口令。
在這裏插入圖片描述
Oracle密碼過期the password has expired解決辦法

oracle 出現the password has expired這個問題,今天突然發現項目訪問不了,一查發現用不了,也登不進去,

這個問題由是Oracle11g密碼過期的原因導致的

調試Web項目的時候出現異常:

java.sql.SQLException: ORA-28001: the password has expired
網上查了一下,連接Oracle,以Oracle用戶登陸,輸入以下命令

select * from dba_profiles where profile=’DEFAULT’ and resource_name=’PASSWORD_LIFE_TIME’;
結果顯示:

PROFILE
RESOURCE_NAME
RESOURCE_TYPE
LIMIT
DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
180

結果顯示密碼有效期是180天

輸入命令:

alter profile default limit password_life_time unlimited;
commit;
再次執行:

select * from dba_profiles where profile=’DEFAULT’ and resource_name=’PASSWORD_LIFE_TIME’;
結果顯示爲:

PROFILE
RESOURCE_NAME
RESOURCE_TYPE
LIMIT
DEFAULT
PASSWORD_LIFE_TIME
PASSWORD

UNLIMITED
進行以上步驟之後需要改變密碼,否則還會出現password has expired異常

改變密碼的命令

alter user XXXUSER identified by Welcome1;
如果賬號被鎖住,則需要解鎖命令

alter user XXXUSER identified by oracle account unlock;
再次調試,問題解決
轉載

作者:qiaqia609
來源:CSDN
原文:https://blog.csdn.net/qiaqia609/article/details/46998311

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章