暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

oracle数据库账号被锁诊断

原创 飞天 2024-09-04
1109

前言

今天一线同事反馈,最近在oracle11g数据库主机上执行数据库脚本,总是发现数据库账号已经被锁定了,要求协助排查。
image.png
按照以往经验,这种情况一般是频繁使用错误的账号密码登录数据库导致,下面按照这个思路去排查。

排查步骤

使用sqlplus工具登录到数据库中。

sqlplus / as sysdba

1、检查审计是否开启

show parameter audit;

结果如下:
58136e5bf3e360ad7237ea7620060e1.png

说明:
Oracle的audit_trail参数用于控制数据库审计功能的开启和审计信息的记录方式。以下是关于audit_trail参数的详细解释:
NONE:不开启审计功能。
OS:将审计记录写入操作系统文件中。
DB:将审计信息记录在数据库表sys.aud中,而不是写入操作系统文件中。 DB,EXTENDED:执行AUDIT_TRAIL=db的所有操作,并填充SYS.AUD表的SQL绑定列和SQL text clob类型列。
XML:以XML格式写入操作系统审计记录文件。将AuditRecord节点中除Sql_Text和Sql_Bind外的所有元素记录到操作系统XML审计文件中。
XML,EXTENDED:执行AUDIT_TRAIL=xml的所有操作,并在审计记录文件中包含SQL文本和SQL绑定信息。

2、检查一段时间内的审计记录
dba_audit_session数据字典用于查看数据库的会话审计记录。通过查询DBA_AUDIT_SESSION视图,可以获取到诸如操作系统用户名(OS_USERNAME)、客户端主机名(USERHOST)、会话ID(SESSIONID)、登录时间(TIMESTAMP)、注销时间(LOGOFF_TIME)、用户名(USERNAME)、操作名称(ACTION_NAME)、对象名称(OBJ_NAME)、终端(TERMINAL)和返回代码(RETURNCODE)等信息。这些记录包括用户登录、注销以及会话期间的其他重要事件。RETURNCODE='1017’通常表示用户尝试使用无效的用户名或密码登录数据库。

检查脚本如下:

select t1.os_username||','||t1.username||','||t1.userhost||','||t1.terminal||','||to_char(t1.timestamp,'yyyy-mm-dd hh24:mi:ss')||','||t1.action_name
from dba_audit_session t1
WHERE
  RETURNCODE='1017'  and TIMESTAMP BETWEEN to_date('2024-09-01','yyyy-mm-dd') AND to_date('2024-09-04','yyyy-mm-dd')
ORDER BY TIMESTAMP DESC; 

结果如下:
87c6a76ad584aeb45f085cf80b5d22b.png
1725440867291.png
可以很清晰地看到哪台主机在什么时间,使用哪个操作系统用户,使用哪个账号登录数据库的。根据这个信息去排查相应主机上的业务代码或者主机上的脚本即可。

账号解锁

alter user account unlock;

总结

把解决过程整理出来方便大家碰到问题时查阅,希望能帮助到大家。谢谢!

最后修改时间:2024-09-05 10:34:13
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论