Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->编程语言 ->PHP4/PHP5 ->使用 PHP 和 Oracle 开发企业应用程序
  相关分类: 
ASP
ViualBasic
UML / Rational Rose
PHP4/PHP5
Perl
JAVA/JSP教程
Delphi
ColdFusion
CGI
C/C++
ASP.NET
XML
  站内搜索: 
热门文章排行
热门文章排行 PHP聊天室技术(06-01)
7种流行PHP集成开发工具(IDE)的比较(06-01)
Linux新手入门常用命令大全 (04-16)
Apache+PHP5.0+GD+Zend+Mysql的配置(04-11)
APACHE中 httpd.conf 的中文详解 (04-16)
精采文章排行
精采文章排行 传奇的诞生 PHP三位创始人简介(06-01)
php在yahoo!的应用(06-01)
7种流行PHP集成开发工具(IDE)的比较(06-01)
PHP开发框架的现状和展望(06-01)
草根的进化PHP语言PHP语言发展简史(06-01)
  ·php在yahoo!的应用·7种流行PHP集成开发工具(IDE)的比较·PHP开发框架的现状和展望·草根的进化PHP语言PHP语言发展简史·Zend Studio5.5测试版 兼容三系统·为PHP5定做 ZendBox 将明年初发布·PHP:“草根语言”挑战“大腕”Java .Net·PHP正式进入IIS微软与Zend携手推动PHP语·PHP语言发展历史

使用 PHP 和 Oracle 开发企业应用程序

作者:webmaster   来源: ORACLE   点击:   日期:2007-04-16 [收藏] [投稿]

  IE是否经常中毒?推荐您

模块在逻辑上是相互分离的。每个模块都拥有一套独有的安全策略,在 Web 服务器上拥有自己的装满其 PHP 应用程序文件的文件夹,并且拥有自己的 GUI 子站点和表集。每个表名以两个表示该表所属模块的字母作为前缀。文件、策略、过程以及其他存储的代码集均遵循一种命名惯例,这种惯例将它们标识为特定模块的一部分。

在某种意义上,模块是相互分离的,但每个模块都嵌入到更大的应用程序中。模块共享相同的导航元素和公用数据,并且全都重用业务逻辑层提供的类。

表 HR_Employee

c1_id c1_emp_category web_emp_photo c2_emp_email
------- ---------------- -------------- ------------
M290171 central staff (blob) james.milton@mcgill.ca
C179022 central staff (blob) doris.seagal@mcgill.ca
M109022 casual (blob) luke.grande@mcgill.ca
C390101 work-study (blob) patrick.roy@mcgill.ca
M203400 faculty based staff (blob) mcmaster.philip@mcgill.ca

表和字段的前缀码:

HR — 人力资源模块(每个模块的每个表都有两个字母的前缀)
C1 — 中央数据库 1*
C2 — 中央数据库 2*
WEB — Companion 数据库应用程序*

* 字段的前缀依据其源数据库确定。
由于该应用程序是 companion 数据库,
它同步并使用来自于不同来源的数据,
尤其是来自于主要中央数据库的数据。

虽然大部分模块遵守相似的安全结构和原则,但是在项目开始的时候,我们的每个模块都需要有专门针对其需求的安全方案。共同安全原则的一个例子是指导者原则。为每个模块大致分配三位指导者。指导者通常是符合条件的非技术性用户。他们在其模块内拥有完全的管理权限,并可以向其他较低安全级的管理员分配权限。不同安全原则的一个示例是 HR 模块中保密信息原则。当员工访问其保密信息时,他们的行级安全依赖于其实体 ID。但是在大多数其他模块中,他们的行级安全依赖于其工作的职位 ID。

安全性

如果我们的数据非常敏感,则通过传统的基于 cookie 的会话机制在应用程序级上限制访问就不足以保证安全性。对于具有复杂的访问规则并且预期具有庞大流量的数据库而言,在管理行级安全的同时获得良好性能的最佳方法是将大部分安全功能 — 那些用于强化数据限制的特定规则的安全功能 — 转移到数据库级。

通过 VPD 保护数据库引擎级上的数据访问的安全而将访问控制放在了最低级别上,从而确保入侵者的查询工具(能够越过应用程序安全机制)无法获得数据。此外,它为机构提供了更低的拥有成本:在数据服务器上一次性构建安全性,而不用将安全性构建到所有访问数据的应用程序工具中。最后,它集中了数据访问的管理和控制。

Companion 利用了 Oracle 传统的基本角色安全和用户帐户安全功能。更重要的是,它使用了两个功能强大的 VPD 工具:安全应用程序环境和 FGAC。(有关 VPD 的详细说明,参见 otn.oracle.com/deploy/security/oracle9ir2/pdf/VPD9ir2twp.pdf)。使用这四个安全性概念作为框架,让我们来探讨我们的业务模型怎么样与 Oracle 相融合。

基本用户帐户安全。安全性和数据库体系结构是围绕一个每天从中央数据库进行更新的主要名称列表而设计的。这些名称被称为实体而非用户。

Companion 包含两个用户组,工作人员毕业生。用户组被 Oracle 的基本安全功能看作单个帐户。举例来说,这意味着 3 万个并发用户只共享两个帐户。其他用户(包括某些实体和所有的非实体)无法共享任何帐户,但它们仍然可以访问未加限制的公共数据。(注意:在本文中,用户指访问系统的人,而帐户指 Oracle 基本用户帐户。)如图 3 所示,用户是公共实体和成员的子集。


图 3:用户:包含某些数据库实体和某些公共成员的子集。

那么为什么仅为所有经过验证的用户分配两个共享帐户,而不是分别为每个用户分配一个帐户?因为对许多应用程序安全性的管理,需要依据用户可能赋予这些应用程序的各种属性进行,而非依据用户所拥有的帐户进行。可完成此目标的工具将在以下关于 VPD 的章节中进行探讨。

基本角色安全。当用户通过单击某个链接访问 Companion 应用程序时,从安全性的观点来看,用户是在访问模块。每个模块都与一个 Oracle 安全角色相关联,该角色被分配或被拒绝赋予每个用户帐户。这些安全角色管理表、视图、过程和函数等的对象级安全。基本角色安全只是将广泛的用户权限(选择、插入、执行等)分配给对象,它是建立访问的第一步。特定的用户权限由 FGAC 控制。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 34 5 下一页

上一篇:ORACLE PHP教程--从原型到产品的最短距离   下一篇:可扩展 可伸缩的 Oracle 与 PHP
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·传奇的诞生 PHP三位创始人简介

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。