你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
oracle 基础(36)
 

把该策略记住后,您应该创建两个不同的 FGA 策略。

首先,针对 EMPNO >= 1000、SALARY 列和 BONUS 列的通用策略。

begin
   dbms_fga.add_policy (
      object_schema   => 'ACCMAN',
object_name => 'EMP',
policy_name => 'EMP_SEL_POL',
      audit_column    => 'SALARY, BONUS',
statement_types => 'SELECT');
      audit_option    => 'EMPNO >= 1000 and USER NOT IN(''SAP_PAYROLL_APP'', ''MONICA'', ''ADAM'')',
      handler_module  => 'ENQUEUE_MESSAGE'
  );
end;

然后,针对 EMPNO < 1,000 创建用于全部列的策略。

begin
   dbms_fga.add_policy (
      object_schema   => 'ACCMAN',
object_name => 'EMP',
policy_name => 'EMP_SEL_POL',
statement_types => 'SELECT');
      audit_option    => 'EMPNO < 1000',
      handler_module  => 'ENQUEUE_MESSAGE'
  );
end;

第三,给 MONICA 和 ADAM 添加特殊的策略。

begin
   dbms_fga.add_policy (
      object_schema   => 'ACCMAN',
object_name => 'EMP',
policy_name => 'EMP_SEL_POL',
      audit_column    => 'SALARY, BONUS',
statement_types => 'SELECT');
      audit_option    => 'EMPNO >= 1000 AND SAL <= 1000 and USER IN
(''MONICA'', ''ADAM'') AND USER != ''SAP_PAYROLL_APP''',
      handler_module  => 'ENQUEUE_MESSAGE'
  );
end;

正如您所看到的,audit_option 中的条件之间是相互排斥的,所以当用户尝试执行 SELECT 语句时,只有一个策略是有效的,也只有一条记录会被写入。

您可以使用该策略构建 FGA 策略集。 然后,您可以根据需要自由地启用或禁止策略,这不会影响操作。

问题
主要有以下四个问题:

  1. 当选择做出之后如果处理器模块(如果定义了)抛出错误,将会在 Oracle 不同版本中引起不同的行为:
    • 在 Oracle9i 数据库中,处理器模块 以无提示的方式 停止对该行进行检索,不会报错。 因此,如果有 100 行,其中 4 行满足了审计条件,处理器模块运行四次,每次都会失败。 该查询将仅仅返回 96 行,而不报告任何错误,您将绝不会知道事情已经发生了。 很显然,这种做法会产生不精确的结果。
    • 在 Oracle Database 10g 第 1 版中,处理器模块将忽略处理器模块中的错误,按照预期检索所有 100 行。
    • 在 Oracle Database 10g 第 2 版中,处理器模块将报告执行查询的用户会话方面的错误,而不返回任何行,甚至不返回那些不满足审计条件而没有执行处理器函数的 96 行。

    所以,在实施 FGA 处理器模块之前请先对其进行全面测试。

  2. 审计线索表——FGA_LOG$——在系统表空间中。 当更多的 FGA 条目产生时,空间表就填满了,这可能导致数据库运行中断。

  3. 审计线索被写入表中,不过是以异步方式进行的。 这会产生事务处理和 I/O,它将增加到数据库中的整体 I/O 中。 如果您的数据库是受 I/O 所限,您将看到实施 FGA 处理器模块后对整个数据库的性能影响。

  4. 您可以使用自治事务处理以异步方式编写审计线索。 所以,即使用户回滚该事物处理,也不会删除该线索条目,导致错误的正值. 如果您想将 FGA 用作一种简单的机制来识别用户,您应该注意这些错误的正值。

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089