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.查詢默認的密碼保存時間

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.確定密碼過期的用戶,如果不確定,可以通過查詢所有用戶,並結合用戶的創建時間和當前時間的時間差,推測出密碼過期的用戶:

1
select * from all_users; 

4.重置密碼:

alter user 密碼已過期的USERNAME identified by 密碼;

重置完即可正常訪問數據庫,不需要重啓數據庫!

Oracle數據庫用戶密碼過期的解決方法_oracle_腳本之家 (jb51.net)

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