当前位置:文档之家› Oracle审计(Audit)监视用户所执行的数据库操作实例

Oracle审计(Audit)监视用户所执行的数据库操作实例

Oracle审计(Audit)监视用户所执行的数据库操作:
A、审计相关的表安装:
SQL> conn sys/???? as sysdba;
SQL> select * from sys.aud$;
SQL> select * from dba_audit_trail;
如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。

SQL> @$ORACLE_HOME/rdbms/admin/cataudit.sql
审计表安装在SYSTEM 表空间, 所以要确保SYSTEM 表空间又足够的空间存放审计信息。

B、激活审计:
SQL> show parameter audit;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string D:\APP\ADMIN\ADMIN\ORCL\ADUMP
audit_sys_operations boolean FALSE
audit_trail string DB
SQL> alter system set audit_sys_operations=TRUE scope=spfile;
System altered
SQL> alter system set audit_trail=db_extended scope=spfile;
System altered
------------------------------------------*****----------------------------------------
Audit_trail参数值:
None: 是默认值,不做审计;
DB:将audit trail记录在数据库的审计相关表中,审计的结果只有连接信息;
DB_Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;
OS:将audit trail记录在操作系统文件中,文件名由audit_file_dest 参数指定;
XML:10g 里新增的。

------------------------------------------*****----------------------------------------
SQL> startup force;
SQL> show parameter audit;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string D:\APP\ADMIN\ADMIN\ORCL\ADUMP
audit_sys_operations boolean TRUE
audit_trail string DB_EXTENDED
C、开始审计(根据需求设定):
audit select,insert,update,delete on scott.emp by access;
D、查询结果:
SQL> select owner,obj_name,action_name,sql_text from dba_audit_trail where owner ='SCOTT' order by timestamp desc;
E、清除审计结果:
DELETE FROM SYS.AUD$ WHERE OBJ$NAME ='EMP';;
DELETE FROM dba_audit_trail WHERE owner ='SCOTT';
F、撤消设定的审计:
noaudit all on scott.emp;
G、停止审计服务:
alter system set audit_trail=NONE scope=SPFILE;。

相关主题