以下操作全是基于
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
- 审计参数解析
AUDIT_TRAIL启用或禁用数据库审计。当设置该参数为NONE或FALSE时,将禁止数据库审计;当设置该参数为OS时,将激活数据库审计,并将审计记录写入到OS审计跟踪文件中;当设置该参数为DB或TRUE时,将激活数据库审计,并将审计记录写入到数据字典SYS.AUD$中;当设置该参数为DB_EXTENDED时,不仅将审计记录写入到数据字典SYS.AUD$中,还会填充该数据字典的SQLBIND和SQLTEXT列。
取值说明:
none 禁用数据库审计
os 启用数据库审计,并将数据库审计记录定向到操作系统审计记录
db 启用数据库审计,并将数据库所有审计记录定向到数据库的SYS.AUD$表
db,extended 启用数据库审计,并将数据库所有审计记录定向到数据库的SYS.AUD$表。另外,填充SYS.AUD$表的SQLBIND 列和SQLTEXT CLOB 列。
xml 启用数据库审计,并将所有记录写到XML格式的操作系统文件中。
xml,extended 启用数据库审计,输出审计记录的所有列,包括SqlText和SqlBind的值。
2.查询当前数据库审计参数
查询当前审计参数 SQL> show parameter audit_trail;
修改当前审计参数为DB_EXTENDED(这样可以查询到具体执行的sql)
① 执行SQL> ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
② 登陆数据库主机,切换到oracle用户用sysdba登陆用户
[oracle@localhost ~]$ sqlplus / as sysdba
③ 依次执行以下语句重启数据库 SQL> shutdown immediate; SQL> startup
④ 再次查询审计参数 SQL> show parameter audit_trail;
1.取消审计
noaudit insert,update,delete on testuser.tables;
testuser 用户模式
tables 表名
---添加审计
audit create table,update table,insert table,delete table by testuser by access;
audit execute procedure by testuser by access;
3.测试审计是否开启
① 执行SQL> select * from dba_audit_trail;检查是否有相应的审计信息。
三、 迁移表空间
将审计信息迁移到非系统表空间、以防止系统表空间撑爆。
我们先创建一个叫audit_data的表空间来存放数据
CREATE TABLESPACE audit_data LOGGING DATAFILE '/data01/oracle/oradata/AUTODB/datafile/audit_data.dbf' SIZE 10240M AUTOEXTEND ON NEXT 100M MAXSIZE 12000M;
迁移表至新的表空间
SQL> alter table audit$ move tablespace audit_data;
SQL> alter index i_audit rebuild online tablespace audit_data;
SQL> alter table audit_actions move tablespace audit_data;
SQL> alter index i_audit_actions rebuild online tablespace audit_data;
SQL>alter table AUD$ move tablespace audit_data;
查询表空间是否迁移成功的相关SQL
SQL> SELECT table_name, tablespace_name FROM dba_tables WHERE table_name IN ('AUD$', 'FGA_LOG$',’AUDIT$’,’I_AUDIT’,’AUDIT_ACTIONS,’I_AUDIT_ACTIONS’) ORDER BY table_name;