Oracle 数据库安全性 — 虚拟专用数据库
虚拟专用数据库 (VPD) 是 Oracle 数据库 10g 企业版的一个特性,它在 Oracle8i 中引入,并且是数据库中最流行的安全特性之一。如果标准对象权限和关联的数据库角色无法满足应用程序的安全要求,则需要使用 VPD。VPD 策略可能很简单,也可能很复杂,这取决于您的安全要求。VPD 可以与“应用程序上下文”特性结合使用,以便针对隐私和合规性实施完善的行级安全要求。在工作时间内限制对数据的访问是一个简单的 VPD 示例,在登录触发器时初始化应用程序上下文、并针对 ORDERS 表实施行级安全性是一个较为复杂的 VPD 示例。
了解如何结合使用 Oracle Label Security 和 VPD,以提供保护个人可识别信息 (PII) 的强大解决方案。 |
无论用户通过何种方式连接到受保护的表(通过应用程序、Web 界面还是 SQL*Plus),结果都是一样的。不会再出现“应用程序安全问题”,因为访问策略已经附加到该表。
示例:如果用户位于“customers”表(上表)中,则只能看到他在“orders”表(下表)中的顺序。
Oracle 数据库 10g 向虚拟专用数据库引入了新功能:通过“列相关性”,可以配置 VPD,以便仅 在选择关键列时实施策略:
示例:account_mgr_id 为“149”的帐户管理员可以看到 customers 表的所有行,但无法看到信用度。如果她查询“credit_limit”列,则只能看到她自己的客户。
VPD 的最高级配置(“Column Masking”)可以最有效地结合易用性和安全性:她仍然可以访问“customers”表的所有公开信息,但机密信息仍保持隐藏状态。
示例:除了她自己的客户以外,所有其他“credit_limit”数据单元格均为空。
|