ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle细粒度审计

oracle细粒度审计

原创 Linux操作系统 作者:安佰胜 时间:2010-12-28 12:07:53 0 删除 编辑

细粒度审计:

       细粒度审计必须是在CBO模式下才能准确生效,所以统计信息和优化器的选择是使用细粒度审计必须要注意的事情。

    细粒度审计 (FGA)(通过 Oracle9i 引入)可以理解为“基于政策的审计”。 就可以使用DBMS_FGA可以对指定的表的SELECT语句进行审计,但是在9i中只能对select语句进行审计,在10g中可以实现对DML的审计功能。FGA 可用于指定生成审计记录必需的条件:

 

SQL> desc dbms_fga

PROCEDURE ADD_POLICY

 Argument Name                  Type                    In/Out Default?

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

 OBJECT_SCHEMA                  VARCHAR2                IN     DEFAULT

 OBJECT_NAME                    VARCHAR2                IN

 POLICY_NAME                    VARCHAR2                IN

 AUDIT_CONDITION                VARCHAR2                IN     DEFAULT

 AUDIT_COLUMN                   VARCHAR2                IN     DEFAULT

 HANDLER_SCHEMA                 VARCHAR2                IN     DEFAULT

 HANDLER_MODULE                 VARCHAR2                IN     DEFAULT

 ENABLE                         BOOLEAN                 IN     DEFAULT

 STATEMENT_TYPES                VARCHAR2                IN     DEFAULT

 AUDIT_TRAIL                    BINARY_INTEGER          IN     DEFAULT

 AUDIT_COLUMN_OPTS              BINARY_INTEGER          IN     DEFAULT

PROCEDURE DISABLE_POLICY

 Argument Name                  Type                    In/Out Default?

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

 OBJECT_SCHEMA                  VARCHAR2                IN     DEFAULT

 OBJECT_NAME                    VARCHAR2                IN

 POLICY_NAME                    VARCHAR2                IN

PROCEDURE DROP_POLICY

 Argument Name                  Type                    In/Out Default?

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

 OBJECT_SCHEMA                  VARCHAR2                IN     DEFAULT

 OBJECT_NAME                    VARCHAR2                IN

 POLICY_NAME                    VARCHAR2                IN

PROCEDURE ENABLE_POLICY

 Argument Name                  Type                    In/Out Default?

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

 OBJECT_SCHEMA                  VARCHAR2                IN     DEFAULT

 OBJECT_NAME                    VARCHAR2                IN

 POLICY_NAME                    VARCHAR2                IN

 ENABLE                         BOOLEAN                 IN     DEFAULT

 

Dbms_fga包支持对细粒度审计规则的添加、删除、生效和实效的功能。其中添加规则更加详细,可以指定规则到很详细的程度。

该过程有许多参数,具体含义如下:

 

OBJECT_SCHEMA                   对其定义了 FGA 策略的表或视图的所有者

OBJECT_NAME                     表或视图的名称

POLICY_NAME                       策略的名称,由用户自定义

AUDIT_CONDITION                 审计条件(谓语动词),默认全部

AUDIT_COLUMN                     表示审计那些列,默认全部,如果指定列,那么只有select或者是where指定该列的时候才被审计

HANDLER_SCHEMA              我们还可以规定在策略执行的时候,执行一个指定用户的存储过程,这里是存储过程的所有者

HANDLER_MODULE              指定这个策略执行的时候,执行的存储过程的名称

ENABLE                         是否马上生效

STATEMENT_TYPES              审计类型INSERT, UPDATE, DELETE, SELECT(10g后)

AUDIT_TRAIL                    审计形势,类似于标准审计参数

AUDIT_COLUMN_OPTS           字段被审计条件

 

 

SQL> BEGIN

  2  dbms_fga.add_policy( object_schema => 'user_an',

  3                       object_name => 'table_test',

  4                       policy_name => 'polic_tt',

  5                       audit_condition => 'a = 1',

  6                       audit_column => 'b',

  7                       enable => TRUE );

  8  END;

  9  /

规则添加后可以在dba_audit_policies中查询

 

SQL> desc DBA_AUDIT_POLICIES

 Name                                      Null?    Type

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

 OBJECT_SCHEMA                             NOT NULL VARCHAR2(30)

 OBJECT_NAME                               NOT NULL VARCHAR2(30)

 POLICY_NAME                               NOT NULL VARCHAR2(30)

 POLICY_TEXT                                        VARCHAR2(4000)

 POLICY_COLUMN                                      VARCHAR2(30)

 PF_SCHEMA                                          VARCHAR2(30)

 PF_PACKAGE                                         VARCHAR2(30)

 PF_FUNCTION                                        VARCHAR2(30)

 ENABLED                                            VARCHAR2(3)

 SEL                                                VARCHAR2(3)

 INS                                                VARCHAR2(3)

 UPD                                                VARCHAR2(3)

 DEL                                                VARCHAR2(3)

 AUDIT_TRAIL                                        VARCHAR2(11)

 POLICY_COLUMN_OPTIONS                              VARCHAR2(11)

 

SQL>  select * from dba_audit_policies;

 

OBJECT_SCH OBJECT_NAM POLICY_NAM POLICY_TEX POLICY_COL PF_SCHEMA  PF_PACKAGE PF_FUNCTIO ENA SEL INS UPD DEL AUDIT_TRAIL POLICY_COLU

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

AN         AA         POLIC_AA   id = 1     ID                                          YES YES NO  NO  NO  DB_EXTENDED ANY_COLUMNS

 

详细审计结果记录在Dba_Fga_Audit_Trail中

SQL> desc Dba_Fga_Audit_Trail

 Name                                      Null?    Type

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

 SESSION_ID                                NOT NULL NUMBER

 TIMESTAMP                                          DATE

 DB_USER                                            VARCHAR2(30)

 OS_USER                                            VARCHAR2(255)

 USERHOST                                           VARCHAR2(128)

 CLIENT_ID                                          VARCHAR2(64)

 EXT_NAME                                           VARCHAR2(4000)

 OBJECT_SCHEMA                                      VARCHAR2(30)

 OBJECT_NAME                                        VARCHAR2(128)

 POLICY_NAME                                        VARCHAR2(30)

 SCN                                                NUMBER

 SQL_TEXT                                           NVARCHAR2(2000)

 SQL_BIND                                           NVARCHAR2(2000)

 COMMENT$TEXT                                       VARCHAR2(4000)

 STATEMENT_TYPE                                     VARCHAR2(7)

 EXTENDED_TIMESTAMP                                 TIMESTAMP(6) WITH TIME ZONE

 PROXY_SESSIONID                                    NUMBER

 GLOBAL_UID                                         VARCHAR2(32)

 INSTANCE_NUMBER                                    NUMBER

 OS_PROCESS                                         VARCHAR2(16)

 TRANSACTIONID                                      RAW(8)

 STATEMENTID                                        NUMBER

 ENTRYID                                      

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

上一篇: oracle标准审计
请登录后发表评论 登录
全部评论

注册时间:2009-08-26

  • 博文量
    215
  • 访问量
    660366