问题描述

在最近使用oracle11g 数据库时,出现报错为ORA-28000:the account is locked的错误,翻译一下:用户被锁了,网上查找报错原因,以下记录处理的的过程,方便备查。

操作过程

oracle database 11g中,默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10”,当输入密码错误次数达到设置值将导致此问题。

推测原因

可能是在本地开发中可能有人程序连接的账号或密码输入不正确,导致数据库被锁住了。
查看用户对应文件的语句如下

// 查看数据库中各个用户 对应的默认文件
select * from dba_profiles where profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS';

结果如下图所示。
在这里插入图片描述

处理方案

处理方案可以有两种

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