什么是FGA(细粒度审计)

解决方案 »

  1.   

    FGA(Fine-grained auditing)细粒度审计基于数据的内容进行审计。利用FGA手工在表上创建审计策略。审计策略用复杂的方式,利用查询语句,查询条件及结果数据决定数据库是否创建审计记录。在Oracle10g中还增加了一个选项,仅允许审计那些引用特殊的列的语句。
    FGA是利用dbms_fga包来实现的,下面是一个实例,审计scott.emp表的comm,sal列,审计的语句为select,insert,update,策略名称为mypolicy1:BEGIN
    DBMS_FGA.ADD_POLICY (
       object_schema      =>  'scott', 
       object_name        =>  'emp', 
       policy_name        =>  'mypolicy1', 
       audit_condition    =>  NULL, 
       audit_column       =>  'comm,sal', 
       handler_schema     =>   NULL, 
       handler_module     =>   NULL, 
       enable             =>   TRUE, 
       statement_types    =>  'SELECT, INSERT, UPDATE', 
       audit_trail        =>   DBMS_FGA.DB + DBMS_FGA.EXTENDED, 
       audit_column_opts  =>   DBMS_FGA.ALL_COLUMNS); 
    END;
    /执行了
    select comm,sal from scott.emp;
    可以利用
    select * 
       FROM dba_fga_audit_trail
     where policy_name = 'MYPOLICY1';
    来查询审计结果。
      

  2.   

    oracle9i数据库引进了一个新的功能叫做find-grained audit(FGA),这个功能能够让你审核单个select 语句。
    传统的数据库可以跟踪谁从表中select了数据,但是,不知道select什么。fga可以改变这一切。