Oracle11g审计功能

一、打开关闭审计功能
        (1) 审计功能的参数控制
        audit_trail 参数的值可以设置为以下几种
 
        1. NONE:不开启
        2. DB:开启审计功能
        3. OS:审计记录写入一个操作系统文件。
        4. TRUE:与参数DB一样
        5. FALSE:不开启审计功能。
        这个参数是写道spfile里面的,需要重启数据库
 
        (2) 查看是否审计功能是否启动
        SQL> show parameter audit
        NAME                                 TYPE        VALUE
        ------------------------------------ ----------- ------------------------------
        audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
        audit_sys_operations                 boolean     FALSE
        audit_syslog_level                   string
        audit_trail                          string      NONE
 
        (3) 开启审计
        SQL> conn /as sysdba
        SQL> show parameter audit
        NAME                                 TYPE        VALUE
        ------------------------------------ ----------- ------------------------------
        audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
        audit_sys_operations                 boolean     FALSE
        audit_syslog_level                   string
        audit_trail                          string      NONE
 
        SQL> alter system set audit_sys_operations=TRUE scope=spfile;--审计管理用户(以sysdba/sysoper角色登陆)
        SQL> alter system set audit_trail=db,extended scope=spfile;
 
        重启实例
        SQL> show parameter audit
        NAME                                 TYPE        VALUE
        ------------------------------------ ----------- ------------------------------
        audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
        audit_sys_operations                 boolean     TRUE
        audit_syslog_level                   string
        audit_trail                          string      DB, EXTENDED     
        (完成)
 
        (4) 关闭审计
        SQL> conn /as sysdba
        SQL> show parameter audit
        SQL> alter system set audit_trail = none scope=spfile;
        重启实例
 
二、审计
 
        1、对象审计:对表进行审计(数据的添加、删除、修改;表结构的修改及重命名),不需要任何权限,普通用户可用   
            audit insert,update,delete,alter,rename on 表名 by session whenever successful;
 
        2、语句审计
            (1)
            audit table by session whenever successful;
            audit view by session whenever successful;
            (2)
            audit insert table by session whenever successful;
            audit delete table by session whenever successful;
            audit update table by session whenever successful;
            audit alter table by session whenever successful;
            audit comment table by session whenever successful;
        3、参数说明:
            (1)By session / By Access
                by session对每个session中对同一个对象发生的操作只记录第一次
                by access对每个session中发生的每次操作都记录,而不管是否重复。
 
            (2)Whenever successful/ Whenever not successful
                Whenever successful表示操作成功以后才记录下来。
                Whenever not successful表示操作失败后才记录下来。
三、取消审计
        可以使用以下语句取消所有级别(语句、权限和对象)的审计:
            noaudit all;            取消所有语句审计
            noaudit all privieges;    取消所有权限审计
            noaudit all on default;    取消所有对象审计
 
四、查询有哪些对象被审计(只适用于audit...on...)
        select * from user_obj_audit_opts;
 
五、查询具体审计信息
        语句审计查询:
        select * from user_audit_statement;
        对象审计查询:
        select * from user_audit_object;
 
六、把审计相关的表移到其他表空间
 
        alter table aud$ move tablespace <new tablespace>;
        alter index I_aud1 rebuild online tablespace <new tablespace>;
        alter table audit$ move tablespace <new tablespace>;
        alter index i_audit rebuild online tablespace <new tablespace>;
        alter table audit_actions move tablespace <new tablespace>;
        alter index i_audit_actions rebuild online tablespace <new tablespace>;
 
七、问题总结
        权限问题:普通用户只能在自己的对象上做审计,即audit...on...
        作用域问题:用管理员登录后,audit insert table by session whenever successful; 作用于实例上的所有用户,此操作产生大量审计数据。
 
 
八、 删除审计日志
当已形成很对日志时,可删除里面的记录,目前是直接删除,未对数据库造成影响。
查询目前的日志信息:select * FROM SYS.AUD$;
删除已有的审计信息:DELETE FROM SYS.AUD$;
或者快速删除表信息:truncate table  SYS.AUD$;

Oracle11g审计功能

上一篇:Docker部署MySQL容器


下一篇:用友U8开发-库存管理收发存汇总表SQL