收到告警信息,某台数据库响应慢,登录数据库查询发现大量library cache lock等待,最后分析发现没监控的账号密码错误引起,且监控账号的profile没有做限制,因当时紧急处理,未能截图。
实验环境模拟如下,
1、新建一个测试用户
create user test identified by "Ora-.123";
2、将用户的profile密码重试次数等profile更改成不限次数(此处为测试,未设置用户profile)
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
3、for 循环使用错误的密码连接数据库,并手工并行开启(模拟监控每5分钟连接一次),
原因分析:在 Oracle 11g 中,为了提升安全性,Oracle 引入了密码延迟验证的新特性。作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试攻击。
解决办法:
通过Event 28401关闭这个特性,从而消除此类影响,以下命令将修改设置在参数文件中:
ALTER SYSTEM SET EVENT = '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;