全部博文(101)
分类: Oracle
2013-01-11 16:41:07
1. 实验环境
1.1笔记本电脑,windows xp系统
1.2 oracle10g 32位,非归档模式;
2. 步骤
2.1开启数据库的审计功能
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 11 15:31:35 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> show parameter audit;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string E:\ORACLE\PRODUCT\10.2.0\ADMIN
\SNAPALL\ADUMP
audit_sys_operations boolean FALSE
audit_trail string NONE
SQL> --发现目前是未开启状态
SQL> alter system set audit_sys_operations=TRUE scope=spfile;
系统已更改。
SQL> alter system set audit_trail=db,extended scope=spfile;
系统已更改。
SQL> --开启审计需要重启实例;
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 180358020 bytes
Database Buffers 423624704 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter audit;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string E:\ORACLE\PRODUCT\10.2.0\ADMIN
\SNAPALL\ADUMP
audit_sys_operations boolean TRUE
audit_trail string DB, EXTENDED
SQL> --确认已经开启审计;
2.2创建测试表;
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 11 15:39:29 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn baokang/shbk;
已连接。
SQL> create table test111(id number(10),name varchar2(40),bir date);
表已创建。
SQL> desc test111;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(10)
NAME VARCHAR2(40)
BIR DATE
SQL> insert into test111 values(1,'jacky',to_date('1981-01-01','yyyy-mm-dd'));
已创建 1 行。
SQL> insert into test111 values(2,'jacky2',to_date('1982-01-01','yyyy-mm-dd'));
已创建 1 行。
SQL> insert into test111 values(3,'jacky3',to_date('1983-01-01','yyyy-mm-dd'));
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from test111;
ID NAME BIR
---------- ---------------------------------------- --------------
1 jacky 01-1月 -81
2 jacky2 01-1月 -82
3 jacky3 01-1月 -83
SQL>--创建测试表完成;
2.3创建存储过程
create or replace procedure deldata
as
begin
delete from test111 t where t.id=1;
commit;
end;
/
这个存储过程是删除表TEST111中的ID=1的那一行记录;
2.4对表TEST111进行审计,然后再执行存储过程,看在这种情况下是否审计有效!
zengmuansha2015-10-29 14:25:32
请问下 你如何确定 哪条审计的SQL语句是 直接执行的SQL语句,哪条是存储过程中执行的? 除了根据终端信息外,假如一个正常的生产系统 里面开启了对某个表的审计,有很多存储过程会对该表进行DML
请问如何在审计里面显示出是哪个存储过程执行的呢?