|
con....
[php]
应用
准备 1. 设置初始化参数 AUDIT_TRAIL = value
DB 激活审计,结果存入SYS.AUD$
OS 激活审计,结果存入OS文件
NONE 禁止审计(缺省值)
步骤 1. Enable Auditing
2. 指明审计参数
AUDIT {statement|system_priv}
-- SQL语句(CREATE/ALTER/DROP)或系统权限(owner权限->object权限->system权限)
[, {statement|system_priv} ]...
[BY user [, user ]... ] -- 仅审计列出的用户,省缺为所有用户
[BY {SESSION|ACCESS} ] -- 缺省=SESSION,对相同的SQL操作仅审计一次
-- BY ACCESS,对相同的SQL操作每执行一次就审计一次(DDL审计必须为此形式)
[WHENEVER [NOT] SUCCESSFUL] -- 指明仅在...状态下审计,缺省是两种情况均可
对象审计:
AUDIT statement [, statement ]...
ON {[schema.]object|DEFAULT} -- ON DEFAULT建立一个缺省的审计规则,以后所有用户的新创建的OBJECTS都按照此规则审计,查询ALL_DEF_AUDIT_OPTS看到当前缺省的审计规则,可用NOAUDIT .. ON DEFAULT取消(但原来通过此种方式获得审计的OBJECTS仍然有效,必须手工取消,检查 BA_OBJ_AUDIT_OPTS)
[BY {SESSION|ACCESS}]
[WHENEVER [NOT] SUCCESSFUL]
3. 执行SQL STATEMENTS -- 对于PL/SQL块,每条语句单独审计,所以可能产生多条审计记录
3. 生成审计结果数据 -- 审计在SQL执行过程中产生,所以不记录SQL语句分析过程中的错误,其产生的过程与事务不相关,所以即使用户事务回滚,审计记录依然存在
4. 查看审计结果 -- 查看SYS.AUD$或OS审计结果文件
说明 对于SQL STATEMENT和系统权限的审计,使用AUDIT命令仅对后连接进来的SESSION生效,而OBJECT审计立即生效
对于NOAUDIT,必须和AUDIT一一对应,即: 仅取消完全对应的AUDIT语句的审计
如: AUDIT Create table by scott;
AUDIT Create table;
NOAUDIT Create table; -- 仅取消第二句,第一句的审计仍有效
相关数据字典和视图
Viewing Auditing Options
ALL_DEF_AUDIT_OPTS Default audit options
DBA_STMT_AUDIT_OPTS Statement auditing options
DBA_PRIV_AUDIT_OPTS Privilege auditing options
DBA_OBJ_AUDIT_OPTS Schema object auditing options
Viewing Auditing Results
DBA_AUDIT_TRAIL All audit trail entries
DBA_AUDIT_EXISTS Records for AUDIT EXISTS/NOT EXISTS
DBA_AUDIT_OBJECT Records concerning schema objects
DBA_AUDIT_SESSION All connect and disconnect entries
DBA_AUDIT_STATEMENT Statement auditing records
[/php] |
|