专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle数据库账号总是被锁?通过这里就可以发现是哪个IP造成的

ins518 2024-10-14 12:50:59 技术文章 14 ℃ 0 评论

概述

简单说下背景,公司对数据库密码复杂度有一定要求,所以需要改数据库密码,因为涉及到应用这块要对应修改,但运维和开发人员却不知道具体有哪些地方配置了数据库账号密码,导致数据库账号总是被锁,所以需要看下具体的IP等信息。


1、账号被锁

下面可以看到这个账号是被锁的状态。

sql>select username,account_status from dba_users;

2、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

3、查看具体的被锁时间 ( 这里填写具体的用户名)

SQL> select username,lock_date from dba_users where username='NC633GOLD';

4、解锁

SQL> alter user NC633GOLD account unlock;

5、查看是那个ip造成的test用户被锁

无意间发现这个日志到4G了,所以清理了下,然后查看$ORACLE_HOME/network/admin/log/listener.log日志

11-7月 -2019 16:01:13 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.5.114)(PORT=21061)) * establish * orcl * 0
11-7月 -2019 16:01:13 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.5.114)(PORT=21062)) * establish * orcl * 0
11-7月 -2019 16:01:13 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.5.114)(PORT=21063)) * establish * orcl * 0
11-7月 -2019 16:01:13 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.5.114)(PORT=21064)) * establish * orcl * 0
....

这样可知是上面172.16.5.114的ip尝试多次失败登陆造成的被锁,锁定IP后找到对应的用户就很容易发现问题了。


后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表