11g 用户使用错误密码登入导致library cache pin或者ROW CACHE LOCK

     11 g 的监听处理比10G多了一些东西, 当终端连续使用错误密码登入超过3次的时候, ORALCE 代码中有个SLEEP函数。 这个SLEEP的时间可能超过20S, 如果有多个终端并发使用错误密码登入, 那么即使使用正确密码登入的终端也会挂起,在数据库中等待时间为LIBRARY CACHE LOCK或者row cache lock.
      这给了一个攻击系统的简单方法。
      只要知道用户名,并且防火墙通,
      如果一个用户的PROFILE 设置为连续输入错误密码不锁定,开2个以上的SQLPLUS, 使用脚本连续使用错误密码登入。那么使用这个用户的应用就会无法创建新的连接,进而导致应用异常。
       在11.2.0以上的11G版本中都会有这个问题。
      ORACLE官方不认为该问题是个BUG. 所以也没有PATCH出来,
       workaround是在后台设置EVENT
    
     alter system set event='28401 trace name context forever, level 1' scope=spfile;

    需要重启实例生效。 该参数会禁用监听中的SLEEP, 可以解决该问题。
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10522540/viewspace-751333/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10522540/viewspace-751333/

你可能感兴趣的:(11g 用户使用错误密码登入导致library cache pin或者ROW CACHE LOCK)