Oracle數(shù)據(jù)庫用戶密碼過期的解決方法
目錄
- 問題現(xiàn)象:
- 問題分析:
- 解決方法:
- 總結(jié)
問題現(xiàn)象:
今天在更改數(shù)據(jù)庫數(shù)據(jù)的時候,程序報錯了,如下:
ORA-28001:the password has expired
問題分析:
很顯然,報錯原因就是:
密碼已過期!
所以現(xiàn)在需要做的事情只有兩件:
1.修改密碼的過期時間
2.修改/重置密碼
這里分析一下為什么要這樣做:
1.修改密碼的過期時間:這是因?yàn)?strong>Oracle Database 11g 版本的Oracle數(shù)據(jù)庫有一項(xiàng)默認(rèn)配置,就是密碼過期時間默認(rèn)為180天(6個月左右);
通過sysdba身份可以登錄Oracle數(shù)據(jù)庫,可以查看自己的Oracle數(shù)據(jù)庫版本和數(shù)據(jù)庫默認(rèn)密碼保質(zhì)期的配置:
LIMIT(180):保存時長為180天
修改為不限期:UNLIMITED,這樣以后就不會再出現(xiàn)這個密碼過期的問題了,此處需結(jié)合項(xiàng)目需求,有些公司是建議定期更換密碼的,因此不會設(shè)置為UNLIMITED;
2.修改密碼:再密碼過期后,原密碼就失效了,因此需要重新修改密碼/重置密碼。
解決方法:
1.查詢默認(rèn)的密碼保存時間
SELECT * FROM dba_profiles WHERE profile="DEFAULT" AND resource_name="PASSWORD_LIFE_TIME";
2.修改為不限期,若有定期更換密碼的需求,則可以設(shè)置為每個密碼更換周期所需的天數(shù)(如:30:,表示每過30天就需要重置一次密碼)
不限期:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
30天的密碼有效期:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 30;
3.確定密碼過期的用戶,如果不確定,可以通過查詢所有用戶,并結(jié)合用戶的創(chuàng)建時間和當(dāng)前時間的時間差,推測出密碼過期的用戶:
select * from all_users;?
4.重置密碼:
alter user 密碼已過期的USERNAME identified by 密碼;
重置完即可正常訪問數(shù)據(jù)庫,不需要重啟數(shù)據(jù)庫!
總結(jié)
到此這篇關(guān)于Oracle數(shù)據(jù)庫用戶密碼過期解決的文章就介紹到這了,更多相關(guān)Oracle用戶密碼過期內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
