【故障】“ORACLE使用者被鎖定”故障處理和分析

secooler發表於2009-07-09
【故障現象】
同事反映往日正常操作的資料庫,現無法連線,錯誤提示:ORA-28000: the account is locked
sys@ora10g> conn sec/asdfasdf
ERROR:
ORA-28000: the account is locked

【故障處理】
本著遇到問題處理問題優先的態度,先解決問題,處理的方法是:手工對使用者進行解鎖
sys@ora10g> alter user sec account unlock;

User altered.

OK,到此,同事的日常工作可以得到繼續,問題初步處理完成。

【深入挖掘原因】
根本原因是:因為反覆使用錯誤的密碼嘗試連線資料庫,超過了資料庫預設的10次的嘗試次數,導致使用者被鎖定
這樣設計的原因:防止惡意的密碼攻擊

【根本解決方法】
畢竟系統允許的預設嘗試次數10次有點太少,根本解決的方法是將允許嘗試的次數改大或者設定成為無限次(如果是測試庫的話,可以修改為無限次數)
具體修改方法是修改FAILED_LOGIN_ATTEMPTS的值
獲得FAILED_LOGIN_ATTEMPTS當前值的方法是:
sys@ora10g> select * from dba_profiles where RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';

PROFILE     RESOURCE_NAME           RESOURCE LIMIT
----------- ----------------------- -------- -------
DEFAULT     FAILED_LOGIN_ATTEMPTS   PASSWORD 10

修改FAILED_LOGIN_ATTEMPTS為1000的方法:
sys@ora10g> alter profile default limit failed_login_attempts 1000;

Profile altered.

sys@ora10g> select * from dba_profiles where RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';

PROFILE     RESOURCE_NAME           RESOURCE LIMIT
----------- ----------------------- -------- -------
DEFAULT     FAILED_LOGIN_ATTEMPTS   PASSWORD 1000

修改為無限次嘗試的方法:
sys@ora10g> alter profile default limit failed_login_attempts unlimited;

Profile altered.

sys@ora10g> select * from dba_profiles where RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';

PROFILE     RESOURCE_NAME           RESOURCE LIMIT
----------- ----------------------- -------- ---------
DEFAULT     FAILED_LOGIN_ATTEMPTS   PASSWORD UNLIMITED

OK,到此,該問題得到了完滿的解決。

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-608769/,如需轉載,請註明出處,否則將追究法律責任。

相關文章