Oracle审计功能介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle审计功能

一、审计分类:

Oracle中审计总体上可分为“标准审计”和“细粒度审计”后者也称为“基于政策的审计”,在Oracle10G之后功能得到很大增强。其中标准审计可分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。

二、标准审计:

2.1 分类:

在ORACLE中分别支持以下三种标准审计类型:

◆语句审计,对某种类型的SQL语句审计,不指定结构或对象。

◆特权审计,对执行相应动作的系统特权的使用审计。

◆对象审计,对一特殊模式对象上的指定语句的审计。

这三种标准审计类型分别对如下3方面进行审计:

◆审计语句的成功执行、不成功执行,或者其两者。

◆对每一用户会话审计语句执行一次或者对语句每次执行审计一次。

◆对全部用户或指定用户的活动的审计。

当数据库的审计功能打开后,在语句执行阶段产生审计记录。审计记录包含有审计

的操作、用户执行的操作、操作的日期和时间等信息。审计记录可存在数据字典表(称

为审计记录)或操作系统审计记录中。数据库审计记录是在SYS模式的AUD$表中。

2.2设置ORACLE标准审计:

下列步骤可以设置ORACLE的标准审计功能:

1.修改初始化参数文件(init.ora)

如果使用服务器参数文件使用alter system set= scope=spf ile|both,详情参照1.1节中关于参数文件的介绍),设置 AUDIT_TRAIL参数,并且重启数据库。AUDIT_TRAIL的取值如下:

●DB/TRUE:启动审计功能,并且把审计结果存放在数据库的 SYS.AUD$ 表中

●OS:启动审计功能,并把审计结果存放在操作系统的审计信息中

●DB_EXTENDED:具有DB/TRUE的功能,另外填写AUD$的SQLBIND和SQLT

EXT字段

●NONE/FALSE:关闭审计功能

2.设置AUDIT_TRAIL参数:

如果设置AUDIT_TRAIL = OS, 还需要修改参数AUDIT_FILE_DEST。

如果操作系统支持设置AUDIT_TRAIL=OS,文件会自动存放在AUDIT_FILE _DEST所指定的目录下,并且文件名包含进程的PID。

比如:

AUDIT_FILE_DEST = $ORACLE_HOME/rdbms/audit

$ ls -l $ORACLE_HOME/rdbms/audit

-rw-rw---- 1 ora92 dba 881 Mar 17 09:57 ora_13264.aud

$ ps -ef|grep 13264

ora92 13264 13235 0 09:56:43 ? 0:00 oracleV92 (DESCRIPTION=(LOCAL =Y)

SQL> select spid, program, username from v$process;

SPID PROGRAM USERNAME

------ -------------------------------------------- -------------

...

13264 oracle@frhp11 (TNS V1-V3) ora92

3. 确认审计相关的表是否已经安装

SQLPLUS> connect / AS SYSDBA

SQLPLUS> select * from sys.aud$; -- 没有记录返回

SQLPLUS> select * from dba_audit_trail; -- 没有记录返回

如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。

SQLPLUS> connect / as sysdba

SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql

审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计信息。

4. 关闭并重启数据库

5. 设置所需要的审计信息

下面是一个例子

SQL> connect system/manager

SQL> grant audit system to scott;

SQL> connect scott/tiger

SQL> audit session;

停止审计:

SQL> noaudit session;

通常设置了标准审计后都是通过Audit语句开启审计,使用noaudit语句收回审计。如下所示:

对修改SC表结构或数据的操作进行审计可使用如下语句:

AUDIE ALTER,UPDATE ON SC;

取消对SC表的一切审计可使用如下语句:

NOAUDIT ALL ON SC;

2.3设置审计的实例(对试图尝试口令的访问的审计):

以下是一个审计的实例,用于记录尝试通过野蛮尝试法破译ORACLE帐号口令的例子:

1. 修改审计相关参数(参照上面介绍的方法)

2. 重启数据库

3. 设置审计信息

SQL>AUDIT ALL BY ACCESS WHENEVER NOT SUCCESSFUL

4. 查询AUD$

SQL> select returncode, action#, userid, userhost, terminal,timestamp

from aud$

相关文档
最新文档