记Oracle 11g 用户频繁被锁事件

记Oracle 11g 用户频繁被锁事件

**环境:**---RAC环境
操作系统版本:
	CentOS release 6.5 (Final)
**数据库版本:**
	Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
	PL/SQL Release 11.2.0.3.0 - Production
	CORE	11.2.0.3.0	Production
	TNS for Linux: Version 11.2.0.3.0 - Production
	NLSRTL Version 11.2.0.3.0 - Production

近期客户进行了等保改革,主要利用profile,sql*net进行对客户端及用户、会话的软硬限制,其中例如密码登录失败次数、锁定时间、僵尸连接清理等进行了完善。大致如下:

在这里插入图片描述

改后的几天,频繁接到客户说某应用连接出现问题,归纳总结大致都为 28000,1017等错误,一个简单的修改会造成这么多琐事?这里分享一下大概思路,首先查看客户机报错大致内容。
在这里插入图片描述

  • 查看用户信息状态,发现为LOCKED(TIMED),28000即为用户输入密码次数过多导致用户被锁,由参数“FAILED_LOGIN_ATTEMPTS”控制。PS:oracle用户大致分为以下几种状态

0 OPEN 1 EXPIRED 2 EXPIRED(GRACE) 3 LOCKED(TIMED) 4 EXPIRED &
LOCKED(TIMED) 5 EXPIRED(GRACE) & LOCKED(TIMED) 6 LOCKED 7 EXPIRED &
LOCKED 8 EXPIRED(GRACE) & LOCKED

1、OPEN状态表示用户处于正常状态。
2、LOCKED和LOCKED(TIMED)表示用户被锁定状态。

用户被锁定有两种:
一种是DBA显式的通过SQL语句对用户进行锁定;
另一种是被动的锁定,默认情况下如果密码输入错误超过10次。


该限制由PROFILE中的FAILED_LOGIN_ATTEMPTS控制,可查看视图DBA_PROFILES。
1)显式锁定用户LOCKED:alter user [username] account lock;
2)输入10次错误密码后被动锁定LOCKED(TIMED)
3)EXPIRED和EXPIRED(GRACE)表示用户密码过期状态。
select username,account_status,to_char(lock_date,'yyyy-mm-dd hh24:mi:ss') from dba_users where username = 'USERNAM'

在这里插入图片描述

  • 直接执行解锁,可能是某个应用或者认为登录出现错误,在正常范围内
alter user USERNAME account unlock;
  • 继续观察,此后每天下午13点20左右就会发生用户被锁事件,而且越发的频繁,心中想过各种情况、人为恶搞、被攻击等等,最后决定挖出这个用户详细信息。

  • 找到对应的数据库用户锁定时间

select username,account_status,to_char(lock_date,'yyyy-mm-dd hh24:mi:ss') from dba_users where username = 'USERNAM'
  • 查找相应的审计日志,即AUD$日志,进行对应returncode编号进行查询
select TERMINAL,comment$text, to_char(ntimestamp#,'yyyy-mm-dd hh24:mi:ss') from aud$ where returncode = 1017 and userid = 'TRSWCMV7' order by ntimestamp#;

在这里插入图片描述

  • 按照1017查找登录用户信息,返回相当多,对照用户锁定时间并没有找到有用的信息。直接查看listener.log,按照时间进行grep找到如下信息。

在这里插入图片描述

将IP地址返回给客户,进行查找,发现此用户在更改密码之后,还有一个应用5分钟定时进行数据抽取,密码输入错误次数过多导致用户锁定。

总结:
如无特殊需求,可以将“FAILED_LOGIN_ATTEMPTS”改为“UNLIMITED”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值