课件:ORACLER中与二次开发相关技术的探讨与研究.pptVIP

课件:ORACLER中与二次开发相关技术的探讨与研究.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* R12安全性新特性 ORACLE VPD简介 虚拟专用数据库 (VPD) 也称为细粒度访问控制,它提供强大的行级安全功能。它是在 Oracle8i 中推出的,已经受到广泛的欢迎,并且在从教育软件到金融服务等各种应用程序得到采用。 VPD 的工作方法 通过透明地更改对数据的请求,基于一系列定义的标准向用户提供表的局部视图 在运行时,所有查询都附加了谓词,以便筛选出准许用户看到的行 ,例如,如果只允许用户查看帐户管理员 SCOTT 的帐户,则 VPD 设置自动地将查询: select * from accounts; 重写为: select * from accounts where am_name = SCOTT; * R12安全性新特性 DBA 在表 ACCOUNTS 上设置了一项安全策略。该策略具有一个相关函数,称为policy function,它返回一个用作谓词的字符串 where am_name = ‘SCOTT’。 你在SQL窗口执行的是select * from accounts,而实际上执行的是select * from accounts where am_name = ‘SCOTT’,那么它是怎么实现这个技术的呢? 要了解这个问题,我们需要重新回到VPD的核心: APPLICATION CONTEXT:应用程序上下文 POLICY FUNCTION:策略函数 POLICY TYPE:策略类型 * R12安全性新特性 APPLICATION CONTEXT:应用程序上下文 应用程序上下文简单通俗的说,就是个环境变量,也就是全局变量,在SESSION的生命周期内有效。其目的就是要让策略函数取得这个值。从而返回正确的谓词(其实也就是WHERE 条件字符串) 使用以下语句创建应用程序上下文: CREATE CONTEXT cux_context_name USING apps.cux_vpd_global cux_context_name 是应用程序上下文的名称(namespace) apps.cux_vpd_global是可以对这个namespace进行变量的创建和删除的package * R12安全性新特性 使用以下语句检查上下文: 检查应用程序上下文名称 检查应用程序上下文中的变量名称及值 12i MOAC使用的应用程序上下文 MULTI_ORG,MULTI_ORG2 到这里,我们已经很清晰的知道,应用程序上下文的用途是什么,怎么检查应用程序上下文。 * R12安全性新特性 POLICY FUNCTION:策略函数 策略函数是作用在对象上(表,视图,同义词等),根据应用程序上下文返回一个特定的谓词 也就是WHERE条件字符串,从而使得查询表,视图时自动给查询加上一个where条件 什么时候策略函数会执行? 当查询对象时会执行策略函数,条件是先使用dbms_rls.add_policy将对象和策略函数绑定在一起。 12i MOAC使用的策略函数 * R12安全性新特性 POLICY TYPE:策略类型 生成谓词所需的重复分析是一种在某些情况下可以进行修整的开销。例如,在大部分实际情况中,谓词并不象 am_name = ‘SCOTT’ 那样是静态的 它基于用户的身份、用户的权限级别、用户向哪个帐户管理员进行报告等情况,可能更具有动态性 由策略函数创建并返回的字符串可能会具有很强的动态性,而为了保证其结果,Oracle 必须每次重新执行策略函数,既浪费资源又降低性能 在这种类型的策略中,谓词每次执行时可能会有很大的差别,该策略称为“动态”策略,在 Oracle9i 数据库以及以前的版本中已经提供了这种策略 除了保留动态策略之外,Oracle 数据库 10g 还基于谓词的构造推出了几种新类型的策略,为提高性能提供了更好的控制 context_sensitive shared_context_sensitive shared_static 和 static * R12安全性新特性 从上面可以知道,ORACLE 10g一共提供了五种策略类型:DYNAMIC、context_sensitive、shared_context_sensitive、shared_static 和 static。MOAC中,重点使用的是DYNAMIC, shared_context_sensitive 如何设置策略函数的策略类型 dbms_rls.add_policy(policy_type = dbms_rls.shared_context_sensitive ); shared_context_sensitive

文档评论(0)

iuad + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档