设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源平台

细粒度访问原则

来源本站整理 作者:佚名 时间:2006-7-28 23:22:19 该文得分0

  分区细粒度访问控制
    例如:在一个控制环境中,这个特性被用来控制两个公司对sales表的访问.每一个公司拥有的独立的应用程序sell_it和prod_opt,需要拥有不同的安全策略.第一个公司的sell_it应用程序认证的用户需要只能访问表中来自他们相同地区的记录;那就是sales.cust_id+customer.country的联合校验必须符合这个用户的地区相吻合.第二个公司的prod_opt应用程序的访问权限被设置为只能访问最近事务提交的记录上.也就是与sales.time_id相关联.在8i中,在一个细粒度访问控制中拥有这两个策略将需要开发公司共同协作部署.如果两个产品来自竞争的两个公司,这实际上是不可行的.依靠定义"应用程序设置"来强行控制对基本objects的一些特殊规定,每一个应用程序现在能够实现一系列私有的安全策略.
  二:细粒度审计.
     ...一个提供扩展的入侵检测,捕获sql执行语句,而不是返回数据的工具.
     ...可以将审计策略捆绑在带有where条件的select语句的表或视图上.
     ...oracle用自治事务来处理用户自定义的审计事件.
     ...一个基于列的审计特性减少了错误审计的发生.
    数据库管理系统中的审计经常被用来监控数据的访问.审计纪录是验证违反数据访问权限的基础.新的细粒度审计机制从事于执行更细小级别的审计.
    新的审计原则是基于简单的用户定义关于表的查询条件的sql谓词. 谓词可以在当查询结果中返回了指定的值得时候进行审计.
    在基于查询值的审计中,也有一些情形下管理员只关心某一个特定的被引用和访问列情况.因为无论一个列的查询审计发生在dml的任何部分都可以进行审计,所以oracle对这个查询的审计将不存在任何问题.
    在8i中,审计项只能被设置用来监控对对象的访问权,只有一些固定的情况,比如用户id,时间戳,对象名称会被记录在审计跟踪里.
    细粒度审计可以调用一个存储过程来作为审计过程的一部分.
  -----------------------------------------------------------------------------------
            如何进行细粒度审计
    ...安全管理员用dbms_fga包来为有问题的表建立审计原则.
  dbms_fga.add_policy(),dbms_fga.enable_policy(),dbms_fga.disable_policy(),dbms_fga.drop_policy().
  -------------------------------------------------------------------------------------
  PROCEDURE ADD_POLICY
  参数名称            类型          输入/输出默认值?
   OBJECT_SCHEMA         VARCHAR2        IN   DEFAULT
   OBJECT_NAME          VARCHAR2        IN
   POLICY_NAME          VARCHAR2        IN
   AUDIT_CONDITION        VARCHAR2        IN   DEFAULT
   AUDIT_COLUMN          VARCHAR2        IN   DEFAULT
   HANDLER_SCHEMA         VARCHAR2        IN   DEFAULT
   HANDLER_MODULE         VARCHAR2        IN   DEFAULT
   ENABLE             BOOLEAN         IN   DEFAULT
  --------------------------------------------------------------------------
  PROCEDURE DISABLE_POLICY
  参数名称            类型          输入/输出默认值?
   OBJECT_SCHEMA         VARCHAR2        IN   DEFAULT
   OBJECT_NAME          VARCHAR2        IN
   POLICY_NAME          VARCHAR2        IN
  ------------------------------------------------------------------------------
  PROCEDURE DROP_POLICY
  参数名称            类型          输入/输出默认值?
   OBJECT_SCHEMA         VARCHAR2        IN   DEFAULT
   OBJECT_NAME          VARCHAR2        IN
   POLICY_NAME          VARCHAR2        IN
  ------------------------------------------------------------------------------
  PROCEDURE ENABLE_POLICY
  参数名称            类型          输入/输出默认值?
   OBJECT_SCHEMA         VARCHAR2        IN   DEFAULT
   OBJECT_NAME          VARCHAR2        IN
   POLICY_NAME          VARCHAR2        IN
   ENABLE             BOOLEAN         IN   DEFAULT
   -------------------------------------------------------------------------------
    ...用表dba_audit_policies来列出已定义的原则.
    ...用表dba_fga_audit_trail来放置审计纪录.这个表包括触发审计的用户名,SQL语句,
      审计名称,会话ID号,时间戳,和其他一些属性.
    ...管理员可以定义审计事件处理器来处理发生的时间,比如像管理员传送警告页.
  --------------------------------------------------------------------------------------
  下面列举一个新的细粒度原则的例子,从这个例子我们可以看出9I细粒度审计原则与8I的区别.
  如果我们的原则设为:AUDIT_CONDITION='SALARY>10000'
  这个时候我们看一下我们执行
  SELECT last_name,salary FROM employees WHERE last_name = ’Russell’
  尽管我们选择的查询条件中没有包含SALARY列,但是由于我们的对SALARY列进行查询,如果RUSELL的SALARY值大于10000,那么这条记录将被审计.
  审计纪录如下
  'SELECT LAST_NAME,SALARY FROM EMPLOYEES WHERE LAST_NAME='RUSSELL',<TIMESTAMP>,<SCN>,
  <USERNAME>,........
  如果我们执行
  SELECT LAST_NAME,SALARY FROM EMPLOYEES WHERE SALARY<9000
  那么尽管这条语句访问,查询了SALARY列,但是由于他访问的值未达到审计阀值,那么将不被审计.
  -------------------------------------------

[1] [2]  下一页

相关文章
广告赞助
网友评论

共有 0 位网友发表了评论,平均得分: 0 查看完整内容

用户名:

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

(注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码