快速实现oracle10g的审计功能

快速实现oracle10g的审计功能

工作需要,要在一个表上建立审计功能,看了一些文档,摘要如下:

1.首先修改参数audit_trail:
alter system set audit_trail=DB_EXTENDED scope=spfile ;

说明:如果修改成DB参数,无法在sys.aud$表记录执行的sql文本,以及bind数值.
使用 audit_trail=DB_EXTENDED可以实现.

2.移动sys用户下的aud$,audit$表到另外的表空间,主要问题是避免占用系统systemt太多.
  另外需要rebuild相应的索引并且移出system表空间.

ALTER TABLE SYS.aud$   MOVE TABLESPACE tools LOB(sqltext,sqlbind) STORE AS (TABLESPACE tools);
ALTER TABLE SYS.audit$ MOVE TABLESPACE tools;

ALTER INDEX SYS.I_AUD1 REBUILD TABLESPACE TOOLS STORAGE  ( INITIAL 64K ) ;
ALTER INDEX SYS.I_AUDIT REBUILD TABLESPACE TOOLS STORAGE ( INITIAL 64K ) ;

3.建立审计,例子:

AUDIT Delete ON SCOTT.DEPT BY ACCESS WHENEVER SUCCESSFUL ;
AUDIT Update ON SCOTT.DEPT BY ACCESS WHENEVER SUCCESSFUL ;

重启oracle数据库.

说明:审计的一些其他选项
by access / by session:
by access 每一个被审计的操作都会生成一条audit trail。
by session 一个会话里面同类型的操作只会生成一条audit trail,默认为by session。

4.测试数据:
insert into dept values(50,'111',111);
commit ;

update dept  set loc='222' where deptno=50 ;
update dept  set loc='333' where deptno=50 ;
rollback

4.查看审计结果,执行:
SELECT *  FROM dba_audit_trail;

dba_audit_trail实际上是SYS.aud$ , system_privilege_map spm, system_privilege_map spx,  
stmt_audit_option_map aom, audit_actions act组成的视图.

不过有一个问题,就是如果执行rollback,在aud$表中一样存在记录.
参考:
http://www.oracle.com/technology/pub/articles/10gdba/week10_10gdba.html

When Triggers Are Necessary
Avoiding False Positives. Audit trails are generated through autonomous transactions
from the original transactions. Hence they are committed even if the original transactions
are rolled back.

Here is a simple example to illustrate the point. Assume that we have set up auditing for
UPDATEs on table CLASS. A user issues a statement to update a data value from 20 to 10
and then rolls it back as shown below.

update class set size = 10 where class_id = 123;
rollback

Now the value of the column SIZE will be 20, not 10, as if the user never did anything.
However, the audit trail will capture the change, even if it's rolled back. This may be
undesirable in some cases, especially if there are lots of rollbacks by users.
In such a case, you may have to use the trigger to capture only committed changes.
If there were a trigger on the table CLASS to insert records into the user defined
audit trail, upon rollback the audit trails would have been rolled back too.

        

 

时间: 2024-09-22 23:33:58

快速实现oracle10g的审计功能的相关文章

Oracle数据库审计功能详解

一.审计分类: Oracle中审计总体上可分为"标准审计"和"细粒度审计"后者也称为"基于政策的审计",在Oracle10G之后功能得到很大增强.其中标准审计可分为用户级审计和系统级审计.用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作.系统级审计只能由DBA设置,用以监测成功或失败的登录要求.监测GRANT和REVO

oracle中如何关闭审计功能

Oracle 11g缺省安装数据库启动了audit功能,导致oracle不断累积sys.aud$表及相关索引数据量增加: 如果导致表空间满了,在alert日志中将会报ORA-1654: unable to extend index SYS....错误. 如果不用到审计功能,建议关闭审计. 处理过程: 1.用oracle用户登录到数据库服务器,执行: sqlplus / as sysdba 2.取消audit,将初始化参数audit_trail设置为NONE alter system set au

