Oracle Audit

Oracle Audit 是记录数据库中数据对象操作的工具,包括语句审计、权限审计和对象审计。审计表安装在SYSTEM表空间,可通过AUDIT命令进行设置,并通过不同参数控制记录条件。审计结果存储在SYS.AUD$等视图中,DBA_AUDIT_TRAIL等视图提供审计跟踪信息。
Oracle Audit

什么是审计 => 记录对数据对象的所有操作。什么时候,什么用户对对象做出了什么类型的操作。默认情况下审计是关闭的。

审计相关的表安装
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.语句审计(Statement Auditing) => 对预先指定的某些SQL语句进行审计。
例如: AUDIT CREATE TABLE => 表明审查记录CREATE TABLE语句。

2.权限审计(Privilege Auditing) => 对涉及某些权限的操作进行审计。
例如先赋予用户a查询权限:   
GRANT SELECT ANY TABLE TO a;
AUDIT SELECT ANY TABLE;
然后当用户a执行查询语句时:SELECT * FROM b.T 用到了SELECT 权限,所以此条语句会被记录。
有时候语句既是语句审计又是权限审计内容。如上面说到的CREATE TABLE。

3.对象审计(Object Auditing) => 审计作用在指定对象上的操作。
例如: AUDIT ALTER,DELETE,DROP ON a.T by b;
语句指定审定用户a的表,同时by指定只审定用户b发起的操作。

审计语句参数

1. By [Session | Access]
Session => 对每个会话中发生的重复操作只做一次记录。
Access  => 每次操作都会被记录。

例子:
AUDIT SELECT,UPDATE,INSERT,DELETE
ON a.T
BY SESSION
对所有a用户下的T表进行的独立操作都将被记录。

2.Whenever [not] sucessful
Sucessful => 操作成功才会被记录。
not Sucessful => 操作失败才会被记录。
NULL(不设置) => 该语句设置则不管成功与否都记录

例子:
AUDIT DELETE ANY TABLE
WHENEVER NOT SUCESSFUL;
对所有删除失败的动作进行记录。

启用审计的两个重要参数

Audit_SYS_Operations => 指定所有系统(sysdba,sysoper)用户的操作是否都被记录。默认为false。
内容记录在audit_file_dest指定的文件中。

Audit_Trail => 通过数据库初始文件init.ora参数中的AUDIT_TRAIL来启用和禁用审计。
有三个取值:
None => 默认,不做审计
DB     => 将audit_trail 记录在数据库审计相关表中,aud$
OS     => 将audit_trail 记录在操作系统文件中,文件目录地址由audit_file_dest指定

审计结果在数据库保存形式
SYS.AUD$              是唯一保留审计结果的表。其它的都是视图。

STMT_AUDIT_OPTION_MAP 包含有关审计选项类型代码的信息由SQL.BSQ 脚本在CREATE DATABASE 的时候创建
AUDIT_ACTIONS         包含对审计跟踪动作类型代码的说明
ALL_DEF_AUDIT_OPTS    包含默认对象审计选项。当创建对象时将应用这些选项

DBA_STMT_AUDIT_OPTS   描述由用户设置的跨系统的当前系统审计选项
DBA_PRIV_AUDIT_OPTS   描述由用户正在审计的跨系统的当前系统权限
DBA_OBJ_AUDIT_OPTS    描述在所有对象上的审计选项
USER_OBJ_AUDIT_OPTS   USER 视图描述当前用户拥有的所有对象上的审计选项

以下是审计记录
DBA_AUDIT_TRAIL       列出所有审计跟踪条目
USER_AUDIT_TRAIL      USER视图显示与当前用户有关的审计跟踪条目

DBA_AUDIT_OBJECT      包含系统中所有对象的审计跟踪记录
USER_AUDIT_ OBJECT    USER 视图列出一些审计跟踪记录而这些记录涉及当前用户可以访问的对象的语句

DBA_AUDIT_SESSION     列出涉及CONNECT 和DISCONNECT 的所有审计跟踪记录
USER_AUDIT_SESSION    USER视图列出涉及当前用户的CONNECT 和DISCONNECT 的所有审计跟踪记录

DBA_AUDIT_STATEMENT     列出涉及数据库全部的GRANT REVOKE AUDIT NOAUDIT 和ALTER SYSTEM 语句的审计跟踪记录
USER_AUDIT_STATEMENT  对于USER 视图来说这些语句应是用户发布的

DBA_AUDIT_EXISTS      列出BY AUDIT NOT EXISTS 产生的审计跟踪条目

下面的视图用于细粒度审计
DBA_AUDIT_POLICIES 显示系统上的所有审计策略
DBA_FGA_AUDIT_TRAIL 列出基于值的审计的审计跟踪记录

转自:http://www.cnblogs.com/lizhe88/archive/2011/01/25/1944502.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值