实验目标:测试oracle 11g“密码延迟验证”特性. Oracle11g引入了“密码延迟验证”的新特性,如果输入错误的密码登录,随着错误密码登录次数的增加,每次登录前验证的时间相应也会增加,此功能目的在于避免黑客将数据库密码攻破. 但对于正常系统,由于口令的更改,特别是从10g(默认密码不区分大小写)升级到11g(默认密码区分大小写),客户端不断重复错误密码尝试登陆,此时就会引起数据库内部长时间的LibraryCache Lock等待,这种异常状态在生产环境并不少见. 以下模拟该场景: 数据库:oracle 11.2.0.4 20:32:18SQL> conn liujun/leo (登陆消耗3秒) ERROR: ORA-01017:invalid username/password; logon denied Warning:You are no longer connected to ORACLE. 20:32:21SQL> conn liujun/leo (登陆消耗2秒) ERROR: ORA-01017:invalid username/password; logon denied 20:32:23SQL> conn liujun/leo (登陆消耗4秒) ERROR: ORA-01017:invalid username/password; logon denied 20:32:27SQL> conn liujun/leo (登陆消耗3秒) ERROR: ORA-01017:invalid username/password; logon denied 20:32:30SQL> conn liujun/leo (登陆消耗4秒) ERROR: ORA-01017:invalid username/password; logon denied 20:32:34SQL> conn liujun/leo (登陆消耗5秒) ERROR: ORA-01017:invalid username/password; logon denied 20:32:39SQL> conn liujun/leo (登陆消耗5秒) ERROR: ORA-01017:invalid username/password; logon denied 20:32:44SQL> conn liujun/leo (登陆消耗7秒) ERROR: ORA-01017:invalid username/password; logon denied 20:32:51SQL> conn liujun/leo ERROR: ORA-01017:invalid username/password; logon denied 20:33:00SQL> conn liujun/leo (登陆消耗9秒) ERROR: ORA-28000:the account is locked 实验环境一个session尚且这样,若是生产环境,成百上千的session都使用错误的密码连接过来,就会造成严重的LibraryCache Lock的等待事件. 前端用户使用错误密码登录过多,就会导致输入正确的密码也需要等待很久,感觉就是数据库hang住.不过该账号一旦输入正确密码,延时就会清0. 遇到该问题,可以通过event28401关闭该特性: altersystem set event='28401 trace name context forever,level 1' scope=spfile; 说明:参数SEC_CASE_SENSITIVE_LOGON控制密码大小写敏感 Mos文档:【Doc ID 1309738.1】
|