ITPub博客

首页 > Linux操作系统 > Linux操作系统 > OCM实验-FGA细粒度审计

OCM实验-FGA细粒度审计

Linux操作系统 作者:desert_xu 时间:2015-12-16 12:39:22 0 删除 编辑

这个审计的东西,我是很少用到的,借助个机会,好好的熟悉一下。官网地址:

http://docs.oracle.com/cd/B19306_01/network.102/b14266/cfgaudit.htm#i1011302

 

首先,我们需要建立一个需要审计的表

TESTDB@PROD>create table t (a number,b varchar2(20));

Table created.

创建审计策略

TESTDB@PROD>conn / as sysdba
Connected.
SYS@PROD>begin
  2  DBMS_FGA.ADD_POLICY(
  3  object_schema => 'testdb',
  4  object_name   => 't',
  5  policy_name   => 'chk_testdb_t',
  6  audit_condition => 'a>200',
  7  audit_column => 'a',
  8  enable => true,
  9  statement_types => 'insert,update,delete,select');
10  end;
11  /

PL/SQL procedure successfully completed.

检查策略是否生效

SYS@PROD>col object_schema for a20
SYS@PROD>col object_name for a15
SYS@PROD>col policy_name for a13
SYS@PROD>col enabled for a3
SYS@PROD>select object_schema,object_name,policy_name,enabled from dba_audit_policies;

OBJECT_SCHEMA        OBJECT_NAME     POLICY_NAME   ENA
-------------------- --------------- ------------- ---
TESTDB               T               CHK_TESTDB_T  YES

测试该审计策略

向t表中插入测试数据

insert into t values (10,'first');
insert into t values (100,'leo');
insert into t values (200,'leonarding');     
insert into t values (300,'andy');
insert into t values (400,'anlan');     
insert into t values (500,'tigerfish');
insert into t values (600,'666666666');

TESTDB@PROD>select * from t;

         A B
---------- --------------------
        10 first
       100 leo
       200 leonarding
       300 andy
       400 anlan
       500 tigerfish
       600 666666666

7 rows selected.

查询审计记录

SYS@PROD>col obj$schema format a20
SYS@PROD>col obj$name format a20
SYS@PROD>col lsqltext format a50
SYS@PROD>select obj$schema,obj$name,policyname,lsqltext from fga_log$;

OBJ$SCHEMA           OBJ$NAME             POLICYNAME                     LSQLTEXT
-------------------- -------------------- ------------------------------ --------------------------------------------------
TESTDB               T                    CHK_TESTDB_T                   insert into t values (300,'andy')
TESTDB               T                    CHK_TESTDB_T                   insert into t values (400,'anlan')
TESTDB               T                    CHK_TESTDB_T                   insert into t values (500,'tigerfish')
TESTDB               T                    CHK_TESTDB_T                   insert into t values (600,'666666666')
TESTDB               T                    CHK_TESTDB_T                   select * from t

SYS@PROD>select object_schema,object_name,policy_name,sql_text from dba_common_audit_trail;

OBJECT_SCHEMA   OBJECT_NAME                    POLICY_NAME                    SQL_TEXT
--------------- ------------------------------ ------------------------------ --------------------------------------------------
TESTDB          T                              CHK_TESTDB_T                   insert into t values (300,'andy')
TESTDB          T                              CHK_TESTDB_T                   insert into t values (400,'anlan')
TESTDB          T                              CHK_TESTDB_T                   insert into t values (500,'tigerfish')
TESTDB          T                              CHK_TESTDB_T                   insert into t values (600,'666666666')
TESTDB          T                              CHK_TESTDB_T                   select * from t

清理环境
SYS@PROD>exec dbms_fga.drop_policy(object_schema=>'testdb',object_name=>'t',policy_name=>'chk_testdb_t');

PL/SQL procedure successfully completed.

SYS@PROD>drop table testdb.t;

Table dropped.



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

请登录后发表评论 登录
全部评论

注册时间:2013-10-23

  • 博文量
    79
  • 访问量
    281029