一、审计的相关配置
--环境
SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
SQL> show parameter audit
NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE? ? ? ? VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest? ? ? ? ? ? ? ? ? ? ? string? ? ? /home/oraprod/app/product/11.2
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? .0/dbhome_1/rdbms/audit
audit_sys_operations? ? ? ? ? ? ? ? boolean? ? FALSE
audit_syslog_level? ? ? ? ? ? ? ? ? string
audit_trail? ? ? ? ? ? ? ? ? ? ? ? ? string? ? ? DB? --此值为当前Oracle 11gR2缺省配置
--从下面的查询中可以看出,当前的审计位于system表空间
SQL> col segment_name FOR a10
SQL> SELECT owner,segment_name,tablespace_name FROM dba_segments WHERE segment_name ='AUD$';
OWNER? ? ? ? ? ? ? ? ? ? ? ? ? SEGMENT_NA TABLESPACE_NAME
------------------------------ ---------- ------------------------------
SYS? ? ? ? ? ? ? ? ? ? ? ? ? ? AUD$? ? ? SYSTEM
二、修改审计存储表空间
新增一个表空间用于存储审计日志
SQL> CREATE tablespace audit_data datafile '/home/oracle/app/oradata/orcl/audit01.dbf'
? 2? SIZE 100M autoextend ON NEXT 50M;
SQL> @tbs_free.sql
TABLESPACE_NAME? ? ? ? ? ? ? ? USED (MB FREE (MB TOTAL (M PER_FR
------------------------------ -------- -------- -------- ------
AUDIT_DATA? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? ? 1,199? ? 1,200? 100 %
SYSAUX? ? ? ? ? ? ? ? ? ? ? ? ? ? 1,133? ? ? 77? ? 1,210? ? 6 %
SYSTEM? ? ? ? ? ? ? ? ? ? ? ? ? ? 1,875? ? ? 15? ? 1,890? ? 1 %
-- 设定审计数据存放表空间?
SQL> BEGIN
? 2? ? DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
? 3? ? ? AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
? 4? ? ? AUDIT_TRAIL_LOCATION_VALUE => 'AUDIT_DATA'
? 5? ? );
? 6? END;
? 7? /
BEGIN
*
ERROR at line 1:
ORA-46267: Insufficient space in 'AUDIT_DATA' tablespace, cannot complete
operation
ORA-06512: at "SYS.DBMS_AUDIT_MGMT", line 1576
ORA-06512: at line 2
-- 错误提示,尽管我们使用了自动扩展表空间,依旧提示空间不够
-- 查看当前审计数据大小,如下为1152MB
SQL> select segment_name,bytes/1024/1024 from dba_segments where segment_name='AUD$';
SEGMENT_NAME? ? ? ? ? ? ? BYTES/1024/1024
------------------------- ---------------
AUD$? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1152
-- 下面调整数据文件大小
SQL> alter database datafile '/home/oracle/app/oradata/orcl/audit01.dbf' resize 1200m;
Database altered.
-- 再次设定审计数据存放表空间OK
SQL> BEGIN
? 2? ? DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
? 3? ? ? AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
? 4? ? ? AUDIT_TRAIL_LOCATION_VALUE => 'AUDIT_DATA'
? 5? ? );
? 6? END;
? 7? /
PL/SQL procedure successfully completed.
Elapsed: 00:02:23.10
--整个过程花费了2m23s,主要是期间进行了数据搬迁
SQL> SELECT owner,segment_name,tablespace_name FROM dba_segments WHERE segment_name ='AUD$';
OWNER? ? ? ? ? ? ? ? ? ? ? ? ? SEGMENT_NAME? ? ? ? ? ? ? ? ? TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
SYS? ? ? ? ? ? ? ? ? ? ? ? ? ? AUD$? ? ? ? ? ? ? ? ? ? ? ? ? AUDIT_DATA
SQL> @tbs_free.sql
TABLESPACE_NAME? ? ? ? ? ? ? ? USED (MB FREE (MB TOTAL (M PER_FR
------------------------------ -------- -------- -------- ------
AUDIT_DATA? ? ? ? ? ? ? ? ? ? ? ? 1,153? ? ? 47? ? 1,200? ? 4 %
SYSAUX? ? ? ? ? ? ? ? ? ? ? ? ? ? 1,143? ? ? 67? ? 1,210? ? 6 %
SYSTEM? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 724? ? 1,166? ? 1,890? 62 %
-- 从上面的这个查询可以看出,原来位于system表空间的AUD$被迁移到了AUDIT_DATA
-- 相应地AUDIT_DATA表空间已使用增加,而SYSTEM表空间使用率下降
-- 查看审计数据字典配置信息
SQL> col PARAMETER_NAME FOR a30
SQL> col PARAMETER_VALUE FOR a15
SQL> col AUDIT_TRAIL FOR a20
SQL> SELECT PARAMETER_NAME, PARAMETER_VALUE, AUDIT_TRAIL
? 2? FROM DBA_AUDIT_MGMT_CONFIG_PARA