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';

结果如下图所示。
oracle 数据库 ORA-28000错误的原因及解决办法_第1张图片

2、处理方案

处理方案可以有两种

1)修改其为无次数限制,立即生效
alter profile default limit failed_login_attempts unlimited;
// 查看
select username,account_status from dba_users;

查询结果如下图所示
oracle 数据库 ORA-28000错误的原因及解决办法_第2张图片

账号的状态分为以下几类:
OPEN:正常
LOCKED:通过SQL语句进行的锁定
LOCKED(TIMED):超过最大错误登录次数被动锁定
EXPIRED或者EXPIRED(GRACE):密码过期状态
EXPIRED & LOCKED(TIMED):密码过期并超过了限制次数被锁定

2)手动解锁

借助数据库连接工具Navicat,可以打开同一连接下,选择用户–> 用户,找到被锁住对象,如下图所示。
oracle 数据库 ORA-28000错误的原因及解决办法_第3张图片
右键–> 编辑对象,勾掉锁定对象按钮就可解锁。
oracle 数据库 ORA-28000错误的原因及解决办法_第4张图片
参考博客
【1】https://www.cnblogs.com/holmes-cat/p/10365614.html

你可能感兴趣的:(oracle,数据库,数据库)