由ORA-28001同時帶出ORA-28000的解決辦法
阿新 • • 發佈:2019-02-08
今天,在登入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;