用户被锁
一台测试库,业务反馈某个用户频繁被锁定,但又不好判断是哪台机器;
SYS>SELECT USERNAME, ACCOUNT_STATUS, LOCK_DATE
FROM DBA_USERS
WHERE ACCOUNT_STATUS = 'LOCKED(TIMED)';
2 3
USERNAME ACCOUNT_STATUS LOCK_DATE
------------------------------ -------------------------------- ---------
A_MKU_XH LOCKED(TIMED) 23-AUG-21
于是用oracle自带的审计功能来尝试查一下;
备份清理
审计信息记录在sys.aud$表里,当前数据有2000多w,效率不高,先备份再truncate;
SYS>select count(*) from aud$;
COUNT(*)
----------
21419082
create table audit_20210823 TABLESPACE DATA_AUDI as select * from sys.aud$;
truncate table sys.aud$;
检查审计功能
SYS>show parameter audit_trail
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_trail string DB
开启了DB模式,审计日志记录到aud$;
如果没开启就是NONE,改参数,重启实例生效;
alter system set audit_trail=db scope=spfile;
开启审计
--对目标用户登陆失败进行审计
AUDIT SESSION BY A_MKU_XH WHENEVER NOT SUCCESSFUL;
检查审计日志
SELECT A.TIMESTAMP, A.RETURNCODE
FROM DBA_AUDIT_SESSION A
WHERE A.USERNAME = 'A_MKU_XH'
ORDER BY 1;

可以看出从16:33:25开始,对用户解锁,接着连续10次的1017密码错误,随后继续28000用户被锁。
01017, 00000, “invalid username/password; logon denied”
28000, 00000, “the account is locked”
从COMMENT$TEXT 连接串找到客户端IP,通知用户使用人处理;
SELECT A.COMMENT$TEXT FROM SYS.AUD$ A WHERE USERID = 'A_MKU_XH';
关闭审计
NOAUDIT CONNECT BY A_MKU_XH;
如果想对所有用户开启登陆失败审计,则用下面的命令:
AUDIT SESSION WHENEVER NOT SUCCESSFUL;
NOAUDIT CONNECT; --关闭审计
最后修改时间:2021-08-23 23:30:27
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




