Back to the Oracle Database Security home page

Virtual Private Database

Virtual Private Database (VPD), a feature of Oracle Database 11g Enterprise Edition, was introduced in Oracle8i and is one of the most popular security features in the database. VPD is used when the standard object privileges and associated database roles are insufficient to meet application security requirements. VPD policies can be simple or complex depending on your security requirements. VPD can be used in combination with the "application context" feature to enforce sophisticated row and/or column level security requirements for privacy and regulatory compliance. A simple VPD example might restrict access to data during business hours and a more complex VPD example might read an application context during a login trigger and enforce row level security against the ORDERS table.

Find out how Oracle Label Security and VPD can be combined to provide a powerful solution for protecting personally identifiable information (PII).

No matter how users connect to the protected table (via an application, a Web interface or SQL*Plus), the result is the same. There is no "application security problem" anymore, since the access policy is attached to the table, and cannot be bypassed.

VPD simple
Example: A customer can only see his orders in the 'orders' table (below), when he is listed in the 'customers' table (above).


Oracle Database 10g introduced new capabilities to Virtual Private Database: With "Column Relevance", VPD can be configured such that the policy is enforced only when a critical column is selected:

VPD Column Relevance (passive)

VPD Column Relevance (active)
Example: The account manager with the account_mgr_id "149" can see all rows from the customers table, but not the credit limits. As soon as she queries the 'credit_limit' column, she can only see her own customers.


The most advanced configuration ("Column Hiding") of VPD allows for the most effective combination of ease-of-use and security: She still has access to all public information in the 'customers' table, but confidential information remains hidden:

VPD Column Masking
Example: All 'credit_limit' data cells are empty except those of her own customers.


Technical Information

Hands-On

Oracle by Example
Maximize performance with new VPD features
Oracle Magazine: Keeping Information Private with VPD
Tech Note: Using VPD with Oracle Application Express
 
Learn More
· Oracle by Example: Database Security

Security Options
· Oracle Database Vault
· Oracle Advanced Security
· Oracle Label Security
· Oracle Secure Backup

Security Features
· Data Encryption
· Virtual Private Database
· Database Auditing
· Backup Encryption
· Proxy Authentication
· Enterprise User Security
· Secure Application Roles
· Fine Grained Auditing

Related Technologies
· Audit Vault
· Secure Backup
· Configuration Management
· Information Rights Management
· Identity Management

Discussion Forums
· Audit Vault
· Security
· Database
E-mail this page
Printer View Printer View
Oracle Is The Information Company About Oracle | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Privacy