zoukankan      html  css  js  c++  java
  • 针对Oracle的审计方案

    主题:针对Oracle的审计方案
    数据库环境:Oracle 11g
    数据库审计需求:

    1.需要对连接数据库的行为进行审计

    需要对连接数据库的行为进行审计,其中包含例如审计那些错误密码登录等失败的登录行为。 主要关注查询的表就是`aud$`。 比如查询最近一天使用错误密码登录的行为;
    --aud$
    select sessionid, userid, userhost, comment$text, spare1, ntimestamp#
      from aud$
     where returncode = 1017
       and ntimestamp# > sysdate - 1;
    
    --dba_audit_trail
    select *
      from dba_audit_trail
     where returncode = 1017
       and timestamp > sysdate - 1;
    

    更多关于aud$的介绍可参考之前我总结过的文章:

    2.需要对核心表的DML操作进行审计

    需要对核心表的DML操作进行审计,首先强调下这是不推荐进行审计的,原因是这类审计极少客户会用,它不但会使得核心表的操作性能本身受到一定影响,还有可能触发相关bug。 假如jingyu用户下的T1表非常重要,需要对DML操作进行审计:
    SYS@jyzhao1 >AUDIT DELETE,UPDATE,INSERT ON JINGYU.T1;
    
    Audit succeeded.
    

    查询审计结果(列较多,建议图形化工具查看):

    SQL> select * from dba_audit_trail order by timestamp;
    

    可以从结果看到所有DML操作都会对应一条action_name为“SESSION REC”的值。

    3.需要迁移审计数据到指定表空间

    创建新的表空间,比如TBS_AUDIT,然后迁移审计数据从默认的SYSTEM到TBS_AUDIT表空间; 核心步骤如下:
    --查看当前AUD$对象所在的表空间
    SELECT OWNER, TABLE_NAME, TABLESPACE_NAME  
      FROM DBA_TABLES  
       WHERE TABLE_NAME = 'AUD$'  
       AND OWNER = 'SYS'; 
    
    --更改AUD$表的表空间为其他表空间
    BEGIN  
     DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(  
      AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,   
      AUDIT_TRAIL_LOCATION_VALUE => '&AUD_TBS_NAME');  
    END;  
    /  
    

    更多细节可参考之前我总结过的一则案例:

    4.需要清理历史审计数据的方案

    需要清理历史审计数据的方案:
    --截断占用空间最大的AUD$表(需要和DBA确认后操作)
    truncate table AUD$;
    

    截断之前可以考虑备份一下审计数据:

    Oracle导出sys用户下的系统表aud$:

    exp system/oracle file=aud.dmp log=aud.log tables=sys.aud$
    

    实际这个exp导出在测试环境遇到问题,不过最终解决了,具体细节可以参考:

  • 相关阅读:
    Spring事务初识
    JdbcTemplate 和 NamedParameterJdbcTemplate详解
    Java7 新特性
    Spring的数据库编程
    Spring AOP初识
    Spring Bean装配
    [USACO12FEB]Nearby Cows G
    [USACO07OPEN]Cheapest Palindrome G
    洛谷P2633 Count on a tree
    洛谷P4113 [HEOI2012]采花
  • 原文地址:https://www.cnblogs.com/jyzhao/p/8306159.html
Copyright © 2011-2022 走看看