使用 PHP 和 Oracle 开发企业应用程序VPD 安全应用程序环境。Companion 应用程序使用 Oracle 的安全应用程序环境,将实体 ID 分配给登录的用户。利用两个简单的标识符 — 帐户(工作人员或毕业生)和环境(实体 ID)— 即可确立大部分的访问规则,并且很容易派生出其余的规则。 这些用于用户登录会话的标识符由一个加密的安全令牌所携带,每次进行查询(即点击数据库中某项内容的超链接)时都会读取该令牌。在加密令牌的会话持续期间,用户登录(名称/口令)以及实体 ID 都存储在 Web 服务器上。登录用于建立与数据库的连接并获得对数据结构的访问权限,而实体 ID 则用于通过安全策略将数据访问权限细化到在行级。 VPD 细粒度访问控制。使用由安全应用程序环境提供的实体 ID 标识符,Oracle 安全策略能够在行级管理访问。这些 FGAC 安全策略 — 与基本角色安全一样 — 附加在对象上。与基本角色安全不同的是,FGAC 策略进一步将访问权限限制在与实体 ID 关联的属性上。附加到所有非公共数据库对象上的安全策略有助于完全剥离受限制的数据。因此,即使数据库登录名和口令被盗取,对任何受策略保护的表进行查询的企图(使用标准 SQL 工具)都将得到空记录集或有限的记录集。策略对用户的属性以及行的属性进行鉴定,并确定用户可以看到哪些行(如果有的话)。例如,只有那些住在温哥华并应邀出席西海岸地区经理宴会的实体才可以查看出席同一活动的登记者名单。另一个例子:分配到 Web 站点的编辑人员不能删除网站的页面,但该网站的作者可以这样做。 共性。我们的 160,000 个实体构成了一个变化的复杂群体。每个实体都有很多共性,如年龄、地位、财政群体、地区等等。为了便于没有经验的管理员分配访问权限,已经将许多这样的属性汇总到一系列的共性组中。有一个共性查询表每天都进行更新,并列出所有实体及其相应的共性。FGAC 也使用该表管理对那些已经分配了共性的数据行的访问。共性还用于为站点的访问者灵活地提供个性化的内容。 图 4 描述了在用户调用页面时筛选数据请求的五个步骤。
使存储在 Companion 数据库中的数据与存储在中央数据库中的数据保持同步已变成了一项挑战,因为二者都在不断地更新。我们设计了一个系统,它比实时系统慢,但是保证符合严格的数据标准。 起初,每夜在 Companion 数据库中刷新由中央数据库提供的“同步”数据(参见图 5)。这一转储过程中最重要的对象是实体表,它构成了我们内部安全性的基础。 虽然该组同步表在 Companion 应用程序的模块中被频繁使用,但它们并不由这些模块进行更新。实际上,这些更新存放在保持表中,如果有必要,由记录工作人员使用专门设计的客户服务器接口对其进行仔细的编辑。然后,更新的数据在经过编辑从而符合标准之后,被回送到中央数据库。由于中央数据库和 Companion 数据库中的所有行都有日期时间标记,管理这一流程的程序仔细地检查相同记录的更新情况(这些更新可能相互冲突)。与以前相比,准确、更新的数据能够以更大的数量、在利用更少手动操作的情况下流向中央数据库。 由于我们的数据库是 Companion 数据库,它从一些其他的大型数据库中借用字段和数据。Companion 数据库中每个字段的名称都以一个字母的代码作为前缀,该代码表示其源数据库。由于强制在每个表的每个字段名中识别数据源,因此不会漏掉进行同步的机会。
学到的教训以及对开发人员的建议 Kardasz 的团队从这一正在进行的项目中所学到的主要教训如下:
更多相关文章
|
推荐文章
·网络资源
精彩文章
|