ORACLE用户被锁住、解锁用户

ORACLE用户被锁住

一、背景说明

某日,开发人员说,某个用户被锁住了,帮忙解锁,解锁不到两分钟后又被锁住了

二、排查思路

1、先查询用户被锁住的具体时间

select username,lock_date from dba_users where username='PEOPLE';

set line 999
select username,account_status,lock_date,profile from dba_users; 

EXPIRED & LOCKED 口令到期并锁定

LOCKED(TIMED) 密码错误次数超过了系统设置的允许最大次数,用户被锁定

2、查看用户使用的profile和相关信息

SELECT PROFILE FROM DBA_USERS WHERE USERNAME='PEOPLE';


SELECT PROFILE,RESOURCE_NAME,LIMIT FROM DBA_PROFILES WHERE PROFILE='DEFAULT';    #DEFAULT为查出来的信息,具体以实际情况为准

FAILED_LOGIN_TIME: 登录时,密码错误超过10次会锁定账户
PASSWORD_LIFE_TIME: 密码有效期180天
PASSWORD_LOCK_TIME: 密码锁定1天后自动解锁

设置密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改密码错误限制次数
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 20;

3、查看监听日志

如上发现用户状态为LOCKED(TIMED) ,所以是输错了密码导致的

cd $ORACLE_BASE/diag/tnslsnr/
tail -100f listener.log

发现是应用那边输入的用户密码有问题,联系开发,调整用户密码

4、解锁用户

alter user PEOPLE account unlock;

加锁
alter user PEOPLE account lock;

三、其他调整SQL

调整密码错误限制为无限次,为了安全不建议设置
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

ORA-28002,需要修改密码
alter user 用户名 identified by 密码; 

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