上次我们介绍了:Oracle 11g数据库默认审计选项说明详解,本文我们主要介绍一个Oracle 11g数据库中审计功能的应用实例,希望能够对您有所帮助。
在用户的profile 属性里面有一个属性:FAILED_LOGIN_ATTEMPTS,该参数默认值是10.即当我们用户连续10次输入错误密码,这个用户就会被锁住。用户连词失败次数是在表USER$中的lcount字段记录的。该值默认为0.当失败一次,该值加1.成功登录,该值清零。
一般在生产环境下,会根据具体情况设置这个参数,如果防止用户被锁,则将这个参数设置为UNLIMITED。这个是注意的地方。当然设置成无限也有它的弊端,比如不能防止暴力破解数据库密码。
有关profile 的更多内容参考:
Oracle 用户 profile 属性
http://blog.csdn.net/tianlesoftware/article/details/6238279
在Oracle 11g中默认启用了对登录注销操作LOGON/LOGOFF的审计,那么如果我们发现用户被锁,那么可以应用11g的审计功能来查看从哪台机器上发来的链接失败导致用户被锁,可以帮助我们定位问题。
脚本如下:
SQL>selectos_username,userhost,terminal,username,count(*) 2fromdba_audit_trail 3wherereturncode=10174groupbyos_username,userhost,username,terminal; OS_USERNAMEUSERHOSTTERMINALUSERNAMECOUNT(*) ---------------------------------------------------------------------------------------------- DavidDai\AdministratorWORKGROUP\DAVIDDAIDAVIDDAIICD7 DavidDai\AdministratorWORKGROUP\DAVIDDAIDAVIDDAISYSTEM9 DavidDai\AdministratorWORKGROUP\DAVIDDAIDAVIDDAISYS3 DavidDai\AdministratorWORKGROUP\DAVIDDAIDAVIDDAIEXIT1
注意:对于LOGON PER SECOND很高的数据库,如果应用程序配置文件中的数据库用户密码不正确,同时应用在短期内发起大量会话登录数据库的话可能引发频繁的dc_users字典缓存锁,用户登录无法成功,乃至整个实例hang住。这个问题直接参考Maclean的blog:
Row Cache lock Problem
http://www.oracledatabase12g.com/archives/row-cache-lock-problem.html
关于Oracle 11g数据库审计功能的应用实例就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
- SQL Server 2008 MDX学习笔记之理解元数组SQL Server数据库DataRelation的应用示例详解SQL Server 2005/2008中的CTE应用之递归查询SQL Server 2008数据库学习笔记之MDX查询示例SQL Server 2008原生的分层数据类型hierarchyid简介