Orcale审计机制研究

1.   设置审计

1.1.  查看审计状态

SQL>conn /as sysdba;

已连接

SQL>show parameters audit_trail;

NAME       TYPE      VALUE
------------------------- ------------------------
audit_trail     string      NONE

1.2.  确认审计相关的表是否已经安装

首先查看审计相关的表是否已安装,执行如下命令:

SQLPLUS> connect / AS SYSDBA

SQLPLUS> select * from sys.aud$; --没有记录返回

SQLPLUS> select * from dba_audit_trail; --没有记录返回

如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。

安装执行如下命令:

SQLPLUS> connect / as sysdba

SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql

审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计信息。

1.3.  修改状态,激活审计(用户SYS)

激活审计执行如下命令:

SQL> alter system set audit_sys_operations=true  scope=spfile;

System altered

SQL> alter system set audit_trail=DB,EXTENDED scope=spfile;

System altered

注: l         DB/TRUE:启动审计功能,并且把审计结果存放在数据库的 SYS.AUD$ 表中

l         OS:启动审计功能,并把审计结果存放在操作系统的审计信息中

l         EXTENDED:具有DB/TRUE的功能,另外填写AUD$的SQLBIND和SQLTEXT字段

l         NONE/FALSE:关闭审计功能

重启数据库实例:

SQL> startup force;

ORACLE 例程已经启动。

1.4.  再查看状态(用户SYS)

SQL> show parameter audit;

NAME       TYPE      VALUE
------------------------- ------------------------
audit_trail     string      DB,  EXTENDED

1.5.  建立测试表(用户TPLATFORM)

建立测试表(T_AUDIT_DEMO)准备进行审计测试:

Create Table T_AUDIT_DEMO

(

CID   INT   NOT NULL,

CNAME VARCHAR2(20) NULL,

ENAME VARCHAR2(20) NULL,

CONSTRAINT PK_T_AUDIT_DEMO PRIMARY KEY (CID)

);

表已创建

1.6.  设置审计

对用户TPLATFORM下的表进行审计操作:

SQL> conn /as sysdba;

已连接

SQL> audit select table by TPLATFORM by access;   //设置审计查询

审计已成功

SQL> audit update table by TPLATFORM by access;  //设置审计更新

审计已成功

SQL> audit insert table by TPLATFORM by access ;   //设置审计添加

审计已成功

SQL> audit DELETE table by TPLATFORM by access;  //设置审计删除

审计已成功

(如果在命令中添加by TPLATFORM则只对TPLATFORM的操作进行审计,否则对所以用户操作进行审计)

2.   使用审计查看

2.1.  进行审计测试(用户SYS、TPLATFORM)

添加表数据准备测试审计:

INSERT INTO T_AUDIT_DEMO VALUES(1,'曾勋','ZENG XUN');

INSERT INTO T_AUDIT_DEMO VALUES(2,'翁黎明','WENG LI MING');

INSERT INTO T_AUDIT_DEMO VALUES(3,'刘帝勇','LIU DI YONG');

查询表数据准备测试审计:

SELECT * FROM T_AUDIT_DEMO WHERE CID < 3

删除表数据准备测试审计:

DELETE FROM T_AUDIT_DEMO WHERE CID = 3;

提交

commit;

SQL> select action_name,sql_text from  sys.aud$  where OBJ_NAME = 'T_AUDIT_DEMO';

dba_audit_trail的关键字段:

OBJ$CREATOR 操作对象

NTIMESTAMP# 操作提交时间

OBJ$NAME  表名

ACTION 操作类型(对应audit_action表, audit_action表中有两个字段action,name,分别为操作类型,操作类型名称)

SQLTEXT 执行的sql语句

3.   性能

由于审计相关的表aud$存放在SYSTEM表空间,因此为了不影响系统的性能,保护SYSTEM表空间,最好移动到其他的表空间上。可以使用下面的语句来进行移动:

实际上sys.aud$表上包含了两个lob字段(sqlbind, SQLTEXT),并不是简单的move table就可以。
下面是具体的过程:

SQL>alter table aud$ move tablespace 表空间名;

SQL>alter table sys.aud$ move lob(sqlbind) store as( tablespace 表空间名);

