- Oracle Label Security 是什么?
Oracle Label Security 是 Oracle 企业版数据库的一个安全选件,随 Oracle 8.1.7 一起推出。Oracle Label Security 通过对比应用表中数据行所附加的标签(敏感性标签)与一组用户标签(许可标签)来协调对数据行的访问。
- 谁应该考虑部署 Oracle Label Security?
当今几乎各行各业都会以某些形式使用敏感性标签。这些行业包括医疗保健、执法、能源、零售、国家安全以及国防行业。敏感性标签的示例包括:
- 内部
- 机密
- 仅限医生使用
- 高度敏感
- Widget Corporation
- 机密:芝加哥运营
- 敏感:财务:欧洲
- 绝密
- 公开
应用提供商可以集成 Oracle Label Security 功能来增强产品系列并获得竞争优势。
- Oracle Label Security 可以满足哪些安全需求?
Oracle Label Security 可用于为数据添加标签,以高细粒度限制访问。当多个组织、公司或用户共享一个应用时,这非常有用。使用敏感性标签,我们可以限制应用用户对组织或组织中的数据子集的访问,而无需更改应用。数据隐私权对使用者很重要,监管措施将陆续公布。Oracle Label Security 可帮助您实施数据隐私政策,仅允许“需要知晓”的用户访问相关数据。
- 我是否应该使用 Oracle Label Security 来保护我的所有表?
大多数情况下,传统的 Oracle 自主访问控制 (DAC) 对象权限(例如 SELECT、INSERT、UPDATE 和 DELETE)与数据库角色和存储过程搭配使用就足够了。此外,在将 OLS 应用于敏感表之前,您需要考虑这些因素。
- 是否有关于 Oracle Label Security 使用和安全标签定义的指南?
是的。可以从 tahiti.oracle.com 上在线获取内容全面的 Label Security 管理员指南。此外,Oracle 技术网还提供了一系列全面的示例,可以向您介绍各种建议的实施指南。大多数情况下,Oracle 企业版中免费提供的安全机制(系统和对象权限、数据库角色、安全应用角色)足以满足安全需求。当需要实施行级安全性时,应该考虑使用 Oracle Label Security。
- 在哪里可以找到 Oracle Label Security?
Oracle Label Security 随附在 Oracle 企业版 CD 中。Oracle Label Security 不会作为典型/默认 Oracle 安装的一部分安装。选择“Custom Installation”选项,然后选中“Oracle Label Security”旁边的框。安装完成后,使用“dbca”(Database Configuration Assistant) 注册 Oracle Label Security。
- Oracle Label Security 策略和用户标签(许可)能否集中存储在 Oracle Identity Management 中?
使用 Oracle Enterprise User Security,您不仅可以在 Oracle Identity Management 中集中存储和管理数据库用户,还可以在 Oracle Identity Management 中集中存储和管理 Oracle Label Security 策略和用户许可,这极大地简化了分布式环境中的策略管理,并且还让安全管理员能够自动为所有集中管理的用户加上用户许可标签。
- Oracle 虚拟专用数据库 (VPD) 和 Oracle Label Security 之间有何区别?
Oracle VPD 提供了多种强大的安全特性,包括细粒度访问控制 (FGAC)、应用上下文以及全局应用上下文。VPD 策略使用 PL/SQL 编写,可以分配给单个表或视图。引用受 VPD 保护的表和视图的信息请求需要根据分配给该表或视图的策略进行修改。VPD 策略可以像在正常营业时间实施访问一样简单。VPD 策略还可以通过对比个别行的属性值与应用上下文参数值来限制访问。全局应用上下文允许跨多个数据库会话访问应用上下文,从而减少或消除为每个用户会话创建单独应用上下文的需要。
Oracle Label Security 基于 VPD 技术构建而成,是一款可提供行级安全性的现成解决方案。使用该解决方案无需编写代码或进行软件开发,因此管理员能够完全专注于制定策略。Oracle Label Security 提供了一个界面,让您可以创建策略、指定实施选项、定义数据敏感性标签、建立用户标签授权以及保护单个表或模式。数据敏感性标签为限制数据访问带来了一种强大而灵活的方法。例如,可以使用数据敏感性标签隔离属于不同组织或公司的数据,并通过更改数据敏感性标签在公司之间有选择性地共享数据。
Oracle Virtual Private Database (VPD) 或许是您实施安全策略的首选方式,这取决于您安全策略的复杂程度。另外,Oracle Label Security 还非常适合需要根据信息敏感性制定访问控制决策的情况。
Oracle VPD 随 Oracle 企业版免费提供。Oracle Label Security 是 Oracle 企业版的一个附加安全选件。
- 是否可以将虚拟专用数据库与 Oracle Label Security 结合使用?
可以。这两个解决方案有两个“交集”:
- 可以向 OLS 策略附加“Where”子句以便提高细粒度。例如,仅允许用户从特定 IP 地址或子网和/或仅在营业时间建立连接,无论其标签授权为何。
- VPD 策略(列敏感与否)可以评估用户标签并确定对列和行的访问权限,而无需在这些行上应用数据标签。(示例)
- 是否可以将 Oracle Label Security 与 Oracle E-Business Suite 结合使用?
可以,我们在 Oracle 技术网网站上发布了一份有关此主题的优秀实践文档。
Oracle E-Business Suite 通过在内部使用 Oracle VPD 来提供细粒度的访问控制。
Steven Chan 的博客中提供了许多有关 Oracle E-Business Suite 的安全相关问题的精彩文章。
- Label Security 与 Database Vault 如何互补?
由于 Database Vault 提供对象级访问控制,而不是行级访问控制,因此 Database Vault 中受 OLS 策略保护的表的行为与在“普通”数据库中进行存储和访问时完全一样。
可以将 OLS 标签分配给 Database Vault“因素”;然后,根据 OLS 管理员指南第 4.4.5 节“使用 MERGE_LABEL 函数合并标签”中所述的算法,将这些标签与用户权限标签合并,然后再通过对比合并的用户标签与行标签来做出访问控制决策。(示例)。
另外,您还可以查看 Database Vault 命令规则中的 OLS 用户许可,从而仅允许具有特定许可的用户执行特定的管理命令。
- Oracle Label Security 是否提供列级访问控制?
不,Oracle Label Security 并不提供列级访问控制。
列敏感的 VPD 策略可以通过评估 OLS 用户标签来确定对特定列的访问权限。这里提供了该功能的演示。
您可以编写一条 VPD 策略,令其仅在针对受保护表的 SQL 语句中包含特定列(“敏感”列)时激活。启用“列敏感性”后,VPD 将仅返回包含敏感列中用户有权查看的信息的行,或者返回所有行,但是除了用户有权查看的值以外,敏感列中的所有单元格均为空。如需了解 VPD 的各种不同配置,请查看此页面中的示例截图。
- 是否可以根据 Oracle Label Security 创建安全应用角色?
可以。确定是否执行了“set role”命令的过程可以评估 OLS 用户标签。在这种情况下,由于解决方案中不包含行标签,OLS 策略不需要应用于表。(示例)。
- 什么是受信任的存储程序单元?
使用定义者的系统和对象权限 (DAC) 执行的存储过程、函数和包。如果调用者是具有 OLS 用户许可(标签)的用户,将结合定义者的 DAC 权限和调用者的安全许可来执行此过程。
受信任的存储过程是被授予了 OLS 权限“FULL”或“READ”的过程。执行受信任的存储程序单元时,生效的策略权限是调用用户权限与程序单元权限的合集。
- VPD 或 OLS 是否会向受保护的表添加其他列?
将 OLS 策略应用于表时,会在表中额外添加一列(隐藏列)。此列的名称需要在最初创建策略时指定。
可以使用现有列来存储 OLS 行标签,但需要将其数据类型定义为“number(10)”。
VPD 不会向受保护的表添加其他列。
- 为什么要隐藏额外的 OLS 行标签列?
大多数应用在设计时并未纳入访问控制机制,所以 OLS 需要透明地执行此操作。
当应用使用“select * from <tablename>;”查询某个表时,将返回所有列,包括未处于隐藏状态的标签列。现有应用的设计可能不支持显示这个额外的列,因此可能发生故障。然而将该列隐藏后,它便仅会在 SQL 语句中包含其名称时才显示,因此“select * from <tablename>;”将返回应用所希望的所有列,而不包含隐藏的 OLS 列。
- 是否有可用于 Oracle Label Security 的管理工具?
从 Oracle Database 11gR1 起,Enterprise Manager Grid Control 中开始提供 Oracle Policy Manager(以及大多数其他安全相关管理工具)功能,以便管理员在一个现代化、方便、集成的环境中创建和管理 OLS 策略。
- 如何安装和启动 Oracle Policy Manager?
从 Oracle Database 11gR1 开始,不再提供 Oracle Policy Manager 下载。默认情况下,安装 Enterprise Manager Database Control,并可通过以下命令启动:
$ emctl start dbconsole
在 LBACSYS 之前,OLS 对象和策略的所有者可以登录 Enterprise Manager Database Control 创建和管理 OLS 策略,必须解锁该帐户,并且向 LBACSYS 授予“Select Any Dictionary”系统权限。
- 如何在应用 Label Security 访问控制策略后保持应用的性能?
请注意以下提示:
- 仅对那些确实需要保护的表应用敏感性标签
- 不要对模式应用 OLS 策略
- 通常建议只使用少量数据分类标签;如果表主要用于 READ 操作,请尝试在(隐藏的)OLS 列上构建一个位图索引,并将此索引添加至该表的现有索引。
本文档包含有关 Oracle Label Security 性能注意事项的详尽讨论。