1. 程式人生 > >由ORA-28001同時帶出ORA-28000的解決辦法

由ORA-28001同時帶出ORA-28000的解決辦法

今天,在登入tomcat前臺介面時發現不能登入,檢視log後發現原來是ORA-28001: the password has expired的錯誤,這個錯誤是由於Oracle11G的新特性所致, Oracle11G建立使用者時預設密碼過期限制是180天(即6個月), 如果超過180天使用者密碼未做修改則該使用者無法登入。

可通過如下SQL語句

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 ; ----(一般不推薦)

然後,進sys賬號,將該賬號解鎖:

alter user 使用者名稱 account unlock;

結果還沒過多久,又提示ORA-28000 the account is locked,一直解鎖,但每次都是沒幾秒就立刻鎖住了。查了之後才發現是 FAILED_LOGIN_ATTEMPTS 引數在作怪。
解決辦法:

alter profile default limit failed_login_attempts 次數或unlimited;