|Oracle® Database Security Guide
10g Release 1 (10.1)
Part Number B10773-01
The Oracle Database 10g Release 1 (10.1) security features and enhancements described in this section comprise the overall effort to provide superior access control and accountability (privacy) with this release of the database.
The following sections describe new security features of Oracle Database 10g Release 1 (10.1) and provide pointers to additional information:
To provide enhanced access control, privacy, and performance, the following enhancements have been added to Virtual Private Database (VPD), a feature of the Enterprise Edition:
Column-level VPD policies provides more fine-grained access controls on data. With column-level VPD, security policies can be applied only where a particular column or columns are accessed in the user's query. This means that when a user has rights to access the object itself, VPD can limit the individual rows returned only if the columns the user accesses contain sensitive information, such as salaries, or national identity numbers.
The default behavior of column-level VPD restricts the number of rows returned when a query addresses columns containing sensitive data. In contrast, column masking behavior allows all rows to be returned for a query against data protected by column-level VPD, but the columns that contain sensitive information are returned as
NULL values. With column masking, users see all the data they are supposed to see, but privacy is not compromised.
Static and context-sensitive policy types optimize VPD for significant performance improvements because the policy function does not execute for every SQL query. Static policies maintain the same predicate for queries, updates, inserts, and deletes throughout a session. (However application context or attributes such as
SYSDATE can change the value returned by the predicate.) They are particularly useful for hosting environments where you always need to apply the same predicate. With context-sensitive policies, the predicate can change after statement parse time, but VPD re-executes the policy function only if the application context changes. This ensures that any changes to the predicate since the initial parsing are captured. Context-sensitive policies are useful when VPD policies must enforce two or more different predicates for different users or groups.
Both static and context-sensitive policies can be shared across multiple database objects, so that queries on another database object can use the same cached predicate. Shared policies enable you to further decrease the overhead of re-executing policy functions for every query, reducing any performance impact.
"DBMS_RLS.ADD_POLICY Procedure Policy Types" for more information about these new policy types and how to use them in applications.
In this release, if you use
SYS_CONTEXT inside a SQL function which is embedded in a parallel query, the function picks up the application context.
"Using SYS_CONTEXT in a Parallel Query" for information about using this enhancement.
Oracle Database 10g Release 1 (10.1) expands upon standard and fine-grained auditing for enhanced user accountability, providing the following new features:
In the previous release, fine-grained auditing support was only available for
SELECT statements. In this release, fine-grained auditing support is expanded to include DMLs (
"Fine-Grained Auditing" for more information about this new feature
In this release the
DBA_COMMON_AUDIT_TRAIL view has been added, which presents both the standard and the fine-grained audit log records in a single view.
"Database Audit Trail Contents" for more information about this new view.
Fields have been added to the standard and the fine-grained audit trails in this release. New fields capture the exact SQL text of audited statements, the date and time stamp in UTC (Coordinated Universal Time) format, and enhanced auditing for enterprise users. Enterprise users are global database users, who are stored in and LDAP directory. In this release, the audit trail includes enterprise users' full distinguished names (DNs) and global user identifiers (GUIDs).
"What Information is Contained in the Audit Trail?" for more information about the extensions to standard and fine-grained audit trails
In this release, a new flexible interface,
DBMS_CRYPTO, is provided to encrypt especially sensitive stored data, or it can also be used in conjunction with PL/SQL programs running network communications. This new interface provides support for the following features:
DBMS_CRYPTO is intended to replace the
DBMS_OBFUSCATION_TOOLKIT, providing greater ease of use and support for a range of algorithms to accommodate new and existing systems.
Chapter 16, "Developing Applications Using Data Encryption" for information about how to use this package