注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

常在心

淡泊明志,人生自在

 
 
 

日志

 
 

ORACLE审计维护手册  

2011-06-23 16:46:23|  分类: oracle审计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

----------------(一)审计策略的增加,撤消,删除----------------------------

 

1)标准审计

AUDIT DELETE ANY TABLE; --审计删除表的操作

AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL; --只审计删除失败的情况

AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL; --只审计删除成功的情况

AUDIT DELETE,UPDATE,INSERT ON user.table by SYSTEM;

--审计SYSTEM用户对表user.table的delete,update,insert操作

NOAUDIT ALL ON t_test;   --撤消审计

NOAUDIT ALL BY scott;    --撤消用户SCOTT的所有POLICY的审计

NOAUDIT ALL PRIVILEGES BY scott;  --撤消用户SCOTT的所有权限审计

 

2)细粒度审计

/*可以实现对某几个列同时进行相关的SELECT,DELETE,UPDATE,INSERT的审计

也可以实现对列的值(约束条件)进行审计

*/

1.添加细粒度审计策略

BEGIN

  DBMS_FGA.ADD_POLICY(OBJECT_SCHEMA   => 'SCOTT',

                      OBJECT_NAME     => 'DEPT',

                      POLICY_NAME     => 'DEPT_IN_POLICY',

                     /* AUDIT_CONDITION => 'dname=IT',*/

                      AUDIT_COLUMN    => 'DNAME',

                      ENABLE          => TRUE,

                      STATEMENT_TYPES => 'INSERT');

END;

/

说明:

object_schema 要审计的用户名

object_name   要审计的对象

policy_name   审计的策略名字

audit_condition 审计的条件

audit_column    审计的列

ENABLE   表示启用

statement_types 审计的语句类型,包括SELECT,INSERT,UPDATE,DELETE等

 

2.停用细粒度审计

 

BEGIN

  DBMS_FGA.ENABLE_POLICY(OBJECT_SCHEMA => 'SCOTT',

                         OBJECT_NAME   => 'DEPT',

                         POLICY_NAME   => 'DEPT_IN_POLICY',

                         ENABLE        => FALSE);

END;

/

3.重新启用细粒度审计

BEGIN

  DBMS_FGA.ENABLE_POLICY(OBJECT_SCHEMA => 'SCOTT',

                         OBJECT_NAME   => 'DEPT',

                         POLICY_NAME   => 'DEPT_IN_POLICY',

                         ENABLE        => TRUE);

END;

/

4.删除细粒度审计

 

BEGIN

  DBMS_FGA.DROP_POLICY(OBJECT_SCHEMA => 'SCOTT',

                       OBJECT_NAME   => 'DEPT',

                       POLICY_NAME   => 'DEPT_IN_POLICY');

END;

/

 

 

----------------(二)审计记录的维护查看----------------------------

1)查看FGA(细粒度)审计的定义

SELECT * FROM DBA_AUDIT_POLICIES;

 

2)查看object审计的定义

SELECT * FROM DBA_OBJ_AUDIT_OPTS;

 

3)查看用户访问当前系统的审计定义

SELECT * FROM DBA_STMT_AUDIT_OPTS MS;

 

4)查看某一天所有审计信息

SELECT OS_USERNAME,  --登录的操作系统用户

       USERNAME,     --登录的数据库用户

       USERHOST,     --连接的用户主机

       TERMINAL,     --使用的终端

       TIMESTAMP,    --连接的时间

       ACTION_NAME,  --执行的操作规则

       COMMENT_TEXT, --信息描述,包括连接的主机IP和端口

       T.SQL_BIND,   --操作的SQL语句绑定的值

       T.SQL_TEXT    --操作的SQL语句

  FROM DBA_AUDIT_TRAIL T

 WHERE TO_CHAR(T.TIMESTAMP, 'yyyymmdd') = '20110621';

 

5)查看某一天SESSION的审计信息

SELECT S.OS_USERNAME,

       S.USERNAME,

       S.USERHOST,

       S.TERMINAL,

       S.TIMESTAMP,

       S.LOGOFF_TIME

  FROM DBA_AUDIT_SESSION S

 WHERE TO_CHAR(S.TIMESTAMP, 'yyyymmdd') = '20110622';

 

      

7)查看某一天object的审计记录

SELECT AO.OS_USERNAME,

      AO.USERNAME,

      AO.USERHOST,

      AO.TERMINAL,

      AO.TIMESTAMP,

      AO.OBJ_NAME,

      AO.ACTION_NAME,

      AO.SQL_BIND,

      AO.SQL_TEXT

 FROM DBA_AUDIT_OBJECT AO

WHERE TO_CHAR(AO.TIMESTAMP, 'yyyymmdd') = '20110622';

 

 

8)查看细粒度的审计结果

SELECT F.OS_USER, --操作系统用户

       F.DB_USER, --数据库用户

       F.USERHOST, --登录的主机

       F.TIMESTAMP, --登录时间

       F.OBJECT_SCHEMA, --对象对应的用户

       F.OBJECT_NAME, --对象名

       F.POLICY_NAME, --哪条策略

       F.SQL_BIND, --操作的SQL绑定值

       F.SQL_TEXT, --操作的SQL语句

       F.STATEMENT_TYPE --执行操作的类型,如DML

  FROM DBA_FGA_AUDIT_TRAIL F

 WHERE TO_CHAR(F.TIMESTAMP, 'yyyymmdd') = '20110622';

 

 

----------------(三)审计记录的清除----------------------------

/*

说明:

1.审计结果最终是保存到SYS.AUD$和SYS.FGA_LOG$

2.审计的内容越多性能会影响的越大

3.适当进行审计信息的清理和维护很重要

4.建议每半年清理一次,同时保留审计记录

5.最好在业务不繁忙的时候进行,可以通过查看历史的审计结果看,那个时间最适合进行

*/

 

sqlplus / AS SYSDBA

CREATE TABLESPACE log_bak DATAFILE '/u01/app/oracle/oradata/orcl/log_bak.dbf' SIZE 1G;

 

CREATE TABLE aud_bak_20110601_20111201 COMPRESS NOLOGGING TABLESPACE log_bak AS SELECT * FROM sys.Aud$;

 

TRUNCATE TABLE SYS.AUD$;

 

CREATE TABLE fga_log_bak_20110601_20111201 COMPRESS NOLOGGING TABLESPACE log_bak AS SELECT * FROM sys.Fga_Log$;

 

TRUNCATE TABLE SYS.FGA_LOG$;
  评论这张
 
阅读(495)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017