SQL>alter table sys.aud$ move lob(SQLTEXT) store as( tablespace表空间名);

SQL>alter index I_aud1 rebuild online tablespace 表空间名;

SQL> alter table audit$ move tablespace 表空间名;

SQL> alter index i_audit rebuild online tablespace 表空间名;

SQL> alter table audit_actions move tablespace 表空间名;

SQL> alter index i_audit_actions rebuild online tablespace 表空间名;

4.   运维

可能随着时间越久,信息量就会越大,需要定期进行删除以前的数据(如:3个月).

oracle审计的更多相关文章

  1. [转]ORACLE 审计功能

    审计是对选定的用户动作的监控和记录,通常用于: u          审查可疑的活动.例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不 ...

  2. 转-利用Oracle审计功能来监测试环境的变化

    http://blog.csdn.net/luowangjun/article/details/5627102利用Oracle审计功能来监测试环境的变化 做过测试的人都应该会碰到这样的情况:测试发现的 ...

  3. 转--Oracle 审计和测试操作

    http://blog.itpub.net/21605631/viewspace-759640/转 Oracle 审计和测试操作 :: 分类: Linux 1.1 相关参数 AUDIT_SYS_OPE ...

  4. oracle 审计功能

    Oracle 11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 一.审计功能关闭 1. ...

  5. ORACLE审计小结

    ORACLE审计小结 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_ ...

  6. oracle审计表迁移

    ============ oracle审计表迁移到新的表空间 ============ 前言 oracle数据库开启审计功能后会占用大量的SYSTEM系统表空间,要么定时对审计表进行清理,要么对系统表 ...

  7. Oracle 审计文件

    Oracle审计功能: Oracle11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 ...

  8. oracle审计详解-转

    http://blog.chinaunix.net/u2/66903/showart_2082884.htmlOracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用这 ...

  9. [转]oracle审计详解

    http://blog.chinaunix.net/u2/66903/showart_2082884.html Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用 ...

随机推荐

  1. hadoop编程技巧(4)---总体情况key按类别搜索TotalOrderPartitioner

    Hadoop代码测试版:Hadoop2.4 原理:携带MR该程序随机抽样提取前的输入数据,样本分类,然后,MR该过程的中间Partition此值用于当样品排序分组数据.这使得可以实现全球排名的目的. ...

  2. Java设计模式03:常用设计模式之单例模式(创建型模式)

    1.  Java之单例模式(Singleton Pattern ) 单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类只能有一个实 ...

  3. 零基础学习云计算及大数据DBA集群架构师【预科2015年12月14日周一】

    1.第一天比较轻松,上午填表格,录指纹,拍照片,做自我介绍. 2.下午老师简单介绍了一下PC\交换机\路由器\塔式服务器\机架式服务器(1U\2U)\刀片服务器\磁带机 3.班主任陈老师朱老师,预科秦 ...

  4. 使用strut2要注意的问题

  5. MEF依赖注入调试小技巧!

    自从哥的项目使用MEF以来,天天那个纠结啊,甭提了.稍有错误,MEF就报错,但就不告诉你哪错了,大爷的. 后来看了MEFX的相关调试方法,感觉也不太理想,根本不够直观的看到错误原因,也许是没有深入学习 ...

  6. Android 通信机制Message、Handler 的用法

    Android中提供了通信机制,Message.Handler 等,Message用于在子线程中传递数据,Handler用于发送数据到主线程中, 下面介绍基于Message.Handler的计时器 i ...

  7. Android 控件 之 Menu 菜单

    http://www.cnblogs.com/Mrs-cc/archive/2012/07/21/2603042.html 1.OptionsMenu (选项菜单)用法总结   使用方法: 方法一:添 ...

  8. SQL存储过程传入字段名查询.

    根据字段名和对应的值查询. (正确代码):目前发现,需要"分组,排序"等才能解决,如"order by","group by"等. SQL代 ...

  9. php文件粘贴上传

    <?php header("Access-Control-Allow-Origin:*"); $url = 'http://'.$_SERVER['HTTP_HOST']; ...

  10. 【BZOJ1483】【链表启发式合并】梦幻布丁

    Description N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. Input 第 ...