ITPub博客

首页 > 数据库 > Oracle > 审计初记载

审计初记载

原创 Oracle 作者:dotaddjj 时间:2012-07-25 23:16:37 0 删除 编辑

Oracle提供了审计功能,其实说到审计也只能说是oracle用来记录数据库对象的操作,例如什么时候、什么用户对什么对象的进行的操作,也就是对操作做信息记录而已。

SQL> show parameter audit_trail;

NAME TYPE VALUE

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

audit_trail string NONE

SQL> show parameter audit_file_dest;

NAME TYPE VALUE

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

audit_file_dest string /db/oracle10g/admin/benguo/adu

mp

SQL> show parameter audit_sys_operations;

NAME TYPE VALUE

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

audit_sys_operations boolean FALSE

可以看出审计功能audit_trail默认是none也就是审计没有开启,不过sys用户连接,启动和关闭数据库则是会强制写入到audit中的,可以查看audit_file_dest中的文件来查看下,曾经碰见的一个审计的oracle_bas e//adump所在的磁盘目录满后,导致sys用户都无法连接,因为sys用户连接时需要写入audit记录,磁盘满了自己会造成用户无法连接。

除了上述的none值,还可以设置audit_trail为DB为将审计内容记录到审计相关表中,不过只有连接信息,

当设置为DB、EXTENDED时审计信息将还包括具体的执行语句,设置为OS上将审计内容记录在操作系统上audit_dest_file位置中。

而audit_sys_operations默认是false,当设置true后,sys用户的所用操作都将被审计。

[oracle@localhost adump]$ less ora_25594.aud

Audit file /usr/oracle/admin/jhql/adump/ora_25594.aud

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORACLE_HOME = /usr/oracle/10.2

System name: Linux

Node name: localhost.localdomain

Release: 2.6.18-128.el5

Version: #1 SMP Wed Dec 17 11:41:38 EST 2008

Machine: x86_64

Instance name: jhql

Redo thread mounted by this instance: 0

Oracle process number: 15

Unix process pid: 25594, image: oracle@localhost.localdomain (TNS V1-V3)

Thu Jul 19 09:33:01 2012

LENGTH : '137'

ACTION :[7] 'CONNECT'

DATABASE USER:[1] '/'

PRIVILEGE :[6] 'SYSDBA'

CLIENT USER:[6] 'oracle'

CLIENT TERMINAL:[5] 'pts/2'

STATUS:[1] '0'

SQL> audit not exists by access whenever successful;

Audit succeeded.

此时将审计所有的用户访问不存在表和视图的信息。

例如审计登陆的成功与不成功的fuzhou用户

SQL> audit session by fuzhou whenever successful;

Audit succeeded.

SQL> audit session by fuzhou whenever not successful;

或者审计系统参数的变化。

Audit alter system whenever successful;

取消审计则使用形如noaudit session的形式。可以在dba_audit_trail视图中查看具体的审计信息,其实该视图是源于sys.aud$基表,可以定期对sys.aud$表进行清除,以腾出相应的空间。关于dba_audit_trail的视图的含义可以desc查看下,由于篇幅较大就不列举了。

上述这些审计需要明确首先如果想在db层面上直接查看审计内容,需要设置audit_trail为db,然后设置相应的审计标准,最后就可以通过dba_audit_trail视图查看具体的审计内容。

审计级别:可以在statement、privilege、object三个级别进行审计。

语句审计:对某种sql语句进行审计

根据文档的介绍自己感觉这两种审计的语法虽然很多,但是还是比较容易记录的,经常的使用的也就下面这些。这里列出一部分:

Audit alter system

Audit cluster

Audit context

Audit database link

Audit directory

Audit index

Audit materialized view

Audit not exists

Audit procedure

Audit trigger

Audit session

Audit synonym

Audit table

Audit user

…等等上述的这些语句大都是针对于DDL语句,比如创建删除修改视图 表 用户 profile 触发器 procedure。

可以使用audit all包含上述所有的这些ddl权限的审计。

还有一些审计语句:

Audit sequence

Alter table

Comment table

Delete table

Delete table

Execute procedure

Grant directory

Grant procedure

Select table

Update table

Insert table

Grant table

等等

Audit all on textauto 审计对textauto表的所有操作

Audit delete any table审计删除表的操作

可以查看相应的视图来探知设置的审计规则:

Dba_stmt_audit_opts :语句生效的审计选项

Dba_priv_audit_opts :对系统权限生效的审计选项

Dba_obj_audit_opts:对数据库对象生效的审计选项

DBA_COMMON_AUDIT_TRAIL:标准的审计行和fga的审计行信息。

9i推出了细粒度审计,也称为FGA,使用的一般的审计可能无法查询具体的访问的哪些行列。使用细粒度审计fga可以更精确的关注某个方面。

SQL> begin

2 dbms_fga.add_policy(

3 object_schema=>'XIAOYU',

4 object_name=>'TB01',

5 policy_name=>'TEST');

6 end;

7 /

添加了一个fga审计,然后执行如下查询

select * from tb01 where rownum<2;

SQL> col sql_text for a40

SQL> select scn,sql_text,statement_type from dba_fga_audit_trail;

SCN SQL_TEXT STATEMENT_TYPE

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

1231965 select * from tb01 where rownum<2 SELECT

通过dba_fga_audit_trail的跟踪条目可以很清晰的看见记录sql_text的具体sql语句,scn信息等。

由于开启审计后对系统负载有一定的影响,生产库中很少有开启审计功能的,不过可以短时间的开启审计来实现个性需求。

网络上关于审计的文档并不是很多,也没有一个很好的应用体系,大家如果有特别见解的欢迎留言讨论。谢谢!

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1059009/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: mysql的逻辑备份
请登录后发表评论 登录
全部评论
  • 博文量
    220
  • 访问量
    1662971