首页 > Linux操作系统 > Linux操作系统 > OCM实验-FGA细粒度审计
这个审计的东西,我是很少用到的,借助个机会,好好的熟悉一下。官网地址:
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/ ,如需转载,请注明出处,否则将追究法律责任。