Oracle审计失败的用户登陆(Oracle audit)
Oracle审计失败的用户登陆(Oracle audit)对于在线交易系统,且Oracle用户在使用缺省的profile的情形下,多用户共享相同的数据库用户及密码,任意用户输入错误密码累计达到10次以上,其帐户会被自动锁定使得交易易做图临时终止将产生不小的损失。故有必要对那些失败的帐户登陆进行分析以预估是否存在恶意攻击等。Oracle提供了审计功能用于审计那些失败的Oracle用户登陆来进行风险评估。本文即是描述如何开启审计失败的用户登陆。本文不涉及审计的具体的描述信息,仅仅描述如何审计失败的用户登陆。详细完整的审计大家可以参考Oracle Database Security Guide。1、帐户被锁定的情形通常情况下,帐户可以由DBA手动锁定,也可能是由于错误的密码输入次数超出了profile中failed_login_attempts 次数的限制而被锁定。[sql]a、手动锁定的情形sys@SYBO2SZ> select username,account_status,lock_date from dba_users where username like 'USR%';USERNAME ACCOUNT_STATUS LOCK_DATE------------------------------ -------------------------------- -----------------USR2 OPENUSR1 OPENsys@SYBO2SZ> alter user usr1 account lock;sys@SYBO2SZ> select username,account_status,lock_date from dba_users where username like 'USR%';USERNAME ACCOUNT_STATUS LOCK_DATE------------------------------ -------------------------------- -----------------USR2 OPENUSR1 LOCKED 20131023 16:37:37b、登陆失败超出的情形sys@SYBO2SZ> select name,lcount from user$ where name='USR2';NAME LCOUNT------------------------------ ----------USR2 10sys@SYBO2SZ> select username,account_status,lock_date from dba_users where username like 'USR%';USERNAME ACCOUNT_STATUS LOCK_DATE-------------- ------------------ -----------------USR2 LOCKED(TIMED) 20131023 16:41:48 -->用户usr2登陆10次之后帐户被锁定,其状态不同于手动锁定的用户,为LOCKED(TIMED)USR1 LOCKED 20131023 16:37:372、如何开启审计失败的用户登陆开启审计需要做如下设置a、设置参数 audit_trail = { none | os | db [, extended] | xml [, extended] }b、设置参数 audit_file_dest = '<os_dir>'c、开启登陆失败审计 audit session whenever not successful;d、执行下面的SQL来查看那些用户经历了登陆失败的情形select userid, userhost, terminal, clientid from aud$ where returncode=1017;关于参数audit_trail,当值为DB时,非sys帐户的审计信息都会被记录到表SYS.AUD$,会占用system表空间,存在资源占用问题,当然也可将其部署到非系统表空间。sys帐户登陆成功与失败都会生成审计文件。当值为OS时,所有的审计记录被写入到操作系统文件,对于高度安全的数据库,Oracle建议采用该设置,理由很简单,高度安全,写入DB的话,整个系统忙得不亦乐乎。如果数据库处于只读模式且该参数值为DB时,Oracle 内部设置audit_trail为OS,细节可查看alert log。其余的几个值可参考Oracle Database Reference。3、演示配置审计登陆失败(oracle 10g)[sql]goex_admin@SYBO2SZ> select * from v$version where rownum<2;BANNER----------------------------------------------------------------Oracle Database 10g Release 10.2.0.3.0 - 64bit Production--Oracle 10g下当前数据库的配置,如下,也是缺省配置goex_admin@SYBO2SZ> show parameter auditNAME TYPE VALUE------------------------------------ ----------- ------------------------------audit_file_dest string /users/oracle/OraHome10g/rdbms/auditaudit_sys_operations boolean FALSEaudit_syslog_level stringaudit_trail string NONE--下面修改存储审计文件位置goex_admin@SYBO2SZ> ho mkdir -p /u02/database/SYBO2SZ/auditgoex_admin@SYBO2SZ> alter system set audit_trail='DB' scope=spfile;goex_admin@SYBO2SZ> alter system set audit_file_dest='/u02/database/SYBO2SZ/audit' scope=spfile;goex_admin@SYBO2SZ> audit session whenever not successful;goex_admin@SYBO2SZ> conn / as sysdbasys@SYBO2SZ> shutdown immediate;sys@SYBO2SZ> startupsys@SYBO2SZ> ho ls /u02/database/SYBO2SZ/auditC:\Users\robinson.cheng>sqlplus scott/wrongpwd@sybo2sz --尝试使用错误的密码从客户端来登陆sys@SYBO2SZ> select userid, userhost, terminal from aud$ where returncode=1017;USERID USERHOST TERMINAL---------------上一个:核心系统某业务超时的问题分析
下一个:oracle建表设置主键自增
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?