oracle 数据库 ORA-28000错误的原因及解决办法
背景介绍
在最近使用oracle11g 数据库时,出现报错为ORA-28000:the account is locked的错误,翻译一下:用户被锁了,网上查找报错原因,以下记录处理的的过程,方便备查。
1、原因
在 oracle database 11g中,默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10”,当输入密码错误次数达到设置值将导致此问题。 推测原因: 可能是在本地开发中可能有人程序连接的账号或密码输入不正确,导致数据库被锁住了。 查看用户对应文件的语句如下
// 查看数据库中各个用户 对应的默认文件
select * from dba_profiles where profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS';
结果如下图所示。
2、处理方案
处理方案可以有两种
1)修改其为无次数限制,立即生效
alter profile default limit failed_login_attempts unlimited;
// 查看
select username,account_status from dba_users;
查询结果如下图所示
账号的状态分为以下几类: OPEN:正常 LOCKED:通过SQL语句进行的锁定 LOCKED(TIMED):超过最大错误登录次数被动锁定 EXPIRED或者EXPIRED(GRACE):密码过期状态 EXPIRED & LOCKED(TIMED):密码过期并超过了限制次数被锁定
2)手动解锁
借助数据库连接工具Navicat,可以打开同一连接下,选择用户–> 用户,找到被锁住对象,如下图所示。 右键–> 编辑对象,勾掉锁定对象按钮就可解锁。 参考博客 【1】https://www.cnblogs.com/holmes-cat/p/10365614.html