oracle-数据库审计

作用

https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4007.htm#i2116021
监控特定用户在 数据库里 的 操作

参数

1
2
3
4
5
6
7
8
9
SYS@PROD> show parameter audit

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/PROD/adu
mp
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string DB

audit_trail

参数主要选项
1 none 不启用 audit
2 db 将审计结果放在数据字典基表 sys.aud$中, (一般用于审计非 sys 用户)
db,extended,可以包括绑定变量, CLOB 类型大对象等审计信息。
3 os 将审计结果存放到操作系统的文件里, audit_file_dest 指定的位置, 一般用于审计 sys

种类

https://blog.csdn.net/jaxberwu/article/details/6949226

standard auditing 标准审计

默认状况下,oracle 审计是DISABLED,也就是说是没有被激活状态,需要我们来启动它;
这里有3个步骤执行标准审计:

  • ENABLE AUDITING 启动auditing机制
  • 定义审计事件 (Define Auditing events)
  • 检测和记录 (Monitoring & recording)

标准审计还有3种不同的级别:
- statement level audit
按语句来审计,比如 audit table 会审计数据库中所有的 create table, drop table, truncate table
语句,执行成功或不成功都可审计。
- Privilege Audit
按权限来审计,当用户使用了该权限则被审计,如执行 grant select any table to a; 当用户
a 访问了用户 b 的表时(如 select * from b.t;) 会用到 select any table 权限,故会被审计。用
户访问自己的表不会被审计。
- Obejct-level Audit
按对象审计,只审计 on 关键字指定对象的相关操作,如: aduit alter,delete,drop,insert on
damon.t by scott; 这里会对 damon 用户的 t 表进行审计,但同时使用了 by 子句,所以只会对
scott 用户发起的操作进行审计。

fine-grained auditing 细粒度审计

拓展了标准数据库审计,捕捉准确的 SQL 语句。审计访问特定行或特定列。操作可以使
用 dbms_fga 包。精细审计一般不包括 sys 用户,目前 EM 中只有标准数据库审计,还没有包
括基于值的审计和精细审计。

value-based auditing 基于值的审计

它拓展了标准数据库审计,不仅捕捉审计事件,还捕捉那些被 insert,update 和 delete 的
值。 由于基于值的审计是通过触发器来实现。所以可以选择哪些信息进入审计记录,比如,
只记录提交的信息。