1、启动数据库审计
show parameter audit_trail;
select value from v$parameter where name='audit_trail';
参数取值为true或者db,将审计结果存入基表,os利用操作系统审计功能,none或者false不审计,没有默认值
要支持审计必须先创建审计视图,查询语句如下:
select view_name from user_views where view_name='ALL_DEF_AUDIT_OPTS';
如果没有就用以下语句创建
@D:/oracle/ora92/rdbms/admin/cataudit.sql
同时也可用一下语句删除
@D:/oracle/ora92/rdbms/admin/catnoaud.sql
2、语句级审计
audit sql语句 [by 用户名] [by session或者access] [whenever [not] successful];
by 用户 只审计指定用户的sql语句不审计其他用户,没有指出用户时则审计所有用户。
by session 按会话方式审计,每一个会话相同的语句只审计一次,这是系统默认方式
by access 按存取方式审计,每一次执行语句都将被审计
whenever successful 只审计成功语句
whenever not successful 只审计失败语句
audit table by hr; 表示用户hr的所有表操作都将被审计。
取消审计:
noaudit sql语句 [by 用户名] [by session或者access] [whenever [not] successful];
noadudit table by hr;
3、权限级审计
aduit delete any table whenever successful;
4、实体审计
alter
delete
select
audit select on sys.tab;
5、审计结果
select user_name,audit_option,success,failure from dba_stmt_audit_opts;审计操作
select username,timestamp,owner,action_name,obj_name from dba_audit_trail;
select username,timestamp,owner,action_name,obj_name from dba_audit_object;
6、设置sql跟踪
show parameter sql_trace;
(1)timed_statistics=true
默认值
(2)user_dump_dest=目录名
默认值
(3)max_dump_file_size=5M
默认值
(4)sql_trace=true
默认值为false;
可以用命令:
alter session set sql_trace=true;
alter session set sql_trace=false;
用命令:
txprof ****.trc **.txt
打开**.txt文件看跟踪结果