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