ORACLE数据库管理-审计

1 审计类型

  1. 强制审计

  2. 标准审计

  3. 标准审计主要包括:

  4. 触发器审计

  5. 精细化审计

1 语句级审计,指定数据库对象的所有活动的一种审计。

2 权限级审计,审计某种权限。

3 对象级审计,审计特定表上面的活动。

初始化参数audit_TRAIL设置为ture,可以启用标准审计。

  1. 测试范例:
DELETE  t1  where nvl(object_NAME,SYSDATE)>1

SELECT *FROM T1 where nvl(object_NAME,SYSDATE)>1

select * from  dba_audit_trail;

audit all on t1;

对于dml操作,不管成功或者失败都进行记录。

对于ddl操作,测试在成功时进行审计,失败未审计。

 

1.1 触发器审计

BEGIN
  INSERT INTO LOGON_TABLE VALUES (SYS_CONTEXT('USERENV', 'TERMINAL'),
       SYS_CONTEXT('USERENV', 'SESSIONID'),
       SYS_CONTEXT('USERENV', 'ISDBA'),
       SYS_CONTEXT('USERENV', 'CURRENT_USER'),
       SYS_CONTEXT('USERENV', 'CURRENT_USERID'),
       SYS_CONTEXT('USERENV', 'SESSION_USER'),
       SYS_CONTEXT('USERENV', 'SESSION_USERID'),
       SYS_CONTEXT('USERENV', 'DB_NAME'),
       SYS_CONTEXT('USERENV', 'HOST'),
       SYS_CONTEXT('USERENV', 'OS_USER'),
       SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
       SYS_CONTEXT('USERENV', 'NETWORK_PROTOCOL'),
       SYSDATE);
END;

  1. 精细化审计

1.3 创建FGA审计

1 审计insert

begin

  dbms_fga.add_policy(object_schema   => 'DS',

                      object_name     => 'IPTPM__SERVICE',

                      policy_name     => 'IPTPM__SERVICE_FGA',

                      enable          => true,

                      statement_types => 'INSERT');

END;

2 审计行

begin

  dbms_fga.add_policy(object_schema   => 'DS',

                      object_name     => 'IPTPM__SERVICE',

                      policy_name     => 'IPTPM__SERVICE_FGA',

                      audit_condition => 'department_id=10'

                      enable          => true,

                      statement_types => 'INSERT,UPDATE,DELETE,SELECT');

END;

3 审计列

begin

  dbms_fga.add_policy(object_schema   => 'DS',

                      object_name     => 'IPTPM__SERVICE',

                      policy_name     => 'IPTPM__SERVICE_FGA',

                      audit_column    => 'department_id'

                      enable          => true,

                      statement_types => 'INSERT,UPDATE,DELETE,SELECT');

END;

4 审计行列

begin

  dbms_fga.add_policy(object_schema   => 'DS',

                      object_name     => 'IPTPM_SERVICE',

                      policy_name     => 'IPTPM_SERVICE_FGA',

                      audit_column    => 'name'

                      audit_condition => 'department_id=10'

                      enable          => true,

                      statement_types => 'INSERT,UPDATE,DELETE,SELECT');

END;

审计查询

select * from dba_audit_policies;

select * from dba_fga_audit_trail;

 

 

审计删除

--drop policy

begin

  dbms_fga.drop_policy(object_schema => 'DNMS',

                       object_name   => 'IPTPM_WAP_SERVICE',

                       policy_name   => 'IPTPM_WAP_SERVICE_FGA');

END;

Oracle FGA审计记录的清理步骤


一、确认有哪些fga审计策略,
从select * from dba_audit_policies就可以查询到审计策略,请注意,查询结果中的每一行,就是一个审计策略。
另外,fga审计记录存放在这个视图中:select * from dba_fga_audit_trail该视图对应的后台基表为:sys.fga_log$,见如下的视图。注意,fga审计策略不是存放在sys.aud$表中!!!

---摘录开始

CREATE OR REPLACE VIEW DBA_FGA_AUDIT_TRAIL

(session_id, timestamp, db_user, os_user, userhost, client_id, econtext_id, ext_name, object_schema, object_name, policy_name, scn, sql_text, sql_bind, comment$text, statement_type, extended_timestamp, proxy_sessionid, global_uid, instance_number, os_process, transactionid, statementid, entryid, obj_edition_name, dbid)

AS

select

      sessionid,

      CAST (

        (FROM_TZ(ntimestamp#,'00:00') AT LOCAL) AS DATE

      ),

      dbuid, osuid, oshst, clientid, auditid, extid,

      obj$schema, obj$name, policyname, scn, to_nchar(substr(lsqltext,1,2000)),

      to_nchar(substr(lsqlbind,1,2000)), comment$text,

      DECODE(stmt_type,

              1, 'SELECT', 2, 'INSERT', 4, 'UPDATE', 8, 'DELETE', 'INVALID'),

      FROM_TZ(ntimestamp#,'00:00') AT LOCAL,

      proxy$sid, user$guid, instance#, process#,

      xid, statement, entryid, obj$edition, dbid

from sys.fga_log$

---摘录结束


二、禁用fga审计策略:

以下以 policy_name => 'EMP_FGA_AUDIT'为例子说明,当然,客户的环境中,可能存在多个审计策略。
begin

dbms_fga.enable_policy (

  object_schema => 'SCOTT',

  object_name =>'EMP',

  policy_name => 'EMP_FGA_AUDIT',

  enable => FALSE

);

end;

请补全其他的审计策略

三、执行exp 导出sys.fga_log$表
exp sys/aa file=fga_logdmp log=fga_logexp.log tables=sys.fga_log$ buffer=99999999请注意:sys.fga_log$为5G大小(请注意,该表有lob字段,不能只查询dba_segments来确定带有lob列的表的大小),所以,导出可能需要一段时间。

四、 删除日志表:
truncate table sys.fga_log$

五、开启fga审计策略:

begin

dbms_fga.enable_policy (

  object_schema => 'SCOTT',

  object_name =>'EMP',

  policy_name => 'EMP_FGA_AUDIT',

  enable => TRUE

);

end;


请补全其他的审计策略


注意:上边=>后边的信息,可以从dba_audit_policies查询出来。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值