问题现象
登录后显示ora-28000 账户被锁定
问题分析
ORA-28000 表示账户被锁定。
错误原因分析
1、密码多次输入错误:这是最常见的导致账户锁定的原因之一。用户在尝试登录数据库时,如果连续多次输入错误的密码,数据库系统为了安全起见,会自动锁定该账户。
2、管理员手动锁定:数据库管理员可能会出于某些安全考虑或者管理需求,手动锁定某些账户。
经过沟通,发现客户修改了数据库的密码,有人通过plsql一直再尝试连接数据库,一直连接异常。
导致出现改错误的原因是:在oracle database 11g中,默认在default概要文件中设置了FAILED_LOGIN_ATTEMPTS参数,当输入密码错误次数达到设置值将导致此问题。
方法一
show parameter FAILED_LOGIN_ATTEMPTS
方法二
1)、查看自己的数据库用户所使用的概要文件是什么。我的库为DEFAULT
select username,profile from dba_users;
2)、查看我的用户的DEFAULT概要文件中有关登录次数的限制。
select *
from dba_profiles
where profile = 'DEFAULT'
and resource_name = 'FAILED_LOGIN_ATTEMPTS';
说明有人连接这个数据库用户,输入了10次错误密码,导致用户被锁了。如果需要系统正常,需要把用户解锁。并且让其他人员不再输入错误密码。也可以把此参数设置为无限制。
解决方案
将尝试登录次数的限制修改为不受限
alter profile default limit failed_login_attempts unlimited;
修改后不需要重启数据库,修改结果即时生效。
注意:修改后,还没有被提示ORA-28000警告的账户不会再碰到同样的问题,已被锁定用户仍需解锁,方法如下:
alter user <user_name> account unlock;