Oracle的审计功能概述

1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在system表空间中的 SYS.AUD$表中,可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)..默认情况下审计是没有开启的. 当数据库的审计是使能的,在语句执行阶段产生审计记录.审计记录包含有审计的操作.用户执行的操作.操作的日期和时间等信息. 不管你是否打开数据库的审计功能,以

数据库审计-web应用系统如何增加审计功能?

问题描述 web应用系统如何增加审计功能? 打算给当前的一个web应用增加审计功能.初步想法是在 *web应用层(侧重记录当前账号操作信息)和数据库层(借用Oracle自身的审计功能* ,侧重记录sql语句更改信息),这两个层次分别审计.但是怎么将两层的审计关联那,如实现查询某账号所执行的所有sql语句和数据更改情况. 除专业审计产品外,业界给web应用系统增加审计一般用什么方案?还有一种方案是 所有审计都放在web层完成 ,这样就没有上面方案的关联问题,因为完全可以自己控制数据的关联关系,这样

SQL Server审计功能入门:SQL Server审核 (SQL Server Audit)

原文:SQL Server审计功能入门:SQL Server审核 (SQL Server Audit) 介绍     Audit是SQL Server 2008之后才有的功能,它能告诉你"谁什么时候做了什么事情".具体是指审核SQL Server 数据库引擎实例或单独的数据库涉及到跟踪和记录数据库引擎中发生的事件.它的底层是基于扩展事件(Extented Event),所以其性能和灵活性相对较好.审核数据可以输出到审核文件.Windows安全日志和应用程序日志.     Audit都需

SQLSERVER2008新增的审核/审计功能

原文:SQLSERVER2008新增的审核/审计功能 SQLSERVER2008新增的审核/审计功能 很多时候我们都需要对数据库或者数据库服务器实例进行审核/审计 例如对失败的登录次数进行审计,某个数据库上的DDL语句进行审计,某个数据库表里面的delete语句进行审计 事实上,我们这些审计的需求基本上都是为了一个目的:防黑客   上面的这些审计需求无非就是看一下有哪些人试图入侵数据库服务器,入侵了之后是否有drop表,是否有delete数据 在SQLSERVER2008及以前版本可以选择的方案

SQL Server审计功能入门:CDC(Change Data Capture)

原文:SQL Server审计功能入门:CDC(Change Data Capture) 介绍 SQL Server 2008引入了CDC(Change Data Capture),它能记录: 1. 哪些数据行发生了改变 2. 数据行变更的历史记录,而不仅仅是最终值. 跟CT(Change Tracking)相比,它通过作业实现异步变更跟踪(像事务复制),而CT是同步实现的.因此它对性能的影响较轻并且不会影响事务. 典型应用是在提取.传输和加载数据到其它数据源,就像图中的数据仓库. 实现 微软建

PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】_php技巧

本文实例讲述了PHP在innodb引擎下快速代建全文搜索功能的方法.分享给大家供大家参考,具体如下: 需要准备的设备:Liunx(Centos)操作系统(只支持Linux),PHP环境. 这里介绍一个国人开发的搜索引擎开源项目-讯搜(xunsearch),它分为:索引服务器和搜索服务器. 在CentOS下面愉快的代建服务器 wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch

【直播系列之二】快速接入PC端直播功能

看似复杂的直播功能,可以通过开通阿里云直播服务来快速集成. 静下心来,花几分钟时间认真读完这篇文章,相信你就知道如何在阿里云直播控制台快速接入PC端直播功能了. 直播流程 Step1:直播前准备 登录阿里云官网 ,点左上角登录 登录视频直播控制台控制台会检查所依赖服务的开通状态,请按页面引导操作 添加直播域名 需要注意的是: 直播域名需要进行备案审核,审核通过后即可使用,未备案的域名请先进行备案,备案流程. 域名配置成功后,这个域名会自动配置好 CDN 直播加速功能,域名进行CNAME绑定后即可