审计是监视和记录所选用户的数据活动的。审计操作类型包括登录企图、对象访问和数据库操作。审计记录包括被审计的操作、执行操作的用户、操作的时间等信息。
1 、 启用审计
其具体步骤如下:
(1 ) 进入Oracle 的企业管理器,在服务器下面的数据库配置中选择初始化参数。
(2 ) 点击初始化后进入如下初始化参数界面
该界面有两个选项界面,当前和SPFile ,其中当前是展示参数值的,而SPFile 是修改参数值的。
(3 ) 在SPFile 界面找到audit_trail 参数,该参数是管理审计的,修改它的值。它的取值范围为:DB 、True 、false 、none 、os 、db_extended 、xml 和extended 。如果该参数的值为True 或db ,则审计记录将被记录到sys.aud$ 表中;如果参数值为os ,则写入一个操作系统文件。
(4 ) 修改以后单击应用按钮,然后重启数据库。
2 、登录审计
登录审计的命令如下:
( 1 ) audit session :开启会话审计
( 2 ) audit session whenever successful :开启成功操作审计
( 3 ) audit session whenever not successful :开启失败操作审计
( 4 ) noaudit session :禁止会话审计
3 、操作审计
对表、表空间等数据库对象的任何操作都可被审计。
语法格式如下:
audit {statement_opt | system_priv} [by user,…n]
[by {session | access}] [whenever [not] successful]
注:
statement_opt :审计操作。
system_priv :指定审计的系统权限
by user,…n :指定审计的用户,如果不指定将为所有的用户审计
by session :表示同一会话中的同一类型的 sql 语句仅写单个记录
by access :每个被审计的语句写一个记录。
Whenever [not] successful :表示成功或失败的时候审计
示例代码,对用户 andy 的新建表操作都审计:
audit create table by andy by access;
4 、对象审计
还可以审计对象的数据处理操作,这些操作包括对表的更新、选择、插入和删除等。
语法格式如下:
audit {object_opt | all} on
{[schema.]object | drectory directory_name | default}
[by session | access]
[whenever [not] successful]
其中, object_opt 指审计操作;
all 表示所有对象操作;
object 表示审计对象;
default :默认的审计选项
directory directory_name :审计的目录名
示例代码,审计用户 andy 的 t_module 表的 insert 操作:
audit insert on andy.t_module;
通过对 dba_audit_object 视图进行查询,就可以看到审计记录。
5 、权限审计
权限审计表示只对系统的某一权限的使用情况进行审计。
示例代码:
audit select any table whenever successful;
通过查询 dba_priv_audit_opts 可以看到权限审计的结果