概述
简单说下背景,公司对数据库密码复杂度有一定要求,所以需要改数据库密码,因为涉及到应用这块要对应修改,但运维和开发人员却不知道具体有哪些地方配置了数据库账号密码,导致数据库账号总是被锁,所以需要看下具体的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日志
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方面的内容,感兴趣的朋友可以关注一下~