oracle审计
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审计的更多相关文章
- [转]ORACLE 审计功能
审计是对选定的用户动作的监控和记录,通常用于: u 审查可疑的活动.例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不 ...
- 转-利用Oracle审计功能来监测试环境的变化
http://blog.csdn.net/luowangjun/article/details/5627102利用Oracle审计功能来监测试环境的变化 做过测试的人都应该会碰到这样的情况:测试发现的 ...
- 转--Oracle 审计和测试操作
http://blog.itpub.net/21605631/viewspace-759640/转 Oracle 审计和测试操作 :: 分类: Linux 1.1 相关参数 AUDIT_SYS_OPE ...
- oracle 审计功能
Oracle 11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 一.审计功能关闭 1. ...
- ORACLE审计小结
ORACLE审计小结 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_ ...
- oracle审计表迁移
============ oracle审计表迁移到新的表空间 ============ 前言 oracle数据库开启审计功能后会占用大量的SYSTEM系统表空间,要么定时对审计表进行清理,要么对系统表 ...
- Oracle 审计文件
Oracle审计功能: Oracle11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 ...
- oracle审计详解-转
http://blog.chinaunix.net/u2/66903/showart_2082884.htmlOracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用这 ...
- [转]oracle审计详解
http://blog.chinaunix.net/u2/66903/showart_2082884.html Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用 ...
随机推荐
- 进程的优先级 与 CFS 进程调度
在Linux下改变进程的优先级 作者:曾老师,华清远见嵌入式学院讲师. 作为多任务的操作系统,Linux内核为每个创建的进程分配时间片并根据其优先级进行调度.当进程被创建时,其对应的task_stru ...
- MySQL存储过程学习笔记
MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.MySQL 5.0终于开始支持存储过程了. MySQL的关键字大小写通用.该学习笔记对关键字使用大写:变量名,表名使用小写. ...
- Python之路【第十四篇】:AngularJS --暂无内容-待更新
Python之路[第十四篇]:AngularJS --暂无内容-待更新
- 10.27 noip模拟试题
1.铺瓷砖(tile.cpp/c/pas)[问题描述]有一面很长很长的墙. 你需要在这面墙上贴上两行瓷砖. 你的手头有两种不同尺寸的瓷砖,你希望用这两种瓷砖各贴一行.瓷砖的长可以用分数表示,贴在第一行 ...
- 用CSS+Jquery实现一个漂浮的窗体
一.项目需求: 实现一个用于网站主页面 从窗体左上角开始飘到右下角 之后又飘到右上角 十秒之后消失的效果. 二.需求分析: 首先 应当想要漂浮的内容放在一个容器内,也就是一个DIV,设计它的样式,不管 ...
- c# 操作.config中AppSettings配置节
ConfigurationSettings.AppSettings[key].ToString(); 这种方式很眼熟吧? 不过这种方式基本过时了,虽然还能用. 微软建议采用ConfigurationM ...
- CSS3 颜色值HSL表示方式&简单实例
HSL色彩模式:就是色调(Hue).饱和度(Saturation).亮度(Lightness)三个颜色通道的改变以及它们相互之间的叠加来获得各种颜色,色调(Hue)色调最大值360,饱和度和亮度有百分 ...
- 如何配置visual studio 2013进行负载测试-万事开头难
声明:工作比较忙,文章写得不好,有时间再整理. 起因:最近众包平台因迁移到azure之后一直有网站慢的情况,让老板挨批了,但是测试环境一切正常,而且生产环境也没发现有卡顿和慢的情况,所以干脆来一次负载 ...
- Linux下sqlite的安装与使用
简介 SQLite是一款轻量级数据库,是遵守ACID的关联式数据库管理系统.它的设计目的是嵌入式.目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百KB的内存就 ...
- windows下eclipse+hadoop2
windows下eclipse+hadoop2.4开发手册 1.解压下载的hadoop2.4,到任意盘符,例如D:\hadoop-2.4.0. 2.设置环境变量 ①新建系统变量,如下所示. ②将新建的 ...