“ORACLE用户被锁定”故障处理和分析

来自itpub http://space.itpub.net/519536/viewspace-608769

【故障现象】
同事反映往日正常操作的数据库,现无法连接,错误提示: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 --

原文地址:https://www.cnblogs.com/sumsen/p/2538213.html