Oracle® Database Vault: Administrator's Guide 10g Release 2 (10.2)
Oracle® Database Vault: Administrator's Guide 10g Release 2 (10.2)
Oracle® Database Vault: Administrator's Guide 10g Release 2 (10.2)
Administrator’s Guide
10g Release 2 (10.2)
B25166-14
September 2009
Oracle Database Vault Administrator's Guide 10g Release 2 (10.2)
B25166-14
Copyright © 2006, 2009, Oracle and/or its affiliates. All rights reserved.
Contributors: Priya Badnar, Tammy Bednar, Tom Best, Ji-won Byun, Ben Chang, Martin Cheng, Chi Ching
Chui, Scott Gaetjen, Viksit Gaur, Janis Greenberg, Lijie Heng, Sumit Jeloka, Dominique Jeunot, Terri Keller,
Peter Knaggs, Chon Lee, Frank Lee, Paul Needham, Deborah Owens, Yi Ouyang, Hozefa Palitanawala,
Robert Pang, Rupa Parameswaran, Gayathri Sairamkrishnan, Vipin Samar, Javed Samuel, James Spiller,
Ashwini Supur, Srividya Tata, Kamal Tbeileh, Sudheesh Varma, Peter Wahl, Rodney Ward, Daniel Wong,
Aravind Yalamanchi
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it on
behalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data
delivered to U.S. Government customers are "commercial computer software" or "commercial technical data"
pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As
such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and
license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of
the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software
License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of information management applications. It is not
developed or intended for use in any inherently dangerous applications, including applications which may
create a risk of personal injury. If you use this software in dangerous applications, then you shall be
responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use
of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of
this software in dangerous applications.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.
This software and documentation may provide access to or information on content, products, and services
from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all
warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and
its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of
third-party content, products, or services.
Contents
iii
Accessing Oracle Database Vault Pages from Grid Control................................................. 3-2
Starting Oracle Database Vault Administrator.............................................................................. 3-4
Quick Start Tutorial: Securing a Schema from DBA Access............................................................ 3-5
Step 1: Adding the SYSTEM User to the Data Dictionary Realm ............................................... 3-6
Step 2: Log On as SYSTEM to Access the HR Schema.................................................................. 3-6
Step 3: Create a Realm ....................................................................................................................... 3-7
Step 4: Secure the EMPLOYEES Table in the HR Schema ........................................................... 3-7
Step 5: Create an Authorization for the Realm .............................................................................. 3-8
Step 6: Test the Realm........................................................................................................................ 3-9
Step 7: Run a Report ....................................................................................................................... 3-10
Step 8: Remove the Components for This Tutorial .................................................................... 3-10
4 Configuring Realms
What Are Realms? .................................................................................................................................... 4-1
Default Realms ......................................................................................................................................... 4-2
Creating a Realm ...................................................................................................................................... 4-2
Editing a Realm......................................................................................................................................... 4-3
Creating Realm-Secured Objects .......................................................................................................... 4-4
Defining Realm Authorization.............................................................................................................. 4-5
Disabling and Enabling a Realm .......................................................................................................... 4-7
Deleting a Realm ...................................................................................................................................... 4-7
How Realms Work.................................................................................................................................... 4-8
How Authorizations Work in a Realm ................................................................................................. 4-9
Example of How Realms Work ........................................................................................................... 4-10
How Realms Affect Other Oracle Database Vault Components.................................................. 4-11
Guidelines for Designing Realms ..................................................................................................... 4-11
How Realms Affect Performance ....................................................................................................... 4-12
Related Reports and Data Dictionary Views ................................................................................... 4-12
iv
Step 5: Remove the Components for This Tutorial .................................................................... 5-13
Tutorial: Configuring Two-Person Integrity, or Dual Key Security ............................................ 5-14
Step 1: Create Users for This Tutorial .......................................................................................... 5-15
Step 2: Create a Function to Check if User patch_boss Is Logged In....................................... 5-15
Step 3: Create Rules, a Rule Set, and a Command Rule to Control the Users’ Access.......... 5-16
Step 4: Test the Users’ Access ........................................................................................................ 5-17
Step 5: Remove the Components for This Tutorial .................................................................... 5-18
Guidelines for Designing Rule Sets.................................................................................................. 5-19
How Rule Sets Affect Performance ................................................................................................... 5-19
Related Reports and Data Dictionary Views ................................................................................... 5-20
7 Configuring Factors
What Are Factors?..................................................................................................................................... 7-1
Default Factors .......................................................................................................................................... 7-2
Creating a Factor ....................................................................................................................................... 7-4
Editing a Factor ...................................................................................................................................... 7-10
Adding an Identity to a Factor ............................................................................................................ 7-10
About Factor Identities................................................................................................................... 7-11
Creating and Configuring a Factor Identity................................................................................ 7-11
Using Identity Mapping to Configure an Identity to Use Other Factors................................ 7-13
Deleting a Factor.................................................................................................................................... 7-14
How Factors Work ................................................................................................................................. 7-15
How Factors Are Processed When a Session Is Established..................................................... 7-15
How Factors Are Retrieved ........................................................................................................... 7-16
How Factors Are Set ....................................................................................................................... 7-17
Tutorial: Preventing Ad Hoc Tool Access to the Database ............................................................ 7-17
Step 1: Enable the SCOTT User Account ..................................................................................... 7-18
Step 2: Create the Module Factor.................................................................................................. 7-18
Step 3: Create the Limit SQL*Plus Access Rule and Rule Set ................................................... 7-19
Step 4: Create the CONNECT Command Rule .......................................................................... 7-20
v
Step 5: Test the Ad Hoc Tool Access Restriction ........................................................................ 7-21
Step 6: Remove the Components for This Tutorial .................................................................... 7-22
Tutorial: Restricting User Activities Based on Session Data ........................................................ 7-22
Step 1: Create an Administrative User......................................................................................... 7-23
Step 2: Add Identities to the Domain Factor ............................................................................... 7-23
Step 3: Map the Domain Factor Identities to the Client_IP Factor........................................... 7-24
Step 4: Create a Rule Set to Set the Hours and Select the Factor Identity............................... 7-25
Step 5: Create a Command Rule That Uses the Rule Set........................................................... 7-26
Step 6: Test the Factor Identity Settings ....................................................................................... 7-26
Step 7: Remove the Components for This Tutorial .................................................................... 7-27
Guidelines for Designing Factors ...................................................................................................... 7-28
How Factors Affect Performance........................................................................................................ 7-29
Related Reports and Data Dictionary Views ................................................................................... 7-29
vi
Step 4: Update the ALTER SYSTEM Command Rule to Use the Rule Set ...................... 9-10
Step 5: Test the Authorizations .............................................................................................. 9-11
Step 6: Remove the Components for This Tutorial ............................................................. 9-12
Related Reports and Data Dictionary Views............................................................................... 9-12
Using Oracle Database Vault with Oracle Recovery Manager..................................................... 9-13
vii
ADD_OBJECT_TO_REALM Procedure ...................................................................................... 11-4
CREATE_REALM Procedure ........................................................................................................ 11-5
DELETE_AUTH_FROM_REALM Procedure............................................................................. 11-6
DELETE_OBJECT_FROM_REALM Procedure .......................................................................... 11-7
DELETE_REALM Procedure......................................................................................................... 11-8
DELETE_REALM_CASCADE Procedure ................................................................................... 11-8
RENAME_REALM Procedure ...................................................................................................... 11-9
UPDATE_REALM Procedure ....................................................................................................... 11-9
UPDATE_REALM_AUTH Procedure ....................................................................................... 11-10
Rule Set Procedures Within DVSYS.DBMS_MACADM............................................................ 11-12
ADD_RULE_TO_RULE_SET Procedure ................................................................................... 11-12
CREATE_RULE Procedure.......................................................................................................... 11-14
CREATE_RULE_SET Procedure................................................................................................. 11-14
DELETE_RULE Procedure .......................................................................................................... 11-16
DELETE_RULE_FROM_RULE_SET Procedure ....................................................................... 11-17
DELETE_RULE_SET Procedure ................................................................................................. 11-18
RENAME_RULE Procedure ........................................................................................................ 11-18
RENAME_RULE_SET Procedure ............................................................................................... 11-19
SYNC_RULES Procedure............................................................................................................. 11-19
UPDATE_RULE Procedure ......................................................................................................... 11-19
UPDATE_RULE_SET Procedure ................................................................................................ 11-20
Command Rule Procedures Within DVSYS.DBMS_MACADM .............................................. 11-22
CREATE_COMMAND_RULE Procedure................................................................................. 11-23
DELETE_COMMAND_RULE Procedure ................................................................................. 11-24
UPDATE_COMMAND_RULE Procedure ................................................................................ 11-24
Factor Procedures and Functions Within DVSYS.DBMS_MACADM ..................................... 11-26
ADD_FACTOR_LINK Procedure............................................................................................... 11-27
ADD_POLICY_FACTOR Procedure.......................................................................................... 11-28
CHANGE_IDENTITY_FACTOR Procedure............................................................................. 11-28
CHANGE_IDENTITY_VALUE Procedure ............................................................................... 11-29
CREATE_DOMAIN_IDENTITY Procedure.............................................................................. 11-30
CREATE_FACTOR Procedure .................................................................................................... 11-30
CREATE_FACTOR_TYPE Procedure ........................................................................................ 11-34
CREATE_IDENTITY Procedure ................................................................................................. 11-34
CREATE_IDENTITY_MAP Procedure ...................................................................................... 11-35
DELETE_FACTOR Procedure..................................................................................................... 11-36
DELETE_FACTOR_LINK Procedure......................................................................................... 11-36
DELETE_FACTOR_TYPE Procedure......................................................................................... 11-37
DELETE_IDENTITY Procedure .................................................................................................. 11-37
DELETE_IDENTITY_MAP Procedure....................................................................................... 11-38
DROP_DOMAIN_IDENTITY Procedure .................................................................................. 11-39
GET_INSTANCE_INFO Function .............................................................................................. 11-40
GET_SESSION_INFO Function .................................................................................................. 11-40
RENAME_FACTOR Procedure .................................................................................................. 11-41
RENAME_FACTOR_TYPE Procedure ...................................................................................... 11-41
UPDATE_FACTOR Procedure ................................................................................................... 11-42
UPDATE_FACTOR_TYPE Procedure ....................................................................................... 11-45
viii
UPDATE_IDENTITY Procedure................................................................................................. 11-45
Secure Application Role Procedures Within DVSYS.DBMS_MACADM............................... 11-46
CREATE_ROLE Procedure.......................................................................................................... 11-46
DELETE_ROLE Procedure .......................................................................................................... 11-47
RENAME_ROLE Procedure ........................................................................................................ 11-48
UPDATE_ROLE Procedure ......................................................................................................... 11-48
Oracle Label Security Policy Procedures Within DVSYS.DBMS_MACADM ....................... 11-49
CREATE_MAC_POLICY Procedure.......................................................................................... 11-49
CREATE_POLICY_LABEL Procedure....................................................................................... 11-51
DELETE_MAC_POLICY_CASCADE Procedure ..................................................................... 11-52
DELETE_POLICY_FACTOR Procedure.................................................................................... 11-52
DELETE_POLICY_LABEL Procedure ....................................................................................... 11-53
UPDATE_MAC_POLICY Procedure ......................................................................................... 11-54
ix
GET_FACTOR Function................................................................................................................. 14-2
GET_TRUST_LEVEL Function...................................................................................................... 14-3
GET_TRUST_LEVEL_FOR_IDENTITY Function ...................................................................... 14-3
ROLE_IS_ENABLED Function ..................................................................................................... 14-4
GET_FACTOR_LABEL Function.................................................................................................. 14-5
Oracle Database Vault PL/SQL Factor Functions............................................................................ 14-6
F$AUTHENTICATION_METHOD Function............................................................................. 14-7
F$CLIENT_IP Function .................................................................................................................. 14-8
F$DATABASE_DOMAIN Function ............................................................................................. 14-8
F$DATABASE_HOSTNAME Function ....................................................................................... 14-8
F$DATABASE_INSTANCE Function .......................................................................................... 14-9
F$DATABASE_IP Function ........................................................................................................... 14-9
F$DATABASE_NAME Function ................................................................................................ 14-10
F$DOMAIN Function ................................................................................................................... 14-10
F$ENTERPRISE_IDENTITY Function ....................................................................................... 14-11
F$IDENTIFICATION_TYPE Function ....................................................................................... 14-11
F$LANG Function......................................................................................................................... 14-12
F$LANGUAGE Function ............................................................................................................. 14-12
F$MACHINE Function................................................................................................................. 14-13
F$NETWORK_PROTOCOL Function........................................................................................ 14-13
F$PROXY_ENTERPRISE_IDENTITY Function........................................................................ 14-13
F$SESSION_USER Function........................................................................................................ 14-14
Oracle Database Vault PL/SQL Rule Functions ............................................................................ 14-14
DV_SYSEVENT Function............................................................................................................. 14-15
DV_LOGIN_USER Function ....................................................................................................... 14-15
DV_INSTANCE_NUM Function................................................................................................ 14-16
DV_DATABASE_NAME Function ............................................................................................ 14-16
DV_DICT_OBJ_TYPE Function .................................................................................................. 14-16
DV_DICT_OBJ_OWNER Function............................................................................................. 14-17
DV_DICT_OBJ_NAME Function................................................................................................ 14-17
DV_SQL_TEXT Function ............................................................................................................. 14-18
Oracle Database Vault PL/SQL Packages ....................................................................................... 14-18
x
Factor Without Identities Report ........................................................................................... 16-3
Identity Configuration Issues Report.................................................................................... 16-3
Realm Authorization Configuration Issues Report ............................................................ 16-3
Rule Set Configuration Issues Report ................................................................................... 16-4
Secure Application Configuration Issues Report ................................................................ 16-4
Oracle Database Vault Auditing Reports .................................................................................... 16-4
Realm Audit Report................................................................................................................. 16-4
Command Rule Audit Report ................................................................................................ 16-4
Factor Audit Report ................................................................................................................. 16-4
Label Security Integration Audit Report .............................................................................. 16-5
Core Database Vault Audit Trail Report .............................................................................. 16-5
Secure Application Role Audit Report ................................................................................. 16-5
Generating General Security Reports ............................................................................................... 16-5
Object Privilege Reports................................................................................................................. 16-5
Object Access By PUBLIC Report .......................................................................................... 16-6
Object Access Not By PUBLIC Report .................................................................................. 16-6
Direct Object Privileges Report.............................................................................................. 16-6
Object Dependencies Report .................................................................................................. 16-6
Database Account System Privileges Reports............................................................................. 16-6
Direct System Privileges By Database Account Report...................................................... 16-7
Direct and Indirect System Privileges By Database Account Report ............................... 16-7
Hierarchical System Privileges by Database Account Report........................................... 16-7
ANY System Privileges for Database Accounts Report ..................................................... 16-7
System Privileges By Privilege Report.................................................................................. 16-7
Sensitive Objects Reports ............................................................................................................... 16-7
Execute Privileges to Strong SYS Packages Report............................................................. 16-7
Access to Sensitive Objects Report ........................................................................................ 16-8
Public Execute Privilege To SYS PL/SQL Procedures Report .......................................... 16-8
Accounts with SYSDBA/SYSOPER Privilege Report ........................................................ 16-8
Privilege Management - Summary Reports ................................................................................ 16-9
Privileges Distribution By Grantee Report........................................................................... 16-9
Privileges Distribution By Grantee, Owner Report ............................................................ 16-9
Privileges Distribution By Grantee, Owner, Privilege Report .......................................... 16-9
Powerful Database Accounts and Roles Reports ....................................................................... 16-9
WITH ADMIN Privilege Grants Report............................................................................. 16-10
Accounts With DBA Roles Report....................................................................................... 16-10
Security Policy Exemption Report....................................................................................... 16-10
BECOME USER Report ......................................................................................................... 16-10
ALTER SYSTEM or ALTER SESSION Report ................................................................... 16-10
Password History Access Report......................................................................................... 16-11
WITH GRANT Privileges Report ........................................................................................ 16-11
Roles/Accounts That Have a Given Role Report.............................................................. 16-11
Database Accounts With Catalog Roles Report ................................................................ 16-11
AUDIT Privileges Report...................................................................................................... 16-11
OS Security Vulnerability Privileges Report...................................................................... 16-11
Initialization Parameters and Profiles Reports ......................................................................... 16-11
Security Related Database Parameters Report .................................................................. 16-11
xi
Resource Profiles Report....................................................................................................... 16-12
System Resource Limits Report ........................................................................................... 16-12
Database Account Password Reports ........................................................................................ 16-12
Database Account Default Password Report..................................................................... 16-12
Database Account Status Report ......................................................................................... 16-12
Security Audit Report: Core Database Audit Report .............................................................. 16-12
Other Security Vulnerability Reports......................................................................................... 16-13
Java Policy Grants Report ..................................................................................................... 16-13
OS Directory Objects Report ................................................................................................ 16-13
Objects Dependent on Dynamic SQL Report .................................................................... 16-13
Unwrapped PL/SQL Package Bodies Report.................................................................... 16-13
Username/Password Tables Report ................................................................................... 16-14
Tablespace Quotas Report .................................................................................................... 16-14
Non-Owner Object Trigger Report...................................................................................... 16-14
xii
Managing Users with Root Access to the Operating System ..................................................... C-6
Managing the Oracle Software Owner .......................................................................................... C-6
Managing SYSDBA Access .............................................................................................................. C-6
Managing SYSOPER Access ............................................................................................................ C-6
Guidelines for Using Oracle Database Vault in a Production Environment............................... C-6
Secure Configuration Guidelines ........................................................................................................ C-7
Security Considerations for the UTL_FILE and DBMS_FILE_TRANSFER Packages ............ C-8
Security Considerations for the Recycle Bin ................................................................................. C-9
Security Considerations for the CREATE ANY JOB and CREATE JOB Privileges............... C-10
Security Considerations for the CREATE EXTERNAL JOB Privilege .................................... C-10
Security Considerations for the LogMiner Packages................................................................. C-10
Security Considerations for the ALTER SYSTEM and ALTER SESSION Privileges ............ C-10
Security Considerations for Java Stored Procedures and Oracle Database Vault ................. C-11
Limiting Access to Java Stored Procedures.......................................................................... C-11
Securing Java Stored Procedures ........................................................................................... C-12
Step 1: Identify the Java Stored Procedures Created with Definer’s Rights .................. C-12
Step 2: Find the Java Stored Procedures That Access Realm-Protected Objects ............ C-12
Step 3: Create a Package to Wrap Procedures Accessing Realm-Protected Objects ...... C-12
Step 4: Identify the Java Stored Procedures Created with Invoker’s Rights ................... C-13
Step 5: Block the Execution of Java Stored Procedures ...................................................... C-13
Step 6: Verify Oracle Database Vault Protection for Java Stored Procedures................. C-13
Step 7: Secure the Invoker’s Rights for New Java Stored Procedures ............................. C-14
Security Considerations for External C Callouts and Oracle Database Vault........................ C-14
Securing EXECUTE ANY PROCEDURE by Limiting Access to External C Callouts ... C-14
Securing External C Callouts.................................................................................................. C-15
Step 1: Identifying the External C Callouts Created with Definer’s Rights ................... C-15
Step 2: Finding the External C Callouts That Access Realm-Protected Objects ............. C-15
Step 3: Creating a Package to Wrap C Callouts That Access Realm-Protected Objects C-15
Step 4: Identifying the External C Callouts Created with Invoker’s Rights.................... C-16
Step 5: Blocking Execution of External C Callouts.............................................................. C-16
Step 6: Verifying Oracle Database Vault Protection for External C Callouts.................. C-16
Step 7: Securing Invoker’s Rights for New External C Callouts ....................................... C-17
Index
xiii
List of Examples
4–1 Unauthorized User Trying to Create a Table.......................................................................... 4-9
4–2 Unauthorized User Trying to Use the DELETE ANY TABLE Privilege.......................... 4-10
4–3 Authorized User Performing DELETE Operation .............................................................. 4-10
7–1 Using DVSYS.GET_FACTOR to Retrieve a Factor ............................................................. 7-16
13–1 Creating a Realm Using DVSYS.DBMS_MACUTL Constants.......................................... 13-4
13–2 Creating a Rule Set Using DVSYS.DBMS_MACUTL Constants ...................................... 13-5
13–3 Creating a Factor Using DVSYS.DBMS_MACUTL Constants.......................................... 13-5
C–1 Creating a Command Rule to Deny Access to CREATE DATABASE LINK.................... C-8
C–2 Creating a Command Rule to Enable Access to CREATE DATABASE LINK ................. C-8
C–3 Command Rules to Disable and Enable Access to CREATE DIRECTORY ...................... C-9
C–4 Adding Rules to the Existing ALTER SYSTEM Command Rule...................................... C-11
C–5 Query to Identify Java Stored Procedures with Definers Rights ..................................... C-12
C–6 Creating a PL/SQL Wrapper ................................................................................................. C-13
C–7 Identifying Java Stored Procedures with Invoker’s Rights ............................................... C-13
C–8 Testing Oracle Database Vault Protection for Java Stored Procedures............................ C-14
C–9 Identifying External C Callouts That Are Wrapped by PL/SQL Packages .................... C-15
C–10 Creating a PL/SQL Wrapper ................................................................................................. C-15
C–11 Identifying External C Callouts That Are Wrapped by PL/SQL Packages .................... C-16
C–12 Testing Oracle Database Security for an External C Callout ............................................. C-16
xiv
List of Figures
1–1 Oracle Database Vault Security ................................................................................................ 1-6
3–1 Oracle Database Vault Administrator Home Page ................................................................ 3-5
4–1 How Authorizations Work for Realms and Realm Owners.............................................. 4-10
9–1 Encrypted Data and Oracle Database Vault ........................................................................... 9-5
10–1 Hierarchy of Oracle Database Vault Roles........................................................................... 10-3
xv
List of Tables
1–1 Regulations That Address Potential Security Threats.......................................................... 1-5
2–1 Modified Database Initialization Parameter Settings ........................................................... 2-1
2–2 Privileges Oracle Database Vault Revokes............................................................................. 2-4
2–3 Privileges Oracle Database Vault Prevents ............................................................................ 2-4
4–1 Reports Related to Realms..................................................................................................... 4-12
4–2 Data Dictionary Views Used for Realms ............................................................................. 4-13
5–1 Reports Related to Rule Sets.................................................................................................. 5-20
5–2 Data Dictionary Views Used for Rules and Rule Sets ....................................................... 5-20
6–1 Default Command Rules........................................................................................................... 6-2
6–2 Reports Related to Command Rules ....................................................................................... 6-9
7–1 Reports Related to Factors and Their Identities ................................................................. 7-29
7–2 Data Dictionary Views Used for Factors and Factor Identities........................................ 7-30
8–1 Reports Related to Secure Application Roles ........................................................................ 8-9
9–1 Reports Related to Database Vault and Oracle Label Security Integration.................... 9-12
9–2 Data Dictionary Views Used for Oracle Label Security .................................................... 9-13
10–1 Privileges of Oracle Database Vault Roles .......................................................................... 10-3
10–2 Database Accounts Used by Oracle Database Vault ......................................................... 10-9
10–3 Model Oracle Database Vault Database Accounts........................................................... 10-10
11–1 DVSYS.DBMS_MACADM Realm Configuration Procedures ......................................... 11-2
11–2 ADD_AUTH_TO_REALM Parameters ............................................................................... 11-2
11–3 ADD_OBJECT_TO_REALM Parameters............................................................................. 11-4
11–4 CREATE_REALM Parameters .............................................................................................. 11-5
11–5 DELETE_AUTH_FROM_REALM Parameters ................................................................... 11-6
11–6 DELETE_OBJECT_FROM_REALM Parameters ................................................................ 11-7
11–7 DELETE_REALM Parameter ................................................................................................ 11-8
11–8 DELETE_REALM_CASCADE Parameter ........................................................................... 11-8
11–9 RENAME_REALM Parameters ............................................................................................ 11-9
11–10 UPDATE_REALM Parameters ............................................................................................. 11-9
11–11 UPDATE_REALM_AUTH Parameters ............................................................................. 11-11
11–12 DVSYS.DBMS_MACADM Rule Set Configuration Procedures .................................... 11-12
11–13 ADD_RULE_TO_RULE_SET Parameters ......................................................................... 11-13
11–14 CREATE_RULE Parameters ................................................................................................ 11-14
11–15 CREATE_RULE_SET Parameters ....................................................................................... 11-15
11–16 DELETE_RULE Parameter .................................................................................................. 11-17
11–17 DELETE_RULE_FROM_RULE_SET Parameters ............................................................. 11-17
11–18 DELETE_RULE_SET Parameter ......................................................................................... 11-18
11–19 RENAME_RULE Parameters .............................................................................................. 11-18
11–20 RENAME_RULE_SET Parameters ..................................................................................... 11-19
11–21 UPDATE_RULE Parameters ............................................................................................... 11-20
11–22 UPDATE_RULE_SET Parameters ...................................................................................... 11-21
11–23 DVSYS.DBMS_MACADM Command Rule Configuration Procedures ...................... 11-22
11–24 CREATE_COMMAND_RULE Parameters....................................................................... 11-23
11–25 DELETE_COMMAND_RULE Parameters ....................................................................... 11-24
11–26 UPDATE_COMMAND_RULE Parameters ...................................................................... 11-25
11–27 DVSYS.DBMS_MACADM Factor Configuration Procedures ....................................... 11-26
11–28 ADD_FACTOR_LINK Parameters..................................................................................... 11-27
11–29 ADD_POLICY_FACTOR Parameters ................................................................................ 11-28
11–30 CHANGE_IDENTITY_FACTOR Parameters................................................................... 11-28
11–31 CHANGE_IDENTITY_VALUE Parameters ..................................................................... 11-29
11–32 CREATE_DOMAIN_IDENTITY Parameters.................................................................... 11-30
11–33 CREATE_FACTOR Parameters .......................................................................................... 11-31
11–34 CREATE_FACTOR_TYPE Parameters .............................................................................. 11-34
11–35 CREATE_IDENTITY Parameters ....................................................................................... 11-34
xvi
11–36 CREATE_IDENTITY_MAP Parameters ............................................................................ 11-35
11–37 DELETE_FACTOR Parameter ............................................................................................ 11-36
11–38 DELETE_FACTOR_LINK Parameters............................................................................... 11-37
11–39 DELETE_FACTOR_TYPE Parameters............................................................................... 11-37
11–40 DELETE_IDENTITY Parameters ........................................................................................ 11-38
11–41 DELETE_IDENTITY_MAP Parameters............................................................................. 11-38
11–42 DROP_DOMAIN_IDENTITY Parameters ........................................................................ 11-39
11–43 GET_INSTANCE_INFO Parameter ................................................................................... 11-40
11–44 GET_SESSION_INFO Parameter........................................................................................ 11-40
11–45 RENAME_FACTOR Parameters ........................................................................................ 11-41
11–46 RENAME_FACTOR_TYPE Parameters ............................................................................ 11-41
11–47 UPDATE_FACTOR .............................................................................................................. 11-42
11–48 UPDATE_FACTOR_TYPE Parameters ............................................................................. 11-45
11–49 UPDATE_IDENTITY Parameters....................................................................................... 11-45
11–50 DVSYS.DBMS_MACADM Secure Application Role Configuration Procedures........ 11-46
11–51 CREATE_ROLE Parameters................................................................................................ 11-47
11–52 DELETE_ROLE Parameter .................................................................................................. 11-47
11–53 RENAME_ROLE Parameters .............................................................................................. 11-48
11–54 UPDATE_ROLE Parameters ............................................................................................... 11-48
11–55 DVSYS.DBMS_MACADM Oracle Label Security Configuration Procedures............. 11-49
11–56 CREATE_MAC_POLICY Parameters ................................................................................ 11-50
11–57 Oracle Label Security Merge Algorithm Codes................................................................ 11-50
11–58 CREATE_POLICY_LABEL Parameters............................................................................. 11-51
11–59 DELETE_MAC_POLICY_CASCADE Parameter............................................................. 11-52
11–60 DELETE_POLICY_FACTOR Parameters .......................................................................... 11-53
11–61 DELETE_POLICY_LABEL Parameters ............................................................................. 11-53
11–62 UPDATE_MAC_POLICY .................................................................................................... 11-54
12–1 DVSYS.DBMS_MACSEC_ROLES Oracle Label Security Configuration Procedures... 12-1
12–2 CAN_SET_ROLE Parameter ................................................................................................. 12-2
12–3 SET_ROLE Parameter............................................................................................................. 12-2
13–1 DVSYS.DBMS_MACUTL Listing of Constants .................................................................. 13-1
13–2 DVSYS.DBMS_MACUTL Utility Functions........................................................................ 13-5
13–3 CHECK_DVSYS_DML_ALLOWED Parameter ................................................................. 13-6
13–4 GET_CODE_VALUE Parameters ......................................................................................... 13-7
13–5 GET_SECOND Parameter ..................................................................................................... 13-8
13–6 GET_MINUTE Parameter...................................................................................................... 13-8
13–7 GET_HOUR Parameter .......................................................................................................... 13-9
13–8 GET_DAY Parameter ........................................................................................................... 13-10
13–9 GET_MONTH Parameter .................................................................................................... 13-10
13–10 GET_YEAR Parameter ......................................................................................................... 13-11
13–11 IS_ALPHA Parameter .......................................................................................................... 13-11
13–12 IS_DIGIT Parameter ............................................................................................................. 13-12
13–13 IS_DVSYS_OWNER Parameter .......................................................................................... 13-13
13–14 USER_HAS_OBJECT_PRIVILEGE Parameters ................................................................ 13-14
13–15 USER_HAS_ROLE Parameters ........................................................................................... 13-15
13–16 USER_HAS_ROLE_VARCHAR Parameters .................................................................... 13-16
13–17 USER_HAS_SYSTEM_PRIVILEGE Parameters ............................................................... 13-17
14–1 DVSYS Functions .................................................................................................................... 14-1
14–2 SET_FACTOR Parameters ..................................................................................................... 14-2
14–3 GET_FACTOR Parameter...................................................................................................... 14-2
14–4 GET_TRUST_LEVEL Parameter........................................................................................... 14-3
14–5 GET_TRUST_LEVEL_FOR_IDENTITY Parameters .......................................................... 14-4
14–6 ROLE_IS_ENABLED Parameter........................................................................................... 14-4
14–7 GET_FACTOR_LABEL Parameters ..................................................................................... 14-5
14–8 Installed Oracle Database Vault Factor Functions ............................................................. 14-6
xvii
14–9 Installed Oracle Database Vault PL/SQL Rule Set Functions........................................ 14-14
14–10 Oracle Database Vault Administrator and Run-Time PL/SQL Packages.................... 14-18
A–1 Oracle Database Vault Audit Trail Format ........................................................................... A-2
A–2 Audit Policy Settings Oracle Database Vault Adds to Oracle Database........................... A-7
C–1 Example Separation of Duty Matrix....................................................................................... C-3
C–2 Example Application Protection Matrix................................................................................ C-4
C–3 Trusted Oracle Database Vault Roles and Privileges .......................................................... C-5
xviii
Preface
Audience
This document is intended for security managers, audit managers, label
administrators, and Oracle database administrators (DBAs) who are involved in the
configuration of Oracle Database Vault.
Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation
accessible to all users, including users that are disabled. To that end, our
documentation includes features that make information available to users of assistive
technology. This documentation is available in HTML format, and contains markup to
facilitate access by the disabled community. Accessibility standards will continue to
evolve over time, and Oracle is actively engaged with other market-leading
technology vendors to address technical obstacles so that our documentation can be
accessible to all of our customers. For more information, visit the Oracle Accessibility
Program Web site at http://www.oracle.com/accessibility/.
xix
Deaf/Hard of Hearing Access to Oracle Support Services
To reach Oracle Support Services, use a telecommunications relay service (TRS) to call
Oracle Support at 1.800.223.1711. An Oracle Support Services engineer will handle
technical issues and provide customer support according to the Oracle service request
process. Information about TRS is available at
http://www.fcc.gov/cgb/consumerfacts/trs.html, and a list of phone
numbers is available at http://www.fcc.gov/cgb/dro/trsphonebk.html.
Related Documents
For more information refer to the following documents:
■ Oracle Database Vault Release Notes
■ Oracle Database Vault Installation Guide
■ Oracle Label Security Administrator's Guide
■ Oracle Database Administrator's Guide
■ Oracle Database SQL Reference
To download free release notes, installation documentation, updated versions of this
guide, white papers, or other collateral, visit the Oracle Technology Network (OTN).
You must register online before using OTN; registration is free and can be done at
http://www.oracle.com/technology/membership/
If you already have a user name and password for OTN, then you can go directly to
the documentation section of the OTN Web site at
http://www.oracle.com/technology/documentation/
For OTN information specific to Oracle Database Vault, visit
http://www.oracle.com/technology/deploy/security/database-securi
ty/database-vault/index.html
For frequently asked questions about Oracle Database Vault, visit
http://www.oracle.com/technology/deploy/security/database-securi
ty/database-vault/dbv_faq.html
Conventions
The following text conventions are used in this document:
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated
with an action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for
which you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code
in examples, text that appears on the screen, or text that you enter.
xx
1
Introducing Oracle Database Vault
1
In general, the first step you take is to create a realm composed of the database
schemas or database objects that you want to secure. You can further secure the realm
by creating rules, command rules, factors, identities, rule sets, and secure application
roles. In addition, you can run reports on the activities these components monitor and
protect. Chapter 3, "Getting Started with Oracle Database Vault" provides a simple
tutorial that will familiarize you with basic Oracle Database Vault functionality.
Chapter 16, "Oracle Database Vault Reports" provides more information about how
you can run reports to check the configuration and other activities that Oracle
Database Vault performs.
With Oracle Database Vault, you can create a command rule to prevent this user from
making such modifications by limiting his or her usage of the ALTER SYSTEM
SWITCH LOGFILE statement. Furthermore, you can attach rules to the command rule
to restrict activity further, such as limiting the statement’s execution in the following
ways:
■ By time (for example, only during 4 p.m. and 5 p.m. on Friday afternoons)
■ By local access only, that is, not remotely
■ By IP address (for example, allowing the action to only a specified range of IP
addresses)
In this way, you can carefully control and protect your system. You can disable and
reenable command rules when you need to, and easily maintain them from one central
location using Oracle Database Vault Administrator.
Privileges That Are Revoked or Prevented from Existing Users and Roles
When you install Oracle Database Vault, it revokes a set of privileges from several
Oracle Database-supplied roles, as part of the separation of duty enhancement.
Table 2–2 lists privileges that Oracle Database Vault revokes from existing users and
roles. Be aware that if you disable Oracle Database Vault, these privileges remain
revoked. If your applications depend on these privileges, then grant them to
application owner directly.
Table 2–3 lists privileges that Oracle Database Vault prevents. When Oracle Database
Vault is enabled, users who have the Database Vault Account Manager role (DV_
ACCTMGR) have the privileges listed in this table. If you disable Oracle Database Vault,
users SYS and SYSTEM have these privileges.
See Also:
■ Table 10–1, " Privileges of Oracle Database Vault Roles" on
page 10-3
■ "Oracle Database Vault Account Manager Role, DV_ACCTMGR"
on page 10-6
4. In the Oracle Enterprise Manager Database Home page (Database Home page),
select the Targets subpage.
5. Select the Databases subpage.
6. In the Databases page, select the link for the Oracle Database Vault-protected
database to which you want to connect.
The home page for the database instance appears.
7. In the Home page, click Server to display the Server subpage.
8. Under Security, select Database Vault.
The Oracle Database Vault login page appears.
9. Enter the following information:
■ Username: Enter the name of a user who has been granted the appropriate
Oracle Database Vault role:
– Creating and propagating Database Vault policies: DV_OWNER or DV_
ADMIN
– Viewing Database Vault alerts and reports: DV_OWNER, DV_ADMIN, or DV_
SECANALYST
– Creating and managing user accounts and roles: DV_ACCTMGR
The Oracle Database Vault roles do not need any additional privileges (such as
SELECT ANY DICTIONARY) to use Grid Control.
See "About Oracle Database Vault Roles" on page 10-2 for more information.
■ Password: Enter your password.
■ Connect As: Select Normal from the list.
■ Save as Preferred Credential check box: Select this check box if you want
these credentials to be automatically filled in for you the next time that this
page appears.
10. Click the Login button.
In this specification:
■ host_name: The server where you installed Oracle Database Vault
■ port: The Oracle Enterprise Manager Console HTTP port number
For example:
http://myserver:1158/dva
If you must start the dbconsole process, then run the following command:
./emctl start dbconsole
■ Windows: In the Administrative Services, select the Services utility, and then
right-click the OracleDBConsolesid service. If necessary, select Start from the
menu to start the database console.
Log files are in the following directory:
$ORACLE_HOME/sysman/log
2. When the login page appears, log in by using the appropriate Oracle Database
Vault account.
– Creating and managing Database Vault policies: DV_OWNER or DV_ADMIN
– Viewing Database Vault reports: DV_OWNER, DV_ADMIN, or DV_SECANALYST
– Creating and managing user accounts and roles: DV_ACCTMGR
See "About Oracle Database Vault Roles" on page 10-2 for more information.
By default, you cannot log in to Oracle Database Vault Administrator by using the
SYS, SYSTEM, or other non-Oracle Database VAult administrative accounts.
Figure 3–1 shows the Oracle Database Vault Administrator home page, which appears
after you log in.
In this tutorial:
■ Step 1: Adding the SYSTEM User to the Data Dictionary Realm
■ Step 2: Log On as SYSTEM to Access the HR Schema
■ Step 3: Create a Realm
■ Step 4: Secure the EMPLOYEES Table in the HR Schema
■ Step 5: Create an Authorization for the Realm
■ Step 6: Test the Realm
■ Step 7: Run a Report
■ Step 8: Remove the Components for This Tutorial
SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM < 10;
9 rows selected.
If the HR schema is locked and expired, log in to SQL*Plus as the Database Vault
Account Manager and unlock and unexpire the account. For example:
sqlplus dbvacctmgr
Enter password: password
3. In the Create Realm Secured Object page, enter the following settings:
■ Object Owner: Select HR from the list.
■ Object Type: Select TABLE from the list.
■ Object Name: Enter EMPLOYEES.
4. Click OK.
5. In the Edit Realm: HR Realm page, click OK.
Do not exit SQL*Plus; you will need it for Step 6: Test the Realm, when you test the
realm.
At this stage, even though SEBASTIAN has the SELECT ANY TABLE privilege, he
cannot select from the HR.EMPLOYEES table because it is protected by a realm.
Next, authorize user SEBASTIAN to have access to the HR Realm as follows:
1. In the Realms page of Database Vault Administrator, select the HR Realm in the
list of realms, and then click Edit.
2. In the Edit Realm: HR Realm page, scroll down to Realm Authorizations and then
click Create.
3. In the Create Realm Authorization page, under Grantee, select
SEBASTIAN[USER] from the list.
If SEBASTIAN does not appear in the list, select the Refresh button in your
browser.
SEBASTIAN is the only user who has access to the EMPLOYEES table in the HR
schema.
SYSTEM no longer has access to the salary information in the EMPLOYEES table.
However, user SEBASTIAN does have access to this information. Try the following:
CONNECT SEBASTIAN
Enter password: password
9 rows selected.
prohibits any user who is not authorized to the realm to use system privileges to
access the secured accounting data.
You can run reports on realms that you create in Oracle Database Vault. See "Related
Reports and Data Dictionary Views" on page 4-12 for more information.
This chapter explains how to configure realms by using Oracle Database Vault
Administrator. To configure realms by using the PL/SQL interfaces and packages
provided by Oracle Database Vault, refer to the following chapters:
■ Chapter 11, "Using the DVSYS.DBMS_MACADM Package"
■ Chapter 14, "Using the Oracle Database Vault PL/SQL Interfaces"
Default Realms
Oracle Database Vault provides the following default realms:
■ Database Vault Account Management: Defines the realm for the administrators
who manage and create database accounts and database profiles.
■ Oracle Data Dictionary: Defines the realm for the following Oracle Catalog
schemas.
This realm also controls the ability to grant system privileges and database
administrator roles.
■ Oracle Database Vault: Defines the realm for the Oracle Database Vault schemas
(DVSYS, DVF, and LBACSYS), such as configuration and roles information.
■ Oracle Enterprise Manager: Defines the realm for Oracle Enterprise Manager
accounts (SYSMAN and DBSNMP) to access database information
Creating a Realm
In general, to enable realm protection, you first create the realm itself, and then you
edit the realm to include realm secured objects, roles, and authorizations. "Guidelines
for Designing Realms" on page 4-11 provides advice on creating realms.
To create a realm:
1. Log in to Oracle Database Vault Administrator as a user who has been granted the
DV_OWNER or DV_ADMIN role.
"Starting Oracle Database Vault" on page 3-1 explains how to log in.
2. In the Administration page, under Database Vault Feature Administration, click
Realms.
3. In the Realms page, click Create.
4. In the Create Realm page, enter the following settings:
■ Under General:
– Name: Enter a name for the realm. It can contain up to 90 characters in
mixed-case. This attribute is mandatory.
Oracle suggests that you use the name of the protected application as the
realm name (for example, hr_app for an human resources application).
– Description: Enter a brief description of the realm. The description can
contain up to 1024 characters in mixed-case. This attribute is optional.
You may want to include a description the business objective of the given
application protection and document all other security policies that com-
pliment the realm's protection. Also document who is authorized to the
realm, for what purpose, and any possible emergency authorizations.
– Status: Select either Enabled or Disabled to enable or disable the realm
during run time. A realm is enabled by default. This attribute is
mandatory.
■ Under Audit Options, select one of the following:
– Audit Disabled: Does not create an audit record.
– Audit On Failure: Default. Creates an audit record when a realm violation
occurs (for example, when an unauthorized user tries to modify an object
that is protected by the realm).
– Audit On Success or Failure: Creates an audit record for any activity that
occurs in the realm, including both authorized and unauthorized
activities.
For additional audit options, see "CREATE_REALM Procedure" on page 11-5.
Oracle Database Vault writes the audit trail to the DVSYS.AUDIT_TRAIL$
system file, described in Appendix A, "Auditing Oracle Database Vault."
5. Click OK.
The Realms Summary page appears, listing the new realm that you created.
After you create a new realm, you are ready to add schema and database objects to the
realm for realm protection, and to authorize users and roles to access the realm. To do
so, you edit the new realm and then add its objects and its authorized users.
See Also:
■ "Editing a Realm" on page 4-3
■ "Creating Realm-Secured Objects" on page 4-4
■ "Defining Realm Authorization" on page 4-5
Editing a Realm
To edit a realm:
1. In the Oracle Database Vault Administration page, select Realms.
2. In the Realm page, select the realm that you want to edit.
3. Click Edit.
4. Modify the realm as necessary, and then click OK.
See Also:
■ "Creating a Realm" on page 4-2 to modify the settings created for a
new realm
■ "Creating Realm-Secured Objects" on page 4-4 to add or modify
realm secured objects
■ "Defining Realm Authorization" on page 4-5 to add or modify the
realm authorizations
beginning with the characters EMP_). Nor can you use the wildcard character
to select multiple roles; you must enter role names individually. This attribute
is mandatory.
By default, the Object Name field contains the % wildcard character to
encompass the entire schema specified for Object Type and Object Owner.
Note that the % wildcard character applies to objects that do not yet exist and
currently existing objects. Note also that the % wildcard character does not
apply to roles. If you want to include multiple roles, you must specify each
role separately.
5. Click OK.
For example, to secure the EMPLOYEES table in the HR schema, you would enter the
following settings in the Create Realm Secured Object page:
■ Object Owner: HR
■ Object Type: TABLE
■ Object Name: EMPLOYEES
■ Realm owners cannot add other users to their realms as owners or participants.
Only users who have the DV_OWNER or DV_ADMIN role are allowed to add users as
owners or participants to a realm.
■ A realm owner, but not a realm participant, can grant or revoke realm secured
database roles to anyone.
■ A user can be granted either as a realm owner or a realm participant, but not both.
However, you can update the authorization options of a realm authorization.
Use the Edit Realm page to manage realm authorizations. You can create, edit, and
remove realm authorizations. To track configuration information for the authorization
of a realm, see "Realm Authorization Configuration Issues Report" on page 16-3.
To create a realm authorization:
1. In the Oracle Database Vault Administration page, select Realms.
2. In the Realms page, select the realm you want, and then select Edit.
3. In the Edit Realm page, under Realm Authorizations, do one of the following:
■ To create a new realm authorization, select Create.
■ To modify an existing realm authorization, select it from the list and then
select Edit.
4. Click Create under Realm Authorizations in the Edit Realm page.
5. In the Create Realm Authorization page, enter the following settings:
■ Grantee: From the list, select the Oracle database account or role to whom you
want to grant the realm authorization. This attribute is mandatory.
This list shows all accounts and roles in the system, not just accounts with
system privileges.
You cannot select yourself (that is, the user logged in) or any account that has
been granted the DV_ADMIN, DV_OWNER, or DV_SECANALYST roles from this
list.
■ Authorization Type: Select either of the following. This attribute is mandatory.
– Participant: Default. This account or role provides system or direct
privileges to access, manipulate, and create objects protected by the realm,
provided these rights have been granted using the standard Oracle
Database privilege grant process. A realm can have multiple participants.
– Owner: This account or role has the same privileges as the realm
participant, plus the authorization to grant or revoke realm-secured
database roles. The realm owner can grant privileges on realm-protected
objects to other users. A realm can have multiple owners.
■ Authorization Rule Set: Select from the available rule sets that have been
created for your site. You can select only one rule set, but the rule set can have
multiple rules.
See "Creating a Rule to Add to a Rule Set" on page 5-5 for more information
about defining rules to govern the realm authorization.
Any auditing and custom event handling associated with the rule set occurs as
part of the realm authorization processing.
6. Click OK.
Deleting a Realm
Before you delete a realm, you can locate the various references to it by querying the
realm-related Oracle Database Vault views. See "Oracle Database Vault Data
Dictionary Views" on page 10-11 for more information.
To delete a realm:
1. In the Oracle Database Vault Administration page, select Realms.
2. In the Realms page, select the realm you want to delete, and then select Remove.
3. In the Confirmation page, click Yes.
Oracle Database Vault deletes the configuration for a realm (header, secure objects,
and authorizations). It does not delete the rule sets within the realm.
control model in the existing Oracle database. It functions as a layer on top of this
model for both realms and command rules.
Note the following:
■ For invoker’s right procedures that access realm protected objects, the invoker of
the procedure must be authorized to the realm.
■ The execution of PL/SQL procedures that are owned by SYS are subject to the
Oracle Data Dictionary realm enforcement. (The Oracle Data Dictionary realm is
one of the default realms provided by Oracle Database Vault. See "Default Realms"
on page 4-2 for more information.) However, the session must have EXECUTE
privilege on the procedure as normally required in the Oracle database.
■ Java stored procedures are not protected by a realm, but the data objects that a
Java stored procedure accesses can be protected by the realm. You should create
the Java stored procedure with invoker’s rights so that someone who is really
authorized can see the protected data.
As you can see, the attempt by the unauthorized user fails. Unauthorized use of
system privileges such as SELECT ANY TABLE, CREATE ANY TABLE, DELETE ANY
TABLE, UPDATE ANY TABLE, INSERT ANY TABLE, CREATE ANY INDEX, and
others results in failure. Example 4–2 shows what happens when an unauthorized
database account tries to use his DELETE ANY TABLE system privilege to delete an
existing record, the database session returns the following error.
Example 4–2 Unauthorized User Trying to Use the DELETE ANY TABLE Privilege
DELETE FROM HR.employees WHERE empno = 8002;
Realms do not affect direct privileges on objects. For example, a user granted delete
privileges to the HR.EMPLOYEES table can successfully delete records without
requiring realm authorizations. Therefore, realms should minimally affect normal
business application usage for database accounts.
Example 4–3 shows how an authorized user can perform standard tasks allowed
within the realm.
1 row deleted.
Figure 4–1 How Authorizations Work for Realms and Realm Owners
■ If you want to grant ANY privileges to new users, Oracle recommends that you
add a database administrative user to the data dictionary realm so that this user
can grant other users ANY privileges, if they need them. For example, using a
named account to perform the GRANT of the ANY operations enables you to audit
these operations, which creates an audit trail for accountability.
■ Sometimes you must perform imports and exports of data protected by a realm
(for example, when using Oracle Data Pump). As the realm owner, perform the
following steps. Be sure to audit the import and export activity using the
techniques described in this chapter, whenever possible.
1. Add the account that will perform the imports and exports to the realm and
assign it as the realm participant of the Oracle Database Vault Realm. Have it
use this status during the time frame of the data transfer, with a rule set
governing the authorization that will perform the auditing.
2. Add the account that will perform the imports and exports to be the realm
participant of the realm protecting the data for the time frame of the data
transfer with a rule set governing the authorization to perform auditing.
3. For an Oracle Data Pump import, grant the BECOME USER privilege to the
user performing the import for the duration of the Data Pump operation. If the
schema accounts being imported do not exist in the target database, then grant
the DV_ACCTMGR role to SYSTEM for the time frame that the import will occur.
When the import is complete, you can revoke the grants from both users.
Table 4–2 lists data dictionary views that provide information about existing realms.
You can run reports on the rule sets that you create in Oracle Database Vault. See
"Related Reports and Data Dictionary Views" on page 5-20 for more information.
This chapter explains how to configure rule sets by using Oracle Database Vault
Administrator. To configure rule sets by using the PL/SQL interfaces and packages
provided by Oracle Database Vault, refer to the following chapters:
■ Chapter 11, "Using the DVSYS.DBMS_MACADM Package"
■ Chapter 14, "Using the Oracle Database Vault PL/SQL Interfaces"
General
Enter the following settings:
■ Name: Enter a name for the rule set. It can contain up to 90 characters in
mixed-case. Spaces are allowed. This attribute is mandatory.
Oracle suggests that you start the name with a noun and complete it with the
realm or command rule name to which the rule set is attached. For example:
Limit SQL*Plus access
■ Description: Enter a description of the functionality for the rule set. It can have up
to 1024 characters in mixed-case. This attribute is optional.
You may want to document the business requirement of the rule set. For example:
Rule to limit access to SQL*Plus
■ Status: Select either Enabled or Disabled to enable or disable the rule set during
run time. Rule sets are enabled by default. This attribute is mandatory.
■ Evaluation Options: If you plan to assign multiple rules to a rule set, select one of
the following settings:
– All True: Default. All rules in the rule set must evaluate to true for the rule set
itself to evaluate to true.
– Any True: At least one rule in the rule set must evaluate to true for the rule set
itself to evaluate to true.
Audit Options
Select from the following options to generate an audit trail for the rule set. Oracle
Database Vault writes the audit trail to the DVSYS.AUDIT_TRAIL$ system file,
described in Appendix A, "Auditing Oracle Database Vault."
This attribute is mandatory. The settings are:
■ Audit Disabled: Does not create an audit record under any circumstances.
■ Audit On Failure: Default. Creates an audit record when the rule set evaluates to
false or one of the associated rules contains an invalid PL/SQL expression.
■ Audit On Success or Failure: Creates an audit record whenever a rule set is
evaluated.
For additional rule audit options, see "CREATE_RULE_SET Procedure" on page 11-14.
The Oracle Database Vault audit trail, written to the DVSYS.AUDIT_TRAIL$ system
table, contains the fields RULE_SET_NAME and RULE_SET_ID. These fields are
populated when a rule set is associated with a realm authorization and a command
authorization, and the rule set is configured to audit under some circumstances. See
Appendix A, "Auditing Oracle Database Vault," for more information.
EXECUTE privilege on the object. The procedure signature can be in one of the
following two forms:
– PROCEDURE my_ruleset_handler(p_ruleset_name IN VARCHAR2, p_
ruleset_rules IN BOOLEAN): Use this form when the name of the rule set
and its return value are required in the handler processing.
– PROCEDURE my_ruleset_handler: Use this form when the name of the rule
set and its return value are not required in the handler processing.
When you define the expression in the user interface that uses one of these two
formats, put the expression in the following form:
myschema.my_ruleset_handler
After you create a rule set, you are ready to create rules to attach to the rule set. To do
so, you edit the new rule set, and then define its rules.
See Also:
■ "Configuring or Editing a Rule Set" on page 5-5
■ "Creating a Rule to Add to a Rule Set" on page 5-5
See Also:
■ "Creating a Rule Set" on page 5-2 to modify the settings created for
a new rule set
■ Creating a Rule to Add to a Rule Set on page 5-5 to add or modify
rule for the rule set
Because rules do not have a Description field, make the name explicit but be
sure to not exceed over 90 characters.
■ Rule Expression: Enter a PL/SQL expression that fits the following
requirements:
– It is valid in a SQL WHERE clause.
– It can be a freestanding and valid PL/SQL Boolean expression such as the
following:
TO_CHAR(SYSDATE,'HH24') = '12'
For example, suppose you have created the following the rule expression:
SYS_CONTEXT('USERENV','SESSION_USER') != 'TSMITH'
See the following sections for functions that you can use in the rule set
expression:
– "Oracle Database Vault PL/SQL Rule Functions" on page 14-14
– Chapter 11, "Using the DVSYS.DBMS_MACADM Package"
– Chapter 13, "Using the DVSYS.DBMS_MACUTL Package"
For additional examples of expressions, see the rule defined in the rule sets
provided with Oracle Database Vault. "Default Rule Sets" on page 5-2 lists
these rule sets.
5. Click OK.
The Edit Rule Set page appears. By default, the new rule is added to the rule set.
Editing a Rule
The changes you make to a rule apply to all rule sets that include the rule.
To edit a rule:
1. In the Edit Rule Set page, scroll to Rules Associated To The Rule Set.
2. Select the rule you want to edit and click Edit.
3. In the Edit Rule page, modify the rule as necessary.
4. Click OK.
You can create it using a factor function. See "Oracle Database Vault PL/SQL Factor
Functions" on page 14-6 for more information. Chapter 7 explains how to create
factors.
If the current user is a privileged user, then the system evaluates the rule to true
without evaluating additional_rule. If the current user is not a privileged user,
then the evaluation of the rule depends on the evaluation of additional_rule.
@?/rdbms/admin/utlmail.sql
@?/rdbms/admin/prvtmail.plb
The UTL_MAIL package enables you to manage e-mail. See Oracle Database PL/SQL
Packages and Types Reference for more information about UTL_MAIL.
2. Check the current value of the SMTP_OUT_SERVER parameter, and make a note of
this value so that you can restore it when you complete this tutorial.
For example:
SHOW PARAMETER SMTP_OUT_SERVER
Replace imap_mail_server with the name of your SMTP server, which you can
find in the account settings in your e-mail tool. Enclose these settings in quotation
marks. For example:
ALTER SYSTEM SET SMTP_OUT_SERVER="my_imap_mail_server.example.com"
4. Connect as SYS using the SYSOPER privilege and then restart the database.
CONNECT SYS/AS SYSOPER
Enter password: password
SHUTDOWN IMMEDIATE
STARTUP
The UTL_TCP, UTL_SMTP, and UTL_MAIL PL/SQL packages are used by the
e-mail security alert that you will create.
2. Connect as the Oracle Database Vault DV_OWNER or DV_ADMIN user.
For example:
CONNECT dbvowner
Enter password: password
END email_alert;
/
Step 3: Create a Rule Set and a Command Rule to Use the E-Mail Security Alert
1. As the Oracle Database Vault user, create the following rule set:
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE_SET(
rule_set_name => 'ALTER TABLE Command Security Policy',
description => 'This rule set allows ALTER TABLE only during the
maintenance period.',
enabled => 'Y',
eval_options => 1,
audit_options => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
fail_options => 2,
fail_message => '',
fail_code => NULL,
handler_options => DBMS_MACUTL.G_RULESET_HANDLER_FAIL,
handler => 'dbavowner.email_alert');
END;
/
Ensure that you use two single quotation marks instead of double quotation marks
for HH24, 14, and 15. You can double-check the system time on your computer by
issuing the following SQL statement:
SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;
TO
--
14
Later on, when you are satisfied that the rule works, you can update it to a time
when your site typically performs maintenance work (for example, between 7 p.m.
and 10 p.m) as follows:
BEGIN
DVSYS.DBMS_MACADM.UPDATE_RULE(
rule_name => 'Restrict Access to Maintenance Period',
rule_expr => 'TO_CHAR(SYSDATE,''HH24'') BETWEEN ''19'' AND ''22''');
END;
/
3. Add the Restrict Access to Maintenance Period rule to the ALTER TABLE
Command Security Policy rule set.
BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'ALTER TABLE Command Security Policy',
rule_name => 'Restrict Access to Maintenance Period');
END;
/
If the SCOTT account is locked and expired, then a user with the DV_ACCTMGR role
can unlock this account and create a new password as follows:
ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY password;
Replace password with a password that is secure. See Oracle Database Security
Guide for the minimum requirements for creating passwords.
2. As the user SCOTT, create a test table.
CREATE TABLE mytest (col1 number);
3. Change the system time on your computer to a time when the ALTER TABLE
Command Security Policy rule set takes place (for example, between 2 p.m. and 3
p.m).
UNIX: Log in as root and use the date command to set the time. For example,
assuming the date today is December 13, 2007, you would enter the following:
su root
Password: password
date 12131409
Windows: Double-click the clock icon, which is typically at the lower right corner
of the screen. In the Date and Time Properties window, set the time to 2 p.m., and
then click OK.
4. Try altering the my_test table.
ALTER TABLE mytest ADD (col2 number);
Table altered.
SCOTT should be able to alter the mytest table during this time.
5. Reset the system time to a time outside the Restrict Access to Maintenance Period
time.
6. Connect as SCOTT and try altering the my_test table again.
CONNECT SCOTT
Enter password: password
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-47400: Command Rule violation for alter table on SCOTT.MYTEST
ORA-06512: at "DVSYS.AUTHORIZE_EVENT", line 55
ORA-06512: at line 31
SCOTT cannot alter the mytest table. In a moment, you should receive an e-mail
with the subject header Table modification attempted outside
maintenance! and with a message similar to the following:
Realm violation occurred for the ALTER TABLE Command Security Policy rule set.
The time is: Wednesday 28 NOV, 2007 14:24:25
2. Enter the following commands in the order shown to delete the rule set
components.
EXEC DVSYS.DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('ALTER TABLE Command Security
Policy', 'Restrict Access to Maintenance Period');
5. Connect as SYS using the SYSDBA privilege and then revoke the EXECUTE
privilege on the UTL_TCP, UTL_SMTP, and UTL_MAIL PL/SQL packages from the
Oracle Database Vault Owner account.
For example:
REVOKE EXECUTE ON UTL_TCP FROM dbvowner;
REVOKE EXECUTE ON UTL_SMTP FROM dbvowner;
REVOKE EXECUTE ON UTL_MAIL FROM dbvowner;
SHUTDOWN IMMEDIATE
STARTUP
3. Connect as user SYS with the SYSDBA privilege and grant privileges to the
following users.
CONNECT SYS/AS SYSDBA
Enter password: password
v_session_number number := 0;
v_allow varchar2(10) := 'TRUE';
v_deny varchar2(10) := 'FALSE';
BEGIN
SELECT COUNT(*) INTO v_session_number
FROM SYS.V_$SESSION
WHERE USERNAME = 'PATCH_BOSS'; -- Enter the user name in capital letters.
IF v_session_number > 0
THEN RETURN v_allow;
ELSE
RETURN v_deny;
END IF;
END check_boss_logged_in;
/
Step 3: Create Rules, a Rule Set, and a Command Rule to Control the Users’ Access
Next, you must create two rules, a rule set to which you will add them, and a
command rule. The rule set triggers the check_boss_logged_in function when
user patch_user tries to logs in to the database.
To create the rules and rule set:
1. Create the Check if Boss Is Logged In rule, which checks that the patch_user
user is logged in to the database.
If the check_boss_logged_in function returns TRUE (that is, patch_boss is
logged in to another session), then patch_user can log in.
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check if Boss Is Logged In',
rule_expr => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''PATCH_USER'' and
DBVOWNER.check_boss_logged_in = ''TRUE'' ');
END;
/
Enter the user name, PATCH_USER, in upper-case letters, which is how the
SESSION_USER parameter stores it.
2. Create the Allow Connect for Other Database Users rule, which ensures that the
user logged in (patch_user) is not user patch_boss. It also enables all other
valid users to log in.
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Allow Connect for Other Database Users',
rule_expr => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') != ''PATCH_USER''
');
END;
/
COMMIT;
3. Create the Dual Connect for Boss and Patch rule set, and then add the two rules to
it.
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE_SET(
rule_set_name => 'Dual Connect for Boss and Patch',
description => 'Checks if both boss and patch users are logged in.',
enabled => 'Y',
eval_options => 2,
audit_options => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
fail_options => DBMS_MACUTL.G_RULESET_FAIL_SILENT,
fail_message =>'',
fail_code => NULL,
handler_options => DBMS_MACUTL.G_RULESET_HANDLER_OFF,
handler => ''
);
END;
/
BEGIN
DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Dual Connect for Boss and Patch',
rule_name => 'Check if Boss Is Logged In'
);
END;
/
BEGIN
DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Dual Connect for Boss and Patch',
rule_name => 'Allow Connect for Other Database Users'
);
END;
/
4. Create the following CONNECT command rule, which permits user patch_user
to connect to the database only if patch_boss is already logged in.
BEGIN
DVSYS.DBMS_MACADM.CREATE_COMMAND_RULE(
command => 'CONNECT',
rule_set_name => 'Dual Connect for Boss and Patch',
object_owner => '%',
object_name => '%',
enabled => 'Y');
END;
/
COMMIT;
ERROR:
ORA-47400: Command Rule violation for CONNECT on LOGON
User patch_user cannot log in until user patch_boss is already logged in.
This time, user patch_user is deemed a valid user, so now he can log in.
2. In the first shell, connect the DV_ACCTMGR user and remove the users you created.
CONNECT dbvacctmgr
Enter password: password
COMMIT;
4. Connect as user SYS with the SYSDBA privilege and revoke the following
privileges from the DV_OWNER user.
CONNECT SYS/AS SYSDBA
Enter password: password
■ You can nest rule expressions inside a single rule. This helps to achieve more
complex situations where you would need a logical AND for a subset of rules and a
logical OR with the rest of the rules. See the definition for the Is Corporate
Network During Maintenance rule set under "Tutorial: Creating an E-Mail Alert
for Security Violations" on page 5-9 for an example.
Table 5–2 lists data dictionary views that provide information about existing rules and
rule sets.
Table 5–2 Data Dictionary Views Used for Rules and Rule Sets
Data Dictionary View Description
"DBA_DV_RULE View" on page 10-23 Lists the rules that have been defined
"DBA_DV_RULE_SET View" on page 10-24 Lists the rules sets that have been created
"DBA_DV_RULE_SET_RULE View" on Lists rules that are associated with existing rule
page 10-25 sets
The following set of command rules helps you to achieve separation of duty for user
management:
■ ALTER PROFILE
■ ALTER USER
■ CREATE PROFILE
■ CREATE USER
■ DROP PROFILE
■ DROP USER
To grant a user the ability to use these commands, you can grant the user the role that
the rule set checks. For example, the CREATE USER command rule ensures that a user
who tries to run a CREATE USER statement has the DV_ACCTMGR role.
The following default command rules on an Oracle Virtual Private Database (VPD)
prevent the database administrator from giving VPD capabilities to an account.
■ GRANT
■ REVOKE
Only the accounts with the DV_OWNER role can use the GRANT and REVOKE statements
pertaining to the SYS.DBMS_RLS object and the EXECUTE privilege.
General
Enter the following settings:
■ Command: Select the SQL statement or operation for which you want to create a
command rule. This attribute is mandatory.
■ Status: Select either Enabled or Disabled to enable or disable the command rule
during run time. The default is Enabled. This attribute is mandatory.
Applicability
Enter the following settings:
■ Object Owner: From the list, select the owner of the object the command rule
affects. You can use wildcard character % to select all owners. (However, you
cannot use wildcard characters with text, such as EM% to select all owners whose
names begin in EM.) This attribute is mandatory for all SQL statements that
operate on objects within a specific schema. See "SQL Statements That Can Be
Protected by Command Rules" on page 6-3 for a list of supported SQL statements.
Note that the SELECT, INSERT, UPDATE, DELETE, and EXECUTE statements are
not allowed for a selection of all (%) or the SYS and DVSYS schemas.
■ Object Name: Enter the name of the database object that the command rule
affects, or specify % to select all database objects. However, you cannot use
wildcard characters with text (for example, EMP_% to specify all tables beginning
with the characters EMP_). This attribute is mandatory, if you selected an object
owner from the Object Owner list.
You can run Oracle Database Vault reports on objects that the command rule
affects. See the "Related Reports and Data Dictionary View" on page 6-9 for more
information.
Rule Set
From the list, select the rule set that you want to associate with the command rule.
This attribute is mandatory.
If the rule set evaluates to true, then the SQL statement succeeds. If it evaluates to
false, the statement fails, and then Oracle Database Vault raises a command rule
violation. (You can track such rule violations by using the Command Rule
Configuration Issues Report, discussed in Chapter 16.) Any auditing and custom event
handling associated with the rule set occurs as a part of the command rule processing.
See Chapter 5, "Configuring Rule Sets" for more information about rule sets.
For SELECT, DDL, and DML statements, multiple command rules may apply
because the object owner and object name support wildcard notation.
You can associate rule sets with both command rules and realm authorizations.
Oracle Database Vault evaluates the realm authorization rule set first, and then it
evaluates the rule sets that apply to the command type being evaluated.
2. For each command rule that applies, Oracle Database Vault evaluates its
associated rule set.
3. If the associated rule set of any of the applicable command rules returns false or
errors, Oracle Database Vault prevents the command from executing. Otherwise,
the command is authorized for further processing. The configuration of the rule
set with respect to auditing and event handlers dictates the auditing or custom
processing that occurs.
Command rules override object privileges. You can disable (or set the Disabled
setting for) either a command or a rule set of a command. If a command rule is
disabled, then the command rule is not allowed to run regardless of its associated
rule set. That is, the command rule itself is disabled. However, if you disable a rule
set of a command rule, then the rule set is not checked. In that case, the command
rule is allowed to run without any condition. If the command rule has been set to
the Disabled setting, then you are prevented from querying the table even though
you have the SELECT privilege on the table. (Only the rule set has been disabled,
not the command rule itself.)
If the SCOTT account is locked and expired, then log in as the Database Vault
Account Manager and unlock SCOTT and create a new password. For example:
sqlplus dbvacctmgr
Enter password: password
CONNECT SCOTT
Enter password: password
At this stage, user SCOTT can create and drop tables. Do not exit SQL*Plus yet, and
remain connected as SCOTT. You must use it later on when SCOTT tries to create
another table.
Step 2: Connect Using the DVOWNER Role and Create a Command Rule
1. Log in to Oracle Database Vault Administrator as a user who has been granted the
DV_OWNER or DV_ADMIN role.
"Starting Oracle Database Vault" on page 3-1 explains how to log in.
2. In the Oracle Database Vault Administrator Administration page, click Command
Rules.
The Command Rules page appears.
3. Click Create.
The Create Command Rule page appears.
4. Enter the following settings:
■ Command list: Select CREATE TABLE
■ Status: Set to Enabled so that the command rule is active.
■ Object Owner: Select SCOTT.
■ Object Name: Set to % so that it applies to all objects in the SCOTT schema.
■ Rule Set: Select Disabled so that user SCOTT is prevented from creating
tables.
5. Click OK.
Do not exit Database Vault Administrator
Command rules take effect immediately. Right away, user SCOTT is prevented from
creating tables, even though he is still in the same user session he was in a moment
ago, before you created the CREATE TABLE command rule.
As you can see, SCOTT is no longer allowed to create tables, even in his own
schema.
3. In Oracle Database Vault Administrator, do the following:
a. In the Command Rules page, select the CREATE TABLE command rule and
then click Edit.
b. In the Edit Command Rule page, select Enabled from the Rule Set list.
c. Click OK.
4. In SQL*Plus, as user SCOTT, try creating the table again.
CREATE TABLE t1 (num NUMBER);
Table created.
Now that the CREATE TABLE command rule is set to Enabled, user SCOTT is once
again permitted to create tables. (Do not exit SQL*Plus.)
3. If you no longer need the SCOTT account to be available, then connect as the
Database Vault Account Manager and enter the following ALTER USER statement:
CONNECT dbvacctmgr
Enter password: password
■ When designing rules for the CONNECT event, be careful to include logic that does
not inadvertently lock out the Oracle Database Vault Owner or Administrator.
If the account has been locked out, you can disable Oracle Database Vault, correct
the rule that is causing the lock-out problem, and then reenable Oracle Database
Vault. Even when Oracle Database Vault is disabled, you still can use Database
Vault Administrator and the Database Vault PL/SQL packages. See Appendix B,
"Disabling and Enabling Oracle Database Vault" for instructions on disabling and
re-enabling Database Vault.
■ Sometimes you must temporarily relax an enabled command rule for an
administrative task. Rather than disabling the command rule, have the Security
Manager (the account with the DV_ADMIN or DV_OWNER role) log in, set the rule
set to Enabled, turn on Auditing on Success or Failure for the default rule set
named Enabled, and then set the command rule back to its original rule set when
the task is complete.
■ When designing command rules, be careful to consider automated processes such
as backup where these procedures may be inadvertently disabled. You can account
for these tasks by creating rules that allow the command when a series of Oracle
Database Vault factors is known to be true, for example, the program being used,
and the account being used or the computer or network on which the client
program is running.
You can use the DBA_DV_COMMAND_RULE data dictionary view to find the SQL
statements that are protected by command rules. See "DBA_DV_COMMAND_RULE
View" on page 10-14 for more information.
Integrating Oracle Database Vault with Oracle Label Security" on page 9-8 for more
information.
You can run reports on the factors that you create in Oracle Database Vault. See
"Related Reports and Data Dictionary Views" on page 7-29 for more information.
This chapter explains how to configure factors by using Oracle Database Vault
Administrator. To configure factors by using the PL/SQL packages and interfaces
provided by Oracle Database Vault, refer to the following chapters:
■ Chapter 11, "Using the DVSYS.DBMS_MACADM Package"
■ Chapter 14, "Using the Oracle Database Vault PL/SQL Interfaces"
Default Factors
Oracle Database Vault provides a set of default factors. For each of these factors, there
is an associated function that retrieves the value of the factor. See "Oracle Database
Vault PL/SQL Factor Functions" on page 14-6 for a listing of these functions.
You can create custom factors by using your own PL/SQL retrieval methods. A useful
PL/SQL function you can use (which is used for many of the default factors) is the
SYS_CONTEXT SQL function, which retrieves data about the user session. After you
create the custom factor, you can query its values similar to the functions used to
query the default factors. "Tutorial: Preventing Ad Hoc Tool Access to the Database"
on page 7-17 shows an example of how to create and query a custom factor.
See Oracle Database SQL Reference for more information about the SYS_CONTEXT
function.
You can use the default factors in your own security configurations. If you do not need
them, you can remove them. (That is, they are not needed for internal use by Oracle
Database Vault.)
The default factors are as follows:
■ Authentication_Method: Is the method of authentication. In the list that follows,
the type of user is followed by the method returned:
– Password-authenticated enterprise user, local database user, or
SYSDBA/SYSOPER using Password File; proxy with user name using
password: PASSWORD
– Kerberos-authenticated enterprise or external user: KERBEROS
– SSL-authenticated enterprise or external user: SSL
– Radius-authenticated external user: RADIUS
– Operating system-authenticated external user or SYSDBA/SYSOPER: OS
– DCE-authenticated external user: DCE
– Proxy with certificate, distinguished name (DN), or user name without using
password: NONE
You can use IDENTIFICATION_TYPE to distinguish between external and
enterprise users when the authentication method is Password, Kerberos, or SSL.
■ Client_IP: Is the IP address of the machine from which the client is connected.
■ Database_Domain: Is the domain of the database as specified in the DB_DOMAIN
initialization parameter.
For example:
AMERICAN_AMERICA.WE8MSWIN1252
Refer to Oracle Database Globalization Support Guide for more information about
languages, territories, and character sets.
■ Machine: Is the host name for the database client that established the current
session. If you must find out whether the computer was used for a client or server
session, then you can compare this setting with the Database_Hostname factor to
make the determination.
■ Network_Protocol: Is the network protocol being used for communication, as
specified in the PROTOCOL=protocol portion of the connect string.
■ Proxy_Enterprise_Identity: Is the Oracle Internet Directory DN when the proxy
user is an enterprise user.
■ Proxy_User: Is the name of the database user who opened the current session on
behalf of SESSION_USER.
■ Session_User: Is the database user name by which the current user is
authenticated. This value remains the same throughout the session.
Creating a Factor
In general, to create a factor, you first create the factor itself, and then you edit the
factor to include its identity. "Guidelines for Designing Factors" on page 7-28 provides
advice on designing factors.
To create a factor:
1. Log in to Oracle Database Vault Administrator as a user who has been granted the
DV_OWNER or DV_ADMIN role.
"Starting Oracle Database Vault" on page 3-1 explains how to log in.
2. In the Administration page, under Database Vault Feature Administration, click
Factors.
3. In the Factors page, click Create.
4. In the Create Factor page, enter the following settings, and then click OK:
■ General
■ Factor Identification
■ Evaluation
■ Factor Labeling
■ Retrieval Method
■ Validation Method
■ Assignment Rule Set
■ Audit Options
■ Error Options
General
In the General area, enter the following information:
■ Name: Enter a name up to 30 characters in mixed-case, without spaces. Oracle
Database Vault creates a valid Oracle identifier for the factor function to be created
in the DVF schema based on the name of the factor chosen. For example, if you
Factor Identification
Under Factor Identification, select how to resolve the identity of a factor. This attribute
is mandatory. The values are as follows:
■ By Method: Default. Sets the factor identity by executing the PL/SQL expression
specified in the Retrieval Method field.
For example, suppose the expression retrieves the system date:
to_char(sysdate,'yyyy-mm-dd')
On December 6, 2008, the By Method option would return the following value:
2008-12-06
■ By Constant: Resolves the factor identity by retrieving the constant value found in
the Retrieval Method field.
■ By Factors: Determines the factor identity by mapping the identities of the child
factor to its parent factor. A parent factor is a factor whose values are resolved
based on a second factor, called a child factor. To establish their relationship, you
map their identities. (You do not need to specify a Retrieval Method expression
for this option.)
See "Using Identity Mapping to Configure an Identity to Use Other Factors" on
page 7-13 for more information about mapping identities.
A factor identity is the actual value of a factor (for example, the IP address for a factor
that uses the IP_Address type). A factor can have several identities depending on its
retrieval method or its identity mapping logic. For example, a factor such as Database_
Hostname could have multiple identities in an Oracle Real Application Clusters
environment; a factor such as Client_IP can have multiple identities in any RDBMS
environment. The retrieval method for these types of factors may return different
values because the retrieval method is based on the database session.
Several reports allow you to track the factor identity configuration. See "Related
Reports and Data Dictionary Views" on page 7-29 for more information.
You can configure the assignment of a factor in the following ways:
■ Assign the factor at the time a database session is established.
■ Configure individual requests to retrieve the identity of the factor.
With the Oracle Label Security integration, you can label identities with an Oracle
Label Security label. You can also assign an identity trust levels, which are numbers
that indicate the magnitude of trust relative to other identities for the same factor. In
general, the higher the trust level number is set, the greater the trust. Negative trust
levels are not trusted.
F$DATABASE_IP
-------------------------------------------------------------
192.0.2.1
You can also use the DVSYS.GET_FACTOR function to find the identity of a factor that
is made available for public access. For example:
SELECT GET_FACTOR('DATABASE_IP') FROM DUAL;
Evaluation
Under Evaluation, select how you want the factor to be evaluated and assigned an
identity. See "How Factors Affect Performance" on page 7-29 for the performance effect
of session factors. This attribute is mandatory.
The values are as follows:
■ By Session: Default. Evaluates the factor when a database session is created.
■ By Access: Evaluates the factor each time it is accessed (say, referenced by an
application) and when the database session is first created.
Factor Labeling
Under Factor Labeling, select how you want the factor identity to retrieve an Oracle
Label Security (OLS) label. This setting applies if you plan to use the Oracle Label
Security algorithm. This attribute is mandatory if you want to use an OLS label. (See
also "Integrating Oracle Database Vault with Oracle Label Security" on page 9-5 for
information on integrating OLS labels with a factors.
The values are as follows:
■ By Self: Default. Labels the identities for the factor directly from the labels
associated with an Oracle Label Security policy.
■ By Factors: If there are multiple child factor labels, Oracle Database Vault merges
the labels by using the Oracle Label Security Algorithm page that is associated
with the applicable Oracle Label Security policy. For each applicable Oracle Label
Security policy, a factor identity can have an assigned label.
Retrieval Method
Under Retrieval Method, enter a PL/SQL expression that retrieves the identity of a
factor or a constant. It can use up to 255 characters in mixed-case. The Retrieval
Method identifies factors where the factor identification is by method or constant. If
the factor identification is by factors, Oracle Database Vault identifies it by its identity
mappings.
You can create your own PL/SQL retrieval methods, or use the functions supplied
with Oracle Database Vault. See the following sections for factor-specific and general
utility functions that you can use to build the retrieval method:
■ "Oracle Database Vault PL/SQL Factor Functions" on page 14-6
■ "Factor Procedures and Functions Within DVSYS.DBMS_MACADM" on
page 11-26
■ Chapter 13, "Using the DVSYS.DBMS_MACUTL Package"
The following retrieval method sets a value of the DB_NAME factor by retrieving the
database name (DB_NAME) from the USERENV namespace in a user’s session.
UPPER(SYS_CONTEXT('USERENV','DB_NAME'))
See also the default factors provided with Oracle Database Vault for examples of
retrieval methods. "Default Factors" on page 7-2 describes these factors.
The Retrieval Method field is mandatory if you have selected the following settings
under Factor Identification:
■ By Method: Enter a method in the Retrieval Method field.
■ By Constant: Enter a constant in the Retrieval Method field.
The value returned as the factor identity must be a VARCHAR2 string or otherwise
convertible to one.
You can include any package function or standalone function in the expression. Ensure
that the expression is a fully qualified function, such as schema.function_name. Do
not include complete SQL statements. If you are using application packages or
functions, you must provide DVSYS with the GRANT EXECUTE privilege on the object.
Write the function signature using the following format:
FUNCTION GET_FACTOR RETURN VARCHAR2
Validation Method
Under Validation Method, enter a PL/SQL expression that returns a Boolean value
(TRUE or FALSE) to validate the identity of a factor being retrieved (with the
DVSYS.GET_FACTOR function) or the value to be assigned to a factor (with the
DVSYS.SET_FACTOR function). If the method is evaluated to false for the value being
retrieved or to be assigned, then the factor identity is set to null. This optional feature
provides an additional level of assurance that the factor is properly retrieved and set.
This field can have up to 255 characters in mixed-case.
You can include any package function or standalone function in the expression. Ensure
that the expression is a fully qualified function, such as schema.function_name. Do
not include complete SQL statements. If you are using application packages or
functions, you must provide DVSYS with the GRANT EXECUTE privilege on the object.
Write the function using one of the following formats:
■ FUNCTION IS_VALID RETURN BOOLEAN
In this form, you can use the DVF.F$factor_name function inside the function
logic. This is more appropriate for factors that are evaluated by session.
■ FUNCTION IS_VALID(p_factor_value VARCHAR2) RETURN BOOLEAN
In this form, the factor value is passed to the validation function directly. This is
more appropriate for factors that are evaluated by access. It is also valid for factors
evaluated by session.
See the following sections for factor-specific and general utility functions that you can
use to build the validation method:
■ "Oracle Database Vault PL/SQL Factor Functions" on page 14-6
■ "Factor Procedures and Functions Within DVSYS.DBMS_MACADM" on
page 11-26
■ Chapter 13, "Using the DVSYS.DBMS_MACUTL Package"
This attribute is particularly useful for situations where database applications, such as
a Web application using a JDBC connection pool, must dynamically set a factor
identity for the current database session. For example, a Web application may want to
assign the geographic location for a database account logging in to the Web
application. To do so, the Web application can use the JDBC Callable Statement, or
Oracle Data Provider for .NET (ODP.NET) to execute the PL/SQL function
DVSYS.SET_FACTOR, for example:
BEGIN
DVSYS.SET_FACTOR('GEO_STATE','VIRGINIA');
END;
Then you can create an assignment rule for the GEO_STATE factor to allow or disallow
the setting of the GEO_STATE factor based on other factors or rule expressions. See
"How Factors Are Set" on page 7-17 for more information.
Audit Options
Under Audit Options, select from the settings to generate an audit trail for the factors.
Oracle Database Vault writes the audit trail to the DVSYS.AUDIT_TRAIL$ system file,
described in Appendix A, "Auditing Oracle Database Vault."
You can use the Factor Audit Report to display the generated audit records. (See
"Related Reports and Data Dictionary Views" on page 7-29 for more information.) In
addition, you can select multiple audit options at a time. Each option is converted to a
bit mask and added to determine the aggregate behavior. Note that there is little
performance impact in auditing, unless the factor has errors. This attribute is
mandatory.
The values are as follows:
■ Never: Does not audit.
■ Always: Always creates an audit record when a factor is evaluated. You can select
from the conditions, described next.
■ Sometimes: Creates an audit record based on one or more conditions. When you
select Sometimes, by default the Retrieval Error and Retrieval NULL options are
selected.
You can select from the following conditions listed next.
Conditions that you can select for the Always and Sometimes options are as follows:
■ Retrieval Error: Creates an audit record when the identity of a factor cannot be
resolved and assigned, due to an error (such as No data found or Too many
rows).
■ Retrieval NULL: Creates an audit record when the identity of a factor is resolved
to NULL.
■ Validation Error: Creates an audit record when the validation method (if
provided) returns an error.
■ Validation False: Creates an audit record when the validation method (if
provided) returns FALSE.
■ Trust Level NULL: Creates an audit record when the resolved identity of a factor
has an assigned trust level of NULL.
See "Creating and Configuring a Factor Identity" on page 7-11 for more
information about trust levels.
■ Trust Level Less Than Zero: Creates an audit record when the resolved identity of
a factor has an assigned trust level less than zero.
Error Options
Under Error Options, select from the following to specify the processing that occurs
when a factory identity cannot be resolved. This attribute is mandatory.
The values are as follows:
■ Show Error Message: Default. Displays an error message to the database session.
■ Do Not Show Error Message: Does not display the error message.
An advantage of selecting Do Not Show Error Message and then enabling
auditing is that you can track the activities of a potential intruder. The audit report
reveals the activities of the intruder, yet the intruder is unaware that you are doing
this because he or she does not see any error messages.
After you have created a new factor, you are ready to configure its identity. To do so,
edit the factor and then add its identity.
See Also:
■ "Editing a Factor" on page 7-10
■ "Adding an Identity to a Factor" on page 7-10
Editing a Factor
To edit a factor:
1. In the Oracle Database Vault Administration page, select Factors.
2. In the Factors page, select the factor that you want to edit.
3. Click Edit.
4. Modify the factor as necessary, and then click OK.
See Also:
■ "Creating a Factor" on page 7-4 to modify the settings created for a
new factor
■ "Adding an Identity to a Factor" on page 7-10 to add or modify an
identity for the factor
See Also:
■ "How Factors Work" on page 7-15 for more information about
how a factor behaves during a database session
■ "Tutorial: Restricting User Activities Based on Session Data" on
page 7-22 for an example of how to create and use factor identities
General
Enter the following values:
■ Value: Enter the value of the identity, up to 1024 characters in mixed-case. This
attribute is mandatory.
■ Trust Level: Select one of the following trust levels:
– Very Trusted: Assigns a trust level value of 10
– Trusted: Assigns a trust level value of 5
– Somewhat Trusted: Assigns a trust level value of 1
– Untrusted: Assigns a trust level value of -1
– Trust Level Not Defined: Assigns a trust level value of NULL (default)
Trust levels enable you to assign a numeric value to indicate the measure of trust
allowed. A trust value of 1 signifies some trust. A higher value indicates a higher level
of trust. A negative value or zero indicates distrust. When the factor identity returned
from a factor retrieval method is not defined in the identity, Oracle Database Vault
automatically assigns the identity a negative trust level.
To determine the trust level of a factor identity at run time, you can use the GET_
TRUST_LEVEL and GET_TRUST_LEVEL_FOR_IDENTITY functions in the DVSYS
schema.
For example, suppose you have created a factor named Network. You can create the
following identities for the Network factor:
■ Intranet, with a trust level of 10
■ VPN (virtual private network), with a trust level of 5
■ Public, with a trust level of 1
You then can create rule expressions (or custom application code) that base policy
decisions on the trust level. For example, you can use DVSYS.GET_TRUST_LEVEL to
find trust levels greater than 5:
DVSYS.GET_TRUST_LEVEL('Network') > 5
In the preceding example, Network factor identity for VPN is trusted (value equals 5),
and the identity for the INTRANET domain is 10, which implies a greater trust.
See Chapter 14, "Using the Oracle Database Vault PL/SQL Interfaces" for more
information about the Oracle Database Vault functions.
Label Identity
You can assign Oracle Label Security (OLS) labels to factor identities. (In brief, a label
acts as an identifier for a database table row to assign privileges to the row. For more
information about labels, see Oracle Label Security Administrator's Guide.) The Factor
Labeling attribute for a factor determines whether a factor is labeled By Self or By
Factors. If you set the Factor Labeling attribute to By Self, then you can associate OLS
labels with the factor identities. If you set the Factor Labeling attribute to By Factors,
then Oracle Database Vault derives the factor identity labels from the labeling of child
factor identities. When there are multiple child factor identities with labels, Oracle
Database Vault merges the labels using the OLS algorithm associated with the
applicable factor Oracle Label Security policy.
To label an identity:
1. In the Create Identity page, under Label Identity, select the OLS label from the
Available OLS Labels list.
The list shows data labels from the Oracle Label Security installation for your site.
For more information, refer to Oracle Label Security Administrator's Guide.
Note: You can select multiple labels by holding down the Ctrl key as
you click each label that is to be selected.
2. Click Move to move the OLS label to the Selected OLS Labels list.
3. Repeat Step 1 and Step 2 to select more OLS labels.
You can select only one label for each OLS policy.
4. Click OK to finish labeling the identity.
d. In the Create Identity Map page, select a factor name from the Contributing
Factor list.
This is the child factor to which you want to map the parent factor.
e. Select a Map Condition.
This setting lets you select an operator to compare the contributing (child)
factor values.
f. Enter a value for the Low Value and High Value (optional) fields.
For example, consider a scenario where the Contributing Factor to the Factor
Network is set to Client_IP, the Map Condition is set to Between, the Low
Value is set to 192.0.2.1 and the High Value is set to 192.0.2.24. This means that
whenever the client IP address lies in the specified address range of 192.0.2.1
to 192.0.2.24, the parent factor evaluates to a predefined identity (for example,
INTRANET).
g. Click OK to map the parent factor-identity to the child factor-identity.
You can map different identities of a parent factor to different identities of the
contributing factor. For example, the INTRANET identity maps to an IP
address range of 192.0.2.1 to 192.0.2.24. The REMOTE identity can map to an
IP address range that excludes the address range 192.0.2.1 to 192.0.2.24.
Based on identity mapping, you can create a security policy. For example, you
can define a reduced set of privileges for an employee connecting over VPN
(with REMOTE), as opposed to an employee connecting from within the
corporate network (with INTRANET).
h. Repeat Step c to Step g to add more contributing factors for a parent factor
identity.
For example, you can configure the Network factor to resolve to a value
ACCOUNTING-SENSITIVE, when the Program factor resolves to "Oracle
General Ledger" and the Client_IP is in between 192.0.2.1 and 192.0.2.24. So, if
an authorized accounting financial application program, running on a client
with IP address 192.0.2.12 accesses the database, then the Network factor is
resolved to ACCOUNTING-SENSITIVE. A database session with the
ACCOUNTING-SENSITIVE Network value would have more access
privileges than one with the INTRANET Network value.
Deleting a Factor
Before you delete a factor, you can locate the various references to the factor and its
identities by querying the factor-related Oracle Database Vault views. See "Oracle
Database Vault Data Dictionary Views" on page 10-11 for more information.
To delete a factor:
1. Delete any references to the factor, such as factor identities, and Oracle Label
Security policy associations.
You cannot delete a factor that has references.
2. In the Oracle Database Vault Administration page, select Factors.
3. In the Factors page, select the factor that you want to remove.
4. Click Remove.
5. In the Confirmation page, click Yes.
This algorithm works if the ASCII sort ordering is correct and the identities map
the same number factors at some level.
7. When the factor initialization completes, the Oracle Database Vault integration
with Oracle Label Security occurs.
After this process completes, Oracle Database Vault checks to see if a command rule is
associated with the CONNECT event. If a rule set associated with the CONNECT event,
then Oracle Database Vault evaluates the rule set. If the rule set evaluates to false or
results in an error, then the session is terminated. Oracle Database Vault executes any
auditing or call handlers associated with the rule set before the session is terminated.
You can use the factor values retrieved from the DVF factor function or the
DVSYS.GET_FACTOR in the following ways:
■ Oracle Database Vault rule expressions
■ Custom application code that is available to all database sessions in an Oracle
Database Vault environment
"Oracle Database Vault PL/SQL Factor Functions" on page 14-6 describes DVF factor
functions in detail.
If you had set the factor evaluation to By Session, then Oracle Database Vault retrieves
the value from the session context established, as described under "How Factors Are
Processed When a Session Is Established" on page 7-15.
If you had set the factor evaluation to By Access, then Oracle Database Vault performs
Step 2 through Step 5 (or Step 6), as described under "How Factors Are Processed
When a Session Is Established" on page 7-15, whenever the factor is retrieved.
If you had defined error options for the factor and if an error occurs, then Oracle
Database Vault displays the error message.
Applications that can execute Oracle PL/SQL functions can use this procedure (for
example, applications written using Oracle Data Provider for .NET (ODP.NET)).
This concept is similar to the standard Oracle DBMS_SESSION.SET_IDENTIFIER
procedure with an added feature that a rule set controls when a factor value can be set.
If the rule set evaluates to true, Steps 2 through 5 under "How Factors Are Processed
When a Session Is Established" on page 7-15 occur.
If you have not associated a assignment rule set for the factor or if the rule set returns
false (or returns errors), then Oracle Database Vault sends an error message if you
attempt to set the factor using the DVSYS.SET_FACTOR function.
See Also:
■ "Tutorial: Restricting User Activities Based on Session Data" on
page 7-22 for an example of using factor identity mapping
■ "Tutorial: Integrating Oracle Database Vault with Oracle Label
Security" on page 9-8 for an example of integrating an Oracle
Database Vault factor with an Oracle Label Security label
3. If the SCOTT account is expired and locked, then enter the following statement to
make it active:
ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY password;
Do not exit SQL*Plus. You must use it later on when you test the factor
components.
Step 3: Create the Limit SQL*Plus Access Rule and Rule Set
1. In Oracle Database Vault Administrator, return to the Administration page.
2. Under Administration, select Rule Sets.
The Rule Sets page appears.
3. Click Create to display the Create Rule Set page.
4. Enter the following settings:
■ Name: Enter Limit SQL*Plus Access.
■ Description: Enter Rule set to limit access to SQL*Plus.
■ Status: Select Enabled.
■ Evaluation Options: Select All True.
■ Audit Options: Select Audit Disabled.
■ Error Handling Options: Select Show Error Message.
■ Fail Code, Fail Message: Leave blank.
■ Custom Event Handler Option: Select Handler Disabled.
■ Custom Event Handler Logic: Leave blank.
5. Click OK.
The Rule Sets page appears.
6. Select the Limit SQL*Plus rule set and then click Edit.
The Edit Rule Set page appears.
7. Under Rules Associated To The Rule Set, click Create.
The Create Rule page appears.
8. Enter the following settings:
■ Name: Enter Prevent non-admin access to SQL*Plus.
■ Rule Expression: Enter the following rule expression:
DVF.F$MODULE != 'SQL*PLUS' AND DVF.F$SESSION_USER IN ('DBVOWNER',
'DBVACCTMGR', 'SYS', 'SYSTEM')
Replace DBVOWNER and DBVACCTMGR with the user account names that you
had created for the Database Vault Owner and Database Vault Account
Manager accounts when you installed Oracle Database Vault. You must enter
the user account names in upper case letters, because that is how the database
stores user account names.
This expression tells Oracle Database Vault only to allow these four users to
use SQL*Plus. Another way to write the expression is to tell Database Vault to
simply exclude certain users from using SQL*Plus. That way, everyone else
has access to SQL*Plus. For example, to exclude users JSMITH and TSMITH
from using SQL*Plus, you would create this expression:
DVF.F$MODULE != 'SQL*PLUS' AND DVF.F$SESSION_USER NOT IN ('JSMITH',
'TSMITH')
However, for this tutorial, use the first expression, in which only the four
administrative users are allowed to use SQL*Plus.
9. Ensure that you have entered this rule expression exactly as shown in Step 8. If you
enter it incorrectly, you cannot log in to SQL*Plus.
10. Click OK.
User SYSTEM should be able to log in to SQL*Plus. So should SYS, the Database
Vault Owner account, and the Database Vault Account Manager account.
Even though you have disabled Oracle Database Vault, you still can use its
PL/SQL Packages and Database Vault Administrator.
4. Exit SQL*Plus.
5. Reenable Oracle Database Vault.
See Appendix B, "Disabling and Enabling Oracle Database Vault" for instructions
on enabling Oracle Database Vault.
6. In Oracle Database Vault Administrator, check the rule expression for any errors
and then correct them. Recreate the CONNECT command rule, and then test it.
9. If necessary, connect as the Oracle Database Vault Account Manager and then lock
and expire the SCOTT account.
For example:
CONNECT dbvacctmgr
Enter password: password
In this tutorial:
■ Step 1: Create an Administrative User
■ Step 2: Add Identities to the Domain Factor
■ Step 3: Map the Domain Factor Identities to the Client_IP Factor
■ Step 4: Create a Rule Set to Set the Hours and Select the Factor Identity
■ Step 5: Create a Command Rule That Uses the Rule Set
■ Step 6: Test the Factor Identity Settings
■ Step 7: Remove the Components for This Tutorial
The identity maps in the NOT SECURE identity are in a range of IP addresses
outside the IP address that user mwaldron uses (192.0.2.12). The IP addresses here
must be in any range outside mwaldron’s IP address.
This identity mapping creates the following condition: If the user logs in from the
correct IP address, then Oracle Database Vault decides that the connection is
secure, through the HIGHLY SECURE INTERNAL NETWORK identity. However,
if the user logs in from an IP address that is less than 192.0.2.5 or greater than
192.0.2.20, then the connection is deemed not secure, through the NO SECURE
identity.
6. Click OK to return to the Edit Factor: Domain page, then click OK again to return
to the Factors page.
7. Test the factor identities.
First, in SQL*Plus, connect as user mwaldron but do not specify a database
instance.
CONNECT mwaldron
Enter password: password
Next:
SELECT DVF.F$DOMAIN FROM DUAL;
Because user mwaldron is not connecting directly to the database instance, Oracle
Database Vault does not recognize the IP address from which he is connecting. In
this case, Oracle Database uses the IPC protocol to perform the connection, which
sets the IP value to null. Therefore, the identity for this connection is set to NOT
SECURE.
Now connect to SQL*Plus by specifying the database instance (for example, orcl)
and then check the factor identities again:
CONNECT mwaldron@orcl
Enter password: password
Next:
SELECT DVF.F$DOMAIN FROM DUAL;
Now that user mwaldron is connecting to the orcl database instance, his IP
address is recognized. This is because the database uses the TCP protocol, so now
the host IP value can be populated appropriately. Because the IP address is within
the correct range, the factor identity is set to HIGHLY SECURE INTERNAL
NETWORK.
Step 4: Create a Rule Set to Set the Hours and Select the Factor Identity
1. In Oracle Database Vault, return to the Administration page.
2. Select Rule Sets.
3. In the Rule Sets page, select Create.
4. In the Create Rule Set page, enter the following settings:
■ Name: Enter Internal DBA Standard Working Hours.
■ Status: Select Enabled.
■ Evaluation Options: Select All True.
Leave the remaining settings at their defaults.
5. Click OK.
6. In the Rule Sets page, select the Internal DBA Standard Working Hours rule set,
and then select Edit.
7. In the Edit Rule Set: Internal DBA Standard Working Hours page, under Rules
Associated To The Rule Set, select Create.
8. In the Create Rule page, create the following rules:
date 12132109
Windows: Double-click the clock icon, which is typically at the lower right corner
of the screen. In the Date and Time Properties window, set the time to 9 p.m., and
then click OK.
2. In SQL*Plus, connect as user mwaldron and try to create a table. In the following,
replace orcl with the name of your database instance.
CONNECT mwaldron@orcl
Enter password: password
Because user mwaldron is create a table outside working hours, Database Vault
prevents him.
3. Reset the system time back to the local time.
4. In SQL*Plus, as user mwaldron, try to create the table again.
CREATE TABLE TEST (num number);
Table created.
Now that user maldron is working during his local hours and from the IP address
associated with the HIGHLY SECURE INTERNAL NETWORK identity, he can
create tables.
5. Reconnect as user mwaldron but without adding the database instance name to
the connection command, and then try to select from the OE.ORDERS table again.
CONNECT mwaldron
Enter password: password
Even though user mwaldron is trying to create a table during the correct time, he
cannot because is not directly logged in to the orcl database instance. Oracle
Database Vault deems him to be using the NOT SECURE identity, and then denies
him access.
5. Remove the HIGHLY SECURE INTERNAL NETWORK and NOT SECURE factor
identities from the Domain factor.
Return to the Administration page and select Factors. Select the Domain factor,
select Edit, and under Identities, remove the HIGHLY SECURE INTERNAL
NETWORK and NOT SECURE factor identities. In the Confirmation page, select
Yes.
This also makes it easier to label the parent factor when you integrate the factors
with the Oracle Label Security labels. (See "Integrating Oracle Database Vault with
Oracle Label Security" on page 9-5 for more information.)
■ It is generally easier to configure and debug a factor that is labeled By Self than
one labeled By Factors when integrating the Oracle Label Security.
■ You can design a database client application to pass one or more security, end-user,
or environmental attributes so that they are available to an associated database
session. To do this, create a single factor for each attribute and then use an
assignment rule set to control when these attributes can be assigned, for example,
only when using a specific Web application on specified named application server
computers. Oracle Database Vault factors used in this fashion are very much like
the Oracle procedure DBMS_SESSION.SET_IDENTIFIER but also include a
capability to control when they can be set. For more information about the DBMS_
SESSION package, see Oracle Database PL/SQL Packages and Types Reference.
Table 7–2 lists data dictionary views that provide information about existing factors
and factor identities.
Table 7–2 Data Dictionary Views Used for Factors and Factor Identities
Data Dictionary View Description
"DBA_DV_FACTOR View" on page 10-15 Lists the existing factors in the current database
instance
"DBA_DV_FACTOR_LINK View" on Shows the relationships of each factor whose
page 10-16 identity is determined by the association of child
factors
"DBA_DV_FACTOR_TYPE View" on Lists the names and descriptions of factor types
page 10-17 used in the system
"DBA_DV_IDENTITY View" on page 10-17 Lists the identities for each factor
"DBA_DV_IDENTITY_MAP View" on Lists the mappings for each factor identity
page 10-18
After you create a new secure application role, you must modify your code to
use this new role. You can use DVSYS.DBMS_MACSEC_ROLES.SET_ROLE in
your application code to accomplish this. See "SET_ROLE Procedure" on
page 12-2 for more information about the SET_ROLE function.
5. In the Create (or Edit) Role page, enter the following settings and then click OK.
■ General
■ Rule Set
General
Enter the following settings:
■ Role: Enter the name using no more than 30 characters, with no spaces. Preferably,
enter the role name in upper case letters, though you are not required to do so.
Ensure that this name follows the standard Oracle naming conventions for role
creation using the CREATE ROLE statement, described in Oracle Database SQL
Reference. This attribute is mandatory.
Rule Set
From the list, select the rule set that you want to associate with the secure application
role. This attribute is mandatory.
When calling DVSYS.DBMS_MACSEC_ROLES.SET_ROLE, if the rule set evaluates to
true, then Oracle Database Vault sets the role for the database session. If the rule set
evaluates to false, then the role is not set.
See Chapter 5, "Configuring Rule Sets" for more information about rule sets.
Replace password with a password that is secure. See Oracle Database Security
Guide for the minimum requirements for creating passwords.
3. Connect as SYS using the SYSDBA privilege, and then grant these users the
CREATE SESSION privilege.
CONNECT SYS/AS SYSDBA
Enter password: password
3. If the OE account is locked and expired, unlock it and assign it a new password.
ALTER USER OE ACCOUNT UNLOCK IDENTIFIED BY password;
For the Check IP Address rule, replace 123.45.67.89 with the IP address for your
own computer. In a real-world scenario, you would create an expression that
includes all the IP addresses for the users who should be allowed access.
Both of these rules use the default factors Client_IP and Session_User. See "Default
Factors" on page 7-2 for more information about these factors. If these factors have
been removed or modified, you can use the following rule expressions instead:
■ Check IP Address: UPPER(SYS_CONTEXT('USERENV','IP_ADDRESS'))
= '192.0.2.12'
■ Check Session User: UPPER(SYS_CONTEXT('USERENV','SESSION_
USER')) IN ('EABEL', 'AHUTTON')
9. Ensure that the Status setting for the Can Modify Orders table is set to Enabled
and Evaluation Options is set to All True.
10. Click OK.
Typically, you would embed this call in the application that the user logs in to.
3. Select from the OE.ORDERS table.
SELECT COUNT(*) FROM OE.ORDERS;
Because user eabel is logging directly into the database from the correct IP
address and is listed as a valid session user, she can select from the OE.ORDERS
table. If user ahutton logs in to SQL*Plus in the same manner, she also can select
from the OE.ORDERS table.
4. Reconnect as user eabel without specifying the database instance, and then try to
select from the OE.ORDERS table again.
CONNECT eabel
Enter password: password
EXEC DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('ORDERS_MGMT');
Next:
SELECT COUNT(*) FROM OE.ORDERS;
Even though user eabel is a valid user, she has violated the Check IP Address
rule in the rule set, so she is not granted the ORDERS_MGMT role. The only way for
the IP address to be recognized is to connect by specifying the database instance,
as user eabel did in Step 1. (For an explanation about how this works, see Step 7
in "Step 3: Map the Domain Factor Identities to the Client_IP Factor" on page 7-24,
in Chapter 7.)
5. Connect as user ldoran and then enter the following statements:
EXEC DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('ORDERS_MGMT');
SELECT COUNT(*) FROM OE.ORDERS;
Because user ldoran is not a valid user, she is not granted the ORDERS_MGMT role.
Therefore, she cannot select from the OE.ORDERS table.
3. Enter the following commands in the order shown to remove the Can Modify
Orders rule set.
EXEC DVSYS.DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Can Modify Orders', 'Check IP
Address');
EXEC DVSYS.DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Can Modify Orders', 'Check
Session User');
EXEC DVSYS.DBMS_MACADM.DELETE_RULE('Check IP Address');
EXEC DVSYS.DBMS_MACADM.DELETE_RULE('Check Session User');
EXEC DVSYS.DBMS_MACADM.DELETE_RULE_SET('Can Modify Orders');
COMMIT;
4. Connect as the Database Vault Account Manager and drop the users.
For example:
CONNECT dbvacctmgr
Enter password: password
You can use the DBA_DV_ROLE data dictionary view to find the Oracle Database Vault
secure application roles used in privilege management. See "DBA_DV_ROLE View" on
page 10-23 for more information.
Using Oracle Database Vault with Oracle Enterprise Manager Grid Control
This section contains:
■ Propagating Oracle Database Vault Policies to Other Databases
■ Using Enterprise Manager Grid Control Alerts for Oracle Database Vault Policies
■ Using Oracle Database Vault-Specific Reports in Enterprise Manager Grid Control
2. From the Database Vault home page, select the Administration subpage.
3. In the Administration page, under Policy Propagation, select the Database Vault
Policy Propagation link.
The Available Policies area in the Policy Propagation subpage lists a summary of
the Oracle Database Vault policies that were created for the database that you
selected in Step 1. From here, you can propagate these policies to another
database.
4. Under Available Policies, select each policy that you want to propagate to another
database.
By default, all policies are selected.
6. Under Search and Select: Database Vault Enabled Destination Databases, search
for the destination databases, and then select each database to which you want to
propagate the policies. Then click the Select button.
Using Enterprise Manager Grid Control Alerts for Oracle Database Vault Policies
Grid Control generates Oracle Database Vault-specific alerts. To view these alerts, you
must be granted the DV_OWNER, DV_ADMIN, or DV_SECANALYST role. The alerts are as
follows:
■ Database Vault Attempted Realm Violations. This alert helps the Oracle Database
Vault security analyst (DV_SECANALYST role) to monitor violation attempts on the
Database Vault database. This user can select the realms to be affected by the alert
and filter these realms based on the different types of attempts by using error
codes. You can enable this metric from the Metrics and Policy Settings page. By
default, the attempted realm violations are collected every 24 hours.
■ Database Vault Attempted Command Rule Violations. The functionality for this
alert is the same as for Database Vault Attempted Realm Violations, except that it
focuses on violations on command rules.
■ Database Vault Realm Configuration Issues. This metric tracks and raises an alert
if users misconfigure realms. This metric is enabled when you install Oracle
Database vault, and by default it collects data every one hour.
■ Database Vault Command Rule Configuration Issues. This functionality for this
alert is that same as Database Vault Realm Configuration Issues, except that it
focuses on configuration changes to command rules.
■ Database Vault Policy Changes. This metric raises an alert on any change to any
Database Vault policy, such as policies for realms and command rules. It provides
a detailed policy changes report.
Requirements for Using Oracle Database Vault with Oracle Label Security
You must have the following requirements in place before you use Oracle Database
Vault with Oracle Label Security:
■ Oracle Label Security is licensed separately. Ensure that you have purchased a
license to use it.
■ Before you install Oracle Database Vault, you must have already installed Oracle
Label Security.
■ Ensure that you have the appropriate Oracle Label Security policies defined. For
more information, see Oracle Label Security Administrator's Guide.
Using Oracle Database Vault Factors with Oracle Label Security Policies
Oracle Database Vault controls the maximum security clearance for a database session
by merging the maximum allowable data for each label in a database session by
merging the labels of Oracle Database Vault factors that are associated to an Oracle
Label Security policy. In brief, a label acts as an identifier for the access privileges of a
database table row. A policy is a name associated with the labels, rules, and
authorizations that govern access to table rows. See Oracle Label Security
Administrator's Guide for more information about row labels and policies.
Use the following steps to define factors that contribute to the maximum allowable
data label of an Oracle Label Security policy:
1. Log in to Oracle Database Vault Administrator as a user who has been granted the
DV_OWNER or DV_ADMIN role.
"Starting Oracle Database Vault" on page 3-1 explains how to log in.
2. Make the user LBACSYS account an owner of the realm that contains the schema
to which a label security policy has been applied.
This enables the LBACSYS account to have access to all the protected data in the
realm, so that it can properly classify the data.
The LBACSYS account is created in Oracle Label Security using the Oracle
Universal Installer custom installation option. Before you can create an Oracle
Label Security policy for use with Oracle Database Vault, you must make
LBACSYS an owner for the realm you plan to use. See "Defining Realm
Authorization" on page 4-5 for more information.
3. In the Administration page, under Database Vault Feature Administration, click
Label Security Integration.
4. In the Label Security Policies page:
■ To register a new label security policy, click Create.
■ To edit an existing label security policy, select it from the list and then click
Edit.
5. Enter the following settings and then click OK:
■ General
■ Label Security Policy Factors
General
Under General, enter the following settings:
■ Label Security Policy: From the list, select the Oracle Label Security policy that
you want to use.
■ Algorithm: Optionally change the label-merging algorithm for cases when Oracle
Label Security has merged two labels. In most cases, you may want to select LII -
Minimum Level/Intersection/Intersection. This setting is the most commonly
used method that Oracle Label Security administrators use when they want to
merge two labels. This setting provides optimum flexibility when your
applications must determine the resulting label that is required when combining
two data sets that have different labels. It is also necessary for situations in which
you must perform queries using joins on rows with different data labels.
For more information on these label-merging algorithms, see Oracle Label Security
Administrator's Guide. If you want to use the DVSYS.DBMS_MACADM package to
specify a merge algorithm, see Table 11–57, " Oracle Label Security Merge
Algorithm Codes" on page 11-50 for a full listing of possible merge algorithms.
■ Label for Initialization Errors: Optionally enter a label for initialization errors.
The label specified for initialization errors is set when a configuration error or
run-time error occurs during session initialization. You can use this setting to
assign the session a data label that prevents access or updates to any data the
policy protects until the issue is resolved.
Note: You can select multiple factors by holding down the Ctrl key
as you click each factor that you want to select.
After you associate a factor with an Oracle Label Security policy, you can label the
factor identities using the labels for the policy. "Adding an Identity to a Factor" on
page 7-10 provides detailed information.
Replace password with a password that is secure. See Oracle Database Security
Guide for the minimum requirements for creating passwords.
3. Connect as user SYS with the SYSDBA privilege and then grant administrative
privileges to users mdale and jsmith.
CONNECT SYS/AS SYSDBA
Enter password: password
At this stage, users mdale and jsmith have identical administrative privileges.
If user LBACSYS is locked and expired, connect as the Database Vault Account
Manager, unlock and unexpire the LBACSYS account, and then log back in as
LBACSYS.
For example:
CONNECT dbvacctmgr
Enter password: password
CONNECT LBACSYS
Enter password: password
User mdale is granted the more sensitive label, Sensitive, which includes the PII
compartment. User jsmith gets the Confidential label, which is less sensitive.
Step 3: Create Oracle Database Vault Rules to Control the OLS Authorization
1. Connect to SQL*Plus as the Database Vault Owner.
For example:
CONNECT dbvowner
Enter password: password
Ensure that you use single quotes, as shown in this example, and not double
quotes.
4. Add the Check OLS Factor rule to the PII Rule Set.
EXEC DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET('PII Rule Set',
'Check OLS Factor');
Step 4: Update the ALTER SYSTEM Command Rule to Use the Rule Set
1. As the Database Vault Owner, check the current value of the ALTER SYSTEM
command rule, which is one of the default command rules when you install Oracle
Database Vault.
SELECT * FROM DVSYS.DBA_DV_COMMAND_RULE WHERE COMMAND = 'ALTER SYSTEM';
2. Make a note of these settings so that you can revert them to their original values
later on.
In a default installation, the ALTER SYSTEM command rule uses the Allow
System Parameters rule set, has no object owner or name, and is enabled.
3. Update the ALTER SYSTEM command rule to include the PII Rule Set.
EXEC DVSYS.DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'PII Rule Set', '%',
'%', 'Y');
This command adds the PII Rule Set to the ALTER SYSTEM command rule,
applies it to all object owners and object names, and enables the command rule.
Make a note of this setting, so that you can revert it to its original setting later on.
3. As user mdale, use the ALTER SYSTEM statement to modify the AUDIT_TRAIL
parameter.
ALTER SYSTEM SET AUDIT_TRAIL=OS, EXTENDED SCOPE=SPFILE;
System altered.
Because user mdale was assigned the Sensitive label with the PII compartment, he
can use the ALTER SYSTEM statement to modify the AUDIT_TRAIL system
parameter.
4. Set the AUDIT_TRAIL parameter back to its original value, for example:
ALTER SYSTEM SET AUDIT_TRAIL=DB, EXTENDED SCOPE=SPFILE;
5. Log in as user jsmith and then issue the same ALTER SYSTEM statement:
CONNECT jsmith
Enter password: password
Because user jsmith was assigned only the Confidential label, he cannot perform
the ALTER SYSTEM statement.
6. Now log in as user SYSTEM, who normally has the ALTER SYSTEM privilege, and
issue the same ALTER SYSTEM statement:
CONNECT SYSTEM
Enter password: password
2. Connect as the Oracle Database Vault Owner and issue the following commands
in the order shown, to set the ALTER SYSTEM command rule back to its previous
setting and remove the rule set.
For example:
CONNECT dbvowner
Enter password: password
3. Connect as the Database Vault Account Manager and remove users mdale and
jsmith.
CONNECT dbvacctmgr
Enter password: password
Table 9–1 Reports Related to Database Vault and Oracle Label Security Integration
Report Description
"Factor Configuration Issues Report" on Lists factors in which the Oracle Label Security
page 16-3 policy does not exist.
"Identity Configuration Issues Report" on Lists invalid label identities (the Oracle Label
page 16-3 Security label for this identity has been removed
and no longer exists).
"Security Policy Exemption Report" on Lists accounts and roles that have the EXEMPT
page 16-10 ACCESS POLICY system privilege granted to
them. Accounts that have this privilege can
bypass all Virtual Private Database policy filters
and any Oracle Label Security policies that use
Oracle Virtual Private Database indirectly.
Table 9–2 lists data dictionary views that provide information about existing Oracle
Label Security policies used with Oracle Database Vault.
Table 9–2 Data Dictionary Views Used for Oracle Label Security
Data Dictionary View Description
"DBA_DV_MAC_POLICY View" on Lists the Oracle Label Security policies defined
page 10-19
"DBA_DV_MAC_POLICY_FACTOR View" Lists the factors that are associated with Oracle
on page 10-19 Label Security policies
"DBA_DV_POLICY_LABEL View" on Lists the Oracle Label Security label for each
page 10-20 factor identifier in the DBA_DV_IDENTITY view
for each policy
DVSYS Schema
The DVSYS schema contains Oracle Database Vault database objects, which store
Oracle Database Vault configuration information and support the administration and
run-time processing of Oracle Database Vault. In a default installation, the DVSYS
schema is locked. The DVSYS schema also owns the AUDIT_TRAIL$ table.
Oracle Database Vault secures the DVSYS schema by using a protected schema design.
A protected schema design guards the schema against improper use of system
privileges (for example, SELECT ANY TABLE, CREATE ANY VIEW, or DROP ANY).
Oracle Database Vault protects and secures the DVSYS schema in the following ways:
■ The DVSYS protected schema and its administrative roles cannot be dropped. By
default, the DVSYS account is locked.
■ Statements such as CREATE USER, ALTER USER, DROP USER, CREATE
PROFILE, ALTER PROFILE, and DROP PROFILE can only be issued by a user
with the DV_ACCTMGR role. SYSDBA can issue these statements only if it is allowed
to do so by modifying the Can Maintain Accounts/Profiles rule set.
■ The powerful ANY system privileges for database definition language (DDL) and
data manipulation language (DML) commands are blocked in the protected
schema. This means that the objects in the DVSYS schema must be created by the
schema account itself. Also, access to the schema objects must be authorized
through object privilege grants.
■ Object privileges in the DVSYS schema can only be granted to administrative roles
in the schema. This means that users can access the protected schema only through
predefined administrative roles.
■ Only the protected schema account DVSYS can issue ALTER ROLE statements on
predefined administrative roles of the schema. "Oracle Database Vault Roles" on
page 10-2 describes Oracle Database Vault administrative roles in detail.
■ Only the protected schema account DVSYS can grant predefined roles to users
along with the ADMIN OPTION. This means that a grantee with the ADMIN
OPTION can grant the role to another user without the ADMIN OPTION.
■ The SYS.DBMS_SYS_SQL.PARSE_AS_USER procedure cannot be used to run
SQL statements on behalf of the protected schema DVSYS.
Note: Database users can grant additional object privileges and roles
to the Oracle Database Vault Administrative roles (DV_ADMIN and
DV_OWNER, for example) provided they have sufficient privileges to
do so.
DVF Schema
The DVF schema is the owner of the Oracle Database Vault DBMS_MACSEC_FUNCTION
PL/SQL package, which contains the functions that retrieve factor identities. After you
install Oracle Database Vault, the installation process locks the DVF account to better
secure it. When you create a new factor, Oracle Database Vault creates a new retrieval
function for the factor and saves it in this schema.
SECANALYST. How you use these roles depends on the requirements that your
company has in place.
Figure 10–1 illustrates the hierarchy of Oracle Database Vault roles, based on their
levels of power.
Note: You can grant additional object privileges and roles to the
Oracle Database Vault roles to extend their scope of privileges. For
example, SYSDBA can grant object privileges to an Oracle Database
Vault role as long as the object is not in the DVSYS schema or realm.
Table 10–1 summarizes the privileges available with Oracle Database Vault roles.
To find the full list of system and object privileges associated with the DV_OWNER role,
log in to SQL*Plus with administrative privileges and then enter the following queries:
SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_OWNER';
SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_OWNER';
When you install and register Oracle Database Vault, the DV_OWNER account is
created. The user who is granted this role is also granted the ADMIN option and can
run any Oracle Database Vault roles (except DV_ACCTMGR) without the ADMIN
OPTION to any account. Users granted this role also can run Oracle Database Vault
reports and monitor Oracle Database Vault.
How Are GRANT and REVOKE Operations Affected by the DV_OWNER Role?
Anyone with the DV_OWNER role can grant the DV_OWNER and DV_ADMIN roles to
another user. The account granted this role can revoke any granted protected schema
role from another account. Accounts such as SYS or SYSTEM, with the GRANT ANY
ROLE system privilege alone (directly granted or indirectly granted using a role) do
not have the right to grant or revoke the DV_OWNER role to or from any other database
account. Note also that a user with the DV_OWNER role cannot grant or revoke the DV_
ACCTMGR role.
Though this role has system privilege grants that SYS controls, it does not have the
DV_OWNER or DV_ADMIN role.
How Are GRANT and REVOKE Operations Affected by the DV_ADMIN Role?
Accounts such as SYS or SYSTEM, with the GRANT ANY ROLE system privilege alone
do not have the rights to grant or revoke DV_ADMIN from any other database account.
The user with the DV_OWNER or DV_ADMIN role can grant or revoke this role to and
from any database account.
Tips:
■ Oracle recommends that you add the user who has the DV_
ACCTMGR role to the data dictionary realm. See "Step 1: Adding
the SYSTEM User to the Data Dictionary Realm" on page 3-6 for
an example.
■ If you want the DV_ACCTMGR user to be able to grant other users
ANY privileges, then log in as user SYS with the SYSDBA privilege
and grant this user the GRANT ANY PRIVILEGE privilege.
■ Consider creating a separate, named account for the DV_ACCTMGR
user. This way, if this user forgets his or her password, you can log
in as the original DV_ACCTMGR account when you recreate the
user’s password. Otherwise, you must disable Oracle Database
Vault, log in as SYS or SYSTEM to recreate the password, and then
re-enable Database Vault.
How Are GRANT and REVOKE Operations Affected by the DV_ACCTMGR Role?
Any account, such as SYS or SYSTEM, with the GRANT ANY ROLE system privilege
alone does not have the rights to grant this role to or revoke this role from any other
database account. The account with the DV_ACCTMGR role and the ADMIN OPTION can
grant this role without the ADMIN OPTION to any given database account and revoke
this role from another account.
How Are GRANT and REVOKE Operations Affected by the DV_PUBLIC Role?
Oracle Database Vault does not enable you to directly grant object privileges in the
DVSYS schema to PUBLIC. You must grant the object privilege on the DVSYS schema
object the DV_PUBLIC role, and then grant DV_PUBLIC to PUBLIC. However, if you
do this, it is important that you do not add more object privileges to the PUBLIC role.
Doing so may undermine Oracle Database Vault security.
Tip: Oracle recommends that you grant the DV_OWNER and DV_
ACCTMGR roles to existing user accounts. However, continue to
maintain the original DV_OWNER and DV_ACCTMGR user accounts that
you created during installation. This way, for example, if a user who
has been granted one of these roles forgets his or her password, then
you can log in as the original Database Vault Account Manager user
and then recreate the password without having to disable Oracle
Database Vault.
Table 10–2 lists the Oracle Database Vault database accounts that are needed in
addition to the accounts that you create during installation.
You can create different database accounts to implement the separation of duties
requirements for Oracle Database Vault. Table 10–3 lists some model database
accounts that can act as a guide. (The accounts listed in Table 10–3 serve as a guide to
implementing Oracle Database Vault roles. These are not actual accounts that are
created during installation.)
■ DBA_DV_RULE_SET View
■ DBA_DV_RULE_SET_RULE View
■ DBA_DV_USER_PRIVS View
■ DBA_DV_USER_PRIVS_ALL View
DBA_DV_CODE View
The DBA_DV_CODE data dictionary view lists generic lookup codes for the user
interface, error messages, constraint checking, and so on. These codes are used for the
user interface, views, and for validating input in a translatable fashion.
For example:
SELECT CODE, VALUE FROM DVSYS.DBA_DV_CODE WHERE CODE_GROUP = 'BOOLEAN';
DBA_DV_COMMAND_RULE View
The DBA_DV_COMMAND_RULE data dictionary view lists the SQL statements that are
protected by command rules. See Chapter 6, "Configuring Command Rules" for more
information about command rules.
For example:
SELECT COMMAND, RULE_SET_NAME FROM DVSYS.DBA_DV_COMMAND_RULE;
DBA_DV_FACTOR View
The DBA_DV_FACTOR data dictionary view lists the existing factors in the current
database instance.
For example:
SELECT NAME, GET_EXPR FROM DVSYS.DBA_DV_FACTOR WHERE NAME = 'Session_User';
Related Views
■ DBA_DV_FACTOR_LINK View
■ DBA_DV_FACTOR_TYPE View
DBA_DV_FACTOR_LINK View
The DBA_DV_FACTOR_LINK data dictionary view shows the relationships of each
factor whose identity is determined by the association of child factors. The view
contains one entry for each parent factor and child factor. You can use this view to
resolve the relationships from the factor links to identity maps.
For example:
SELECT PARENT_FACTOR_NAME, CHILD_FACTOR_NAME FROM DVSYS.DBA_DV_FACTOR_LINK;
Related Views
■ DBA_DV_FACTOR View
■ DBA_DV_FACTOR_TYPE View
DBA_DV_FACTOR_TYPE View
The DBA_DV_FACTOR_TYPE data dictionary view lists the names and descriptions of
factor types used in the system.
For example:
SELECT * FROM DVSYS.DBA_DV_FACTOR_TYPE WHERE NAME = 'Hostname';
Related Views
■ DBA_DV_FACTOR View
■ DBA_DV_FACTOR_LINK View
DBA_DV_IDENTITY View
The DBA_DV_IDENTITY data dictionary view lists the identities for each factor.
For example:
SELECT * FROM DVSYS.DBA_DV_IDENTITY WHERE VALUE = 'GLOBAL SHARED';
Output similar to the following appears, assuming you have created only one factor
identity:
FACTOR_NAME VALUE TRUST_LEVEL
---------------- -------------- ------------
Identification_Type GLOBAL SHARED 1
Related Views
■ DBA_DV_FACTOR View
■ DBA_DV_IDENTITY_MAP View
DBA_DV_IDENTITY_MAP View
The DBA_DV_IDENTITY_MAP data dictionary view lists the mappings for each factor
identity. The view includes mapping factors that are identified by other factors to
combinations of parent-child factor links. For each factor, the maps are joined by the
OR operation, and for different factors, the maps are joined by the AND operation.
You can use this view to resolve the identity for factors that are identified by other
factors (for example, a domain) or for factors that have continuous domains (for
example, Age or Temperature).
For example:
SELECT FACTOR_NAME, IDENTITY_VALUE FROM DVSYS.DBA_DV_IDENTITY_MAP;
Related Views
■ DBA_DV_FACTOR View
■ DBA_DV_IDENTITY View
DBA_DV_MAC_POLICY View
The DBA_DV_MAC_POLICY data dictionary view lists the Oracle Label Security
policies defined for use with Oracle Database Vault.
For example:
SELECT POLICY_NAME, ALGORITHM_CODE, ALGORITHM_MEANING
FROM DVSYS.DBA_DV_MAC_POLICY;
Related Views
■ DBA_DV_MAC_POLICY_FACTOR View
■ DBA_DV_POLICY_LABEL View
DBA_DV_MAC_POLICY_FACTOR View
The DBA_DV_MAC_POLICY data dictionary view lists the factors that are associated
with Oracle Label Security policies.
You can use this view to determine what factors contribute to the maximum session
label for each policy using the DBA_DV_MAC_POLICY view.
For example:
SELECT * FROM DVSYS.DBA_DV_MAC_POLICY_FACTOR;
Related Views
■ DBA_DV_MAC_POLICY View
■ DBA_DV_POLICY_LABEL View
DBA_DV_POLICY_LABEL View
The DBA_DV_POLICY_LABEL data dictionary view lists the Oracle Label Security
label for each factor identifier in the DBA_DV_IDENTITY view for each policy.
For example:
SELECT * FROM DVSYS.DBA_DV_POLICY_LABEL;
Related Views
■ DBA_DV_MAC_POLICY View
■ DBA_DV_MAC_POLICY_FACTOR View
DBA_DV_PUB_PRIVS View
The DBA_DV_PUB_PRIVS data dictionary view lists data reflected in the Oracle
Database Vault privilege management reports used in the Oracle Database Vault
Administrator (DV_ADMIN). See also "Privilege Management - Summary Reports" on
page 16-9.
For example:
SELECT USERNAME, ACCESS_TYPE FROM DVSYS.DBA_DV_PUB_PRIVS WHERE USERNAME = 'OE';
Related Views
■ DBA_DV_USER_PRIVS View
■ DBA_DV_USER_PRIVS_ALL View
■ DBA_DV_ROLE View
DBA_DV_REALM View
The DBA_DV_REALM data dictionary view lists the realms created in the current
database instance.
For example:
SELECT NAME, AUDIT_OPTIONS, ENABLED FROM DVSYS.DBA_DV_REALM
WHERE AUDIT_OPTIONS = 'N';
Related Views
■ DBA_DV_REALM_AUTH View
■ DBA_DV_REALM_OBJECT View
DBA_DV_REALM_AUTH View
The DBA_DV_REALM_AUTH data dictionary view lists the authorization of a named
database user account or database role (GRANTEE) to access realm objects in a
particular realm. See Defining Realm Authorization on page 4-5 for more information.
For example:
SELECT REALM_NAME, GRANTEE, AUTH_RULE_SET_NAME FROM DVSYS.DBA_DV_REALM_AUTH;
Related Views
■ DBA_DV_REALM View
■ DBA_DV_REALM_OBJECT View
DBA_DV_REALM_OBJECT View
The DBA_DV_REALM_OBJECT data dictionary view lists the database schemas, or
subsets of schemas with specific database objects contained therein, that are secured
by the realms. See "Creating Realm-Secured Objects" on page 4-4 for more information.
For example:
SELECT REALM_NAME, OWNER, OBJECT_NAME FROM DVSYS.DBA_DV_REALM_OBJECT;
Related Views
■ DBA_DV_REALM View
■ DBA_DV_REALM_AUTH View
DBA_DV_ROLE View
The DBA_DV_ROLE data dictionary view lists the Oracle Database Vault secure
application roles used in privilege management.
For example:
SELECT ROLE, RULE_NAME FROM DVSYS.DBA_DV_ROLE;
Related Views
■ DBA_DV_PUB_PRIVS View
■ DBA_DV_USER_PRIVS View
■ DBA_DV_USER_PRIVS_ALL View
DBA_DV_RULE View
The DBA_DV_RULE data dictionary view lists the rules that have been defined.
For example:
SELECT * FROM DVSYS.DBA_DV_RULE WHERE NAME = 'Maintenance Window';
To find the rule sets that use specific rules, query the DBA_DV_RULE_SET_RULE view.
Related Views
■ DBA_DV_RULE_SET View
■ DBA_DV_RULE_SET_RULE View
DBA_DV_RULE_SET View
The DBA_DV_RULE_SET data dictionary view lists the rules sets that have been
created.
For example:
SELECT RULE_SET_NAME, HANDLER_OPTIONS, HANDLER FROM DVSYS.DBA_DV_RULE_SET
WHERE RULE_SET_NAME = 'Maintenance Period';
Related Views
■ DBA_DV_RULE View
■ DBA_DV_RULE_SET_RULE View
DBA_DV_RULE_SET_RULE View
The DBA_DV_RULE_SET_RULE data dictionary view lists rules that are associated
with existing rule sets.
For example:
SELECT RULE_SET_NAME, RULE_NAME, RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET_RULE
WHERE RULE_NAME = 'Is Security Officer';
Related Views
■ DBA_DV_RULE View
■ DBA_DV_RULE_SET View
DBA_DV_USER_PRIVS View
The DBA_DV_USER_PRIVS data dictionary view lists the privileges for a database user
account excluding privileges granted through the PUBLIC role.
For example:
SELECT USERNAME, ACCESS_TYPE, PRIVILEGE FROM DVSYS.DBA_DV_USER_PRIVS;
Related Views
■ DBA_DV_PUB_PRIVS View
■ DBA_DV_ROLE View
■ DBA_DV_USER_PRIVS_ALL View
DBA_DV_USER_PRIVS_ALL View
The DBA_DV_USER_PRIVS_ALL data dictionary view lists the privileges for a
database account including privileges granted through PUBLIC.
For example:
SELECT USERNAME, ACCESS_TYPE, PRIVILEGE FROM DVSYS.DBA_DV_USER_PRIVS;
Related Views
■ DBA_DV_PUB_PRIVS View
■ DBA_DV_ROLE View
■ DBA_DV_USER_PRIVS View
ADD_AUTH_TO_REALM Procedure
The ADD_AUTH_TO_REALM procedure authorizes a user or role to access a realm as an
owner or a participant. The person running this procedure cannot add himself or
herself to the realm as a realm participant. For detailed information about realm
authorization, see "Defining Realm Authorization" on page 4-5.
Optionally, you can specify a rule set that must be checked before allowing the
authorization to proceed, a rule set.
Syntax
DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name IN VARCHAR2,
grantee IN VARCHAR2,
rule_set_name IN VARCHAR2,
auth_options IN NUMBER);
Parameters
Examples
The following example authorizes user SYSADM as a participant in the Performance
Statistics Realm.
BEGIN
DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name => 'Performance Statistics Realm',
grantee => 'SYSADM');
END;
/
This example sets user SYSADM as the owner of the Performance Statistics Realm.
BEGIN
DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name => 'Performance Statistics Realm',
grantee => 'SYSADM',
auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/
The next example triggers the Check Conf Access rule set before allowing user
SYSADM to be made the owner of the Performance Statistics Realm.
BEGIN
DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name => 'Performance Statistics Realm',
grantee => 'SYSADM',
rule_set_name => 'Check Conf Access',
auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/
ADD_OBJECT_TO_REALM Procedure
This procedure registers a set of objects for realm protection.
Syntax
DVSYS.DBMS_MACADM.ADD_OBJECT_TO_REALM(
realm_name IN VARCHAR2,
object_owner IN VARCHAR2,
object_name IN VARCHAR2,
object_type IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.ADD_OBJECT_TO_REALM(
realm_name => 'Performance Statistics Realm',
object_owner => '%',
object_name => 'GATHER_SYSTEM_STATISTICS',
object_type => 'ROLE');
END;
/
CREATE_REALM Procedure
The CREATE_REALM procedure creates a realm. After you create the realm, use the
following procedures to complete the realm definition:
■ ADD_OBJECT_TO_REALM procedure registers one or more objects for the realm.
■ ADD_AUTH_TO_REALM procedures authorize users or roles for the realm.
Syntax
DVSYS.DBMS_MACADM.CREATE_REALM(
realm_name IN VARCHAR2,
description IN VARCHAR2,
enabled IN VARCHAR2,
audit_options IN NUMBER);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_REALM(
realm_name => 'Performance Statistics Realm',
description => 'Realm to measure performance',
enabled => 'DBMS_MACUTL.G_YES',
audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL);
END;
/
DELETE_AUTH_FROM_REALM Procedure
The DELETE_AUTH_FROM_REALM procedure removes the authorization of a user or
role to access a realm.
Syntax
DVSYS.DBMS_MACADM.DELETE_AUTH_FROM_REALM(
realm_name IN VARCHAR2,
grantee IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_AUTH_FROM_REALM(
realm_name => 'Performance Statistics Realm',
grantee => 'SYS');
END;
/
DELETE_OBJECT_FROM_REALM Procedure
The DELETE_OBJECT_FROM_REALM procedure removes a set of objects from realm
protection.
Syntax
DVSYS.DBMS_MACADM.DELETE_OBJECT_FROM_REALM(
realm_name IN VARCHAR2,
object_owner IN VARCHAR2,
object_name IN VARCHAR2,
object_type IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_OBJECT_FROM_REALM(
realm_name => 'Performance Statistics Realm',
object_owner => 'SYS',
object_name => 'GATHER_SYSTEM_STATISTICS',
object_type => 'ROLE');
END;
/
DELETE_REALM Procedure
The DELETE_REALM procedure deletes a realm but does not remove its associated
objects and authorizations. Before you delete a realm, you can locate its associated
objects by querying the DVSYS.DBA_DV_REALM_OBJECT view, described in"Oracle
Database Vault Data Dictionary Views" on page 10-11.
If you want to remove the associated objects and authorizations as well as the realm,
see "DELETE_REALM_CASCADE Procedure" on page 11-8.
Syntax
DVSYS.DBMS_MACADM.DELETE_REALM(
realm_name IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACADM.DELETE_REALM('Performance Statistics Realm');
DELETE_REALM_CASCADE Procedure
The DELETE_REALM_CASCADE procedure deletes a realm, including its related
Database Vault configuration information that specifies who is authorized
(DVSYS.DBA_DV_REALM_AUTH view) and what objects are protected (DVSYS.DBA_
DV_REALM_OBJECT view). It does not delete the actual database objects or users. To
find a listing of the realm-related objects, query the DVSYS.DBA_DV_REALM view. To
find its authorizations, query DVSYS.DBA_DV_REALM_AUTH. Both are described
under "Oracle Database Vault Data Dictionary Views" on page 10-11.
Syntax
DVSYS.DBMS_MACADM.DELETE_REALM_CASCADE(
realm_name IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACADM.DELETE_REALM_CASCADE('Performance Statistics Realm');
RENAME_REALM Procedure
The RENAME_REALM procedure renames a realm. The name change takes effect
everywhere the realm is used.
Syntax
DVSYS.DBMS_MACADM.RENAME_REALM(
realm_name IN VARCHAR2,
new_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.RENAME_REALM(
realm_name => 'Performance Statistics Realm',
new_name => 'Sector 2 Performance Statistics Realm');
END;
/
UPDATE_REALM Procedure
The UPDATE_REALM procedure updates a realm.
Syntax
DVSYS.DBMS_MACADM.UPDATE_REALM(
realm_name IN VARCHAR2,
description IN VARCHAR2,
enabled IN VARCHAR2,
audit_options IN NUMBER DEFAULT NULL);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_REALM(
realm_name => 'Sector 2 Performance Statistics Realm',
description => 'Realm to measure performance for Sector 2 applications',
enabled => 'Y',
audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + G_REALM_AUDIT_SUCCESS);
END;
/
UPDATE_REALM_AUTH Procedure
The UPDATE_REALM_AUTH procedure updates the authorization of a user or role to
access a realm.
Syntax
DVSYS.DBMS_MACADM.UPDATE_REALM_AUTH(
realm_name IN VARCHAR2,
grantee IN VARCHAR2,
rule_set_name IN VARCHAR2,
auth_options IN NUMBER);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_REALM_AUTH(
realm_name => 'Sector 2 Performance Statistics Realm',
grantee => 'SYSADM',
rule_set_name => 'Check Conf Access',
auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/
See Also:
■ Chapter 5, "Configuring Rule Sets" for detailed information about
rule sets
■ Chapter 13, "Using the DVSYS.DBMS_MACUTL Package" for a
set of general-purpose utility procedures that you can use with the
rule set procedures
■ Chapter 14, "Using the Oracle Database Vault PL/SQL Interfaces,"
for PL/SQL interfaces that you can use with rules
ADD_RULE_TO_RULE_SET Procedure
The ADD_RULE_TO_RULE_SET procedure adds a rule to a rule set, and lets you
specify whether to have the rule be checked when the rule set is evaluated.
Syntax
DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name IN VARCHAR2,
rule_name IN VARCHAR2,
rule_order IN NUMBER,
enabled IN VARCHAR2);
Parameters
Examples
The following example adds a rule to a rule set, and by omitting the enabled
parameter, automatically enables the rule to be checked when the rule set is evaluated.
BEGIN
DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
rule_name => 'Restrict DROP TABLE operations'),
rule_order => 1);
END;
/
This example adds the rule to the rule set but disables rule checking.
BEGIN
DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
rule_name => 'Check UPDATE operations',
rule_order => 1,
enabled => 'DBMS_MACUTL.G_NO');
END;
/
CREATE_RULE Procedure
The CREATE_RULE procedure creates a rule. After you create a rule, you can add it to a
rule set.
Syntax
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name IN VARCHAR2,
rule_expr IN VARCHAR2);
Parameters
See "Creating a New Rule" on page 5-6 for more information on rule
expressions.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check UPDATE operations',
rule_expr =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''');
END;
/
CREATE_RULE_SET Procedure
The CREATE_RULE_SET procedure creates a rule set. After you create a rule set, you
can use the CREATE_RULE and ADD_RULE_TO_RULE_SET procedures to create and
add rules to the rule set.
Syntax
DVSYS.DBMS_MACADM.CREATE_RULE_SET(
rule_set_name IN VARCHAR2,
description IN VARCHAR2,
enabled IN VARCHAR2,
eval_options IN NUMBER,
audit_options IN NUMBER,
fail_options IN NUMBER,
fail_message IN VARCHAR2,
fail_code IN NUMBER,
handler_options IN NUMBER,
handler IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
description => 'DBA access through predefined processes',
enabled => 'Y',
eval_options => 2,
audit_options => DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_
AUDIT_SUCCESS,
fail_options => 2,
fail_message => '',
fail_code => 20461,
handler_options => DBMS_MACUTL.G_RULESET_HANDLER_FAIL,
handler => 'dbavowner.email_alert');
END;
/
DELETE_RULE Procedure
The DELETE_RULE procedure deletes a rule.
Syntax
DVSYS.DBMS_MACADM.DELETE_RULE(
rule_name IN VARCHAR2);
Parameter
Example
EXEC DVSYS.DBMS_MACADM.DELETE_RULE('Check UPDATE operations');
DELETE_RULE_FROM_RULE_SET Procedure
The DELETE_RULE_FROM_RULE_SET procedure deletes a rule from a rule set.
Syntax
DVSYS.DBMS_MACADM.DELETE_RULE_FROM_RULE_SET(
rule_set_name IN VARCHAR2,
rule_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_RULE_FROM_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
rule_name => 'Check UPDATE operations');
END;
/
DELETE_RULE_SET Procedure
The DELETE_RULE_SET procedure deletes a rule set.
Syntax
DVSYS.DBMS_MACADM.DELETE_RULE_SET(
rule_set_name IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACADM.DELETE_RULE_SET('Limit_DBA_Access');
RENAME_RULE Procedure
The RENAME_RULE procedure renames a rule. The name change takes effect
everywhere the rule is used.
Syntax
DVSYS.DBMS_MACADM.RENAME_RULE(
rule_name IN VARCHAR2,
new_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.RENAME_RULE(
rule_name => 'Check UPDATE operations',
new_name => 'Check Sector 2 Processes');
END;
/
RENAME_RULE_SET Procedure
The RENAME_RULE_SET procedure renames a rule set. The name change takes effect
everywhere the rule set is used.
Syntax
DVSYS.DBMS_MACADM.RENAME_RULE_SET(
rule_set_name IN VARCHAR2,
new_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.RENAME_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
new_name => 'Limit Sector 2 Access');
END;
/
SYNC_RULES Procedure
The SYNC_RULES procedure synchronizes the rules in Oracle Database Vault and
Advanced Queuing Rules engine. You must perform this operation immediately after
you roll back an ADD_RULE_TO_RULESET, a DELETE_RULE, or an UPDATE_RULE
operation.
Syntax
DVSYS.DBMS_MACADM.SYNC_RULES();
Parameters
None.
Example
EXEC DVSYS.DBMS_MACADM.SYNC_RULES();
UPDATE_RULE Procedure
The UPDATE_RULE procedure updates a rule.
Syntax
DVSYS.DBMS_MACADM.UPDATE_RULE(
rule_name IN VARCHAR2,
rule_expr IN VARCHAR2);
Parameters
See "Creating a New Rule" on page 5-6 for more information on rule
expressions.
To find existing rule expressions, query the DVSYS.DBA_DV_RULE view.
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_RULE(
rule_name => 'Check UPDATE operations',
rule_expr =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM'' AND
(
UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''APPSRVR%'' OR
UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''DBAPP%'' )'
);
END;
/
UPDATE_RULE_SET Procedure
The UPDATE_RULE_SET procedure updates a rule set.
Syntax
DVSYS.DBMS_MACADM.UPDATE_RULE_SET(
rule_set_name IN VARCHAR2,
description IN VARCHAR2,
enabled IN VARCHAR2,
eval_options IN NUMBER,
audit_options IN NUMBER,
fail_options IN NUMBER,
fail_message IN VARCHAR2,
fail_code IN NUMBER,
handler_options IN NUMBER,
handler IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
description => 'DBA access through predefined processes',
enabled => 'Y',
eval_options => 2,
audit_options => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
fail_options => DBMS_MACUTL.G_RULESET_FAIL_SHOW,
fail_message => 'Access denied!',
fail_code => -20900,
handler_options => DBMS_MACUTL.G_RULESET_HANDLER_OFF,
handler => '');
END;
/
CREATE_COMMAND_RULE Procedure
The CREATE_COMMAND_RULE procedure creates a command rule, associates it with a
rule set, and lets you enable the command rule for rule checking with a rule set.
Syntax
DVSYS.DBMS_MACADM.CREATE_COMMAND_RULE(
command IN VARCHAR2,
rule_set_name IN VARCHAR2,
object_owner IN VARCHAR2,
object_name IN VARCHAR2,
enabled IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_COMMAND_RULE(
command => 'SELECT',
rule_set_name => 'Limit Sector 2 Access',
object_owner => 'SYSADM',
object_name => 'EMP_DATA',
DELETE_COMMAND_RULE Procedure
The DELETE_COMMAND_RULE procedure drops a command rule declaration.
Syntax
DVSYS.DBMS_MACADM.DELETE_COMMAND_RULE(
command IN VARCHAR2,
object_owner IN VARCHAR2,
object_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_COMMAND_RULE(
command => 'SELECT',
object_owner => 'SYSADM',
object_name => 'EMP_DATA');
END;
/
UPDATE_COMMAND_RULE Procedure
The UPDATE_COMMAND_RULE procedure updates a command rule declaration.
Syntax
DVSYS.DBMS_MACADM.UPDATE_COMMAND_RULE(
command IN VARCHAR2,
rule_set_name IN VARCHAR2,
object_owner IN VARCHAR2,
object_name IN VARCHAR2,
enabled IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_COMMAND_RULE(
command => 'SELECT',
rule_set_name => 'Limit Sector 2 Access',
object_owner => 'SYSADM',
object_name => '%',
enabled => 'DBMS_MACUTL.G_NO');
END;
/
See Also:
■ Chapter 7, "Configuring Factors" for detailed information about
factors
■ Chapter 13, "Using the DVSYS.DBMS_MACUTL Package" for a
set of general-purpose utility procedures that you can use with the
factor procedures
■ Chapter 14, "Using the Oracle Database Vault PL/SQL Interfaces,"
for a set of PL/SQL interfaces that you can use with factors
CREATE_IDENTITY_MAP Procedure Defines a set of tests that are used to derive the identity of a factor
from the value of linked child factors (subfactors)
DELETE_FACTOR Procedure Deletes a factor
DELETE_FACTOR_LINK Procedure Removes a parent-child relationship for two factors
DELETE_FACTOR_TYPE Procedure Deletes a factor type
DELETE_IDENTITY Procedure Removes an identity
DELETE_IDENTITY_MAP Procedure Removes an identity map from a factor
DROP_DOMAIN_IDENTITY Procedure Removes an Oracle Real Application Clusters (RAC) database node
from a domain
GET_INSTANCE_INFO Function Returns information from the SYS.V_$INSTANCE system table
about the current database instance; returns a VARCHAR2 value
GET_SESSION_INFO Function Returns information from the SYS.V_$SESSION system table for
the current session; returns a VARCHAR2 value
RENAME_FACTOR Procedure Renames a factor. The name change takes effect everywhere the
factor is used.
RENAME_FACTOR_TYPE Procedure Renames a factor type. The name change takes effect everywhere the
factor type is used.
ADD_FACTOR_LINK Procedure
The ADD_FACTOR_LINK procedure specifies a parent-child relationship for two
factors.
Syntax
DVSYS.DBMS_MACADM.ADD_FACTOR_LINK(
parent_factor_name IN VARCHAR2,
child_factor_name IN VARCHAR2,
label_indicator IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.ADD_FACTOR_LINK(
parent_factor_name => 'HQ_ClientID',
child_factor_name => 'Div1_ClientID',
label_indicator => 'Y');
END;
/
ADD_POLICY_FACTOR Procedure
The ADD_POLICY_FACTOR procedure specifies that the label for a factor contributes to
the Oracle Label Security label for a policy.
Syntax
DVSYS.DBMS_MACADM.ADD_POLICY_FACTOR(
policy_name IN VARCHAR2,
factor_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.ADD_POLICY_FACTOR(
policy_name => 'AccessData',
factor_name => 'Sector2_ClientID');
END;
/
CHANGE_IDENTITY_FACTOR Procedure
The CHANGE_IDENTITY_FACTOR procedure associates an identity with a different
factor.
Syntax
DVSYS.DBMS_MACADM.CHANGE_IDENTITY_FACTOR(
factor_name IN VARCHAR2,
value IN VARCHAR2,
new_factor_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CHANGE_IDENTITY_FACTOR(
factor_name => 'Sector2_ClientID',
value => 'intranet',
new_factor_name => 'Sector4_ClientID');
END;
/
CHANGE_IDENTITY_VALUE Procedure
The CHANGE_IDENTITY_FACTOR procedure updates the value of an identity.
Syntax
DVSYS.DBMS_MACADM.CHANGE_IDENTITY_VALUE(
factor_name IN VARCHAR2,
value IN VARCHAR2,
new_value IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CHANGE_IDENTITY_VALUE(
factor_name => 'Sector2_ClientID',
value => 'remote',
new_value => 'intranet');
END;
/
CREATE_DOMAIN_IDENTITY Procedure
The CREATE_DOMAIN_IDENTITY procedure adds an Oracle Real Application Clusters
(RAC) database node to the domain factor identities and labels it according to the
Oracle Label Security policy.
Syntax
DVSYS.DBMS_MACADM.CREATE_DOMAIN_IDENTITY(
domain_name IN VARCHAR2,
domain_host IN VARCHAR2,
policy_name IN VARCHAR2 DEFAULT NULL,
domain_label IN VARCHAR2 DEFAULT NULL);
Parameters
Examples
BEGIN
DVSYS.DBMS_MACADM.CREATE_DOMAIN_IDENTITY(
domain_name => 'example',
domain_host => 'mydom_host',
policy_name => 'AccessData',
domain_label => 'sensitive');
END;
/
CREATE_FACTOR Procedure
The CREATE_FACTOR procedure creates a factor. After you create a factor, you can
give it an identity by using the CREATE_IDENTITY procedure, described in
"CREATE_IDENTITY Procedure" on page 11-34.
Syntax
DVSYS.DBMS_MACADM.CREATE_FACTOR(
factor_name IN VARCHAR2,
factor_type_name IN VARCHAR2,
description IN VARCHAR2,
rule_set_name IN VARCHAR2,
get_expr IN VARCHAR2,
validate_expr IN VARCHAR2,
identify_by IN NUMBER,
labeled_by IN NUMBER,
eval_options IN NUMBER,
audit_options IN NUMBER,
fail_options IN NUMBER);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_FACTOR(
factor_name => 'Sector2_DB',
factor_type_name => 'Instance',
description => ' ',
rule_set_name => 'Limit_DBA_Access',
get_expr => 'UPPER(SYS_CONTEXT(''USERENV'',''DB_NAME''))',
validate_expr => 'dbavowner.check_db_access',
identify_by => 2,
labeled_by => 0,
eval_options => DBMS_MACUTL.G_EVAL_ON_SESSION,
audit_options => DBMS_MACUTL.G_AUDIT_OFF,
fail_options => DBMS_MACUTL.G_FAIL_SILENTLY);
END;
/
CREATE_FACTOR_TYPE Procedure
The CREATE_FACTOR_TYPE procedure creates a user-defined factor type.
Syntax
DVSYS.DBMS_MACADM.CREATE_FACTOR_TYPE(
name IN VARCHAR2,
description IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_FACTOR_TYPE(
name => 'Sector2Instance',
description => 'Checks DB instances used in Sector 2');
END;
/
CREATE_IDENTITY Procedure
The CREATE_IDENTITY procedure assigns an identity and an associated trust level
for a given factor. After you create a factor, you must assign it an identity.
Syntax
DVSYS.DBMS_MACADM.CREATE_IDENTITY(
factor_name IN VARCHAR2,
value IN VARCHAR2,
trust_level IN NUMBER);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_IDENTITY(
factor_name => 'Sector2_ClientID',
value => 'intranet',
trust_level => 5);
END;
/
CREATE_IDENTITY_MAP Procedure
The CREATE_IDENTITY_MAP procedure defines a set of tests that are used to derive
the identity of a factor from the value of linked child factors (subfactors).
Syntax
DVSYS.DBMS_MACADM.CREATE_IDENTITY_MAP(
identity_factor_name IN VARCHAR2,
identity_factor_value IN VARCHAR2,
parent_factor_name IN VARCHAR2,
child_factor_name IN VARCHAR2,
operation IN VARCHAR2,
operand1 IN VARCHAR2,
operand2 IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_IDENTITY_MAP(
identity_factor_name => 'Sector2_ClientID',
identity_factor_value => 'intranet',
parent_factor_name => 'HQ_ClientID',
child_factor_name => 'Div1_ClientID',
operation => '<',
operand1 => '192.0.2.50',
operand2 => '192.0.2.100');
END;
/
DELETE_FACTOR Procedure
The DELETE_FACTOR procedure deletes a factor.
Syntax
DVSYS.DBMS_MACADM.DELETE_FACTOR(
factor_name IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACADM.DELETE_FACTOR('Sector2_ClientID');
DELETE_FACTOR_LINK Procedure
The DELETE_FACTOR_LINK procedure removes a parent-child relationship for two
factors.
Syntax
DVSYS.DBMS_MACADM.DELETE_FACTOR_LINK(
parent_factor_name IN VARCHAR2,
child_factor_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_FACTOR_LINK(
parent_factor_name => 'HQ_ClientID',
child_factor_name => 'Div1_ClientID');
END;
/
DELETE_FACTOR_TYPE Procedure
The DELETE_FACTOR_TYPE procedure deletes a factor type.
Syntax
DVSYS.DBMS_MACADM.DELETE_FACTOR_TYPE(
name IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACADM.DELETE_FACTOR_TYPE('Sector2Instance');
DELETE_IDENTITY Procedure
The DELETE_IDENTITY procedure removes an identity from an existing factor.
Syntax
DVSYS.DBMS_MACADM.DELETE_IDENTITY(
factor_name IN VARCHAR2,
value IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_IDENTITY(
factor_name => 'Sector2_ClientID',
value => 'intranet');
END;
/
DELETE_IDENTITY_MAP Procedure
The DELETE_IDENTITY_MAP procedure removes an identity map for a factor.
Syntax
DVSYS.DBMS_MACADM.DELETE_IDENTITY_MAP(
identity_factor_name IN VARCHAR2,
identity_factor_value IN VARCHAR2,
parent_factor_name IN VARCHAR2,
child_factor_name IN VARCHAR2,
operation IN VARCHAR2,
operand1 IN VARCHAR2,
operand2 IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_IDENTITY_MAP(
identity_factor_name => 'Sector2_ClientID',
identity_factor_value => 'intranet',
parent_factor_name => 'HQ_ClientID',
child_factor_name => 'Div1_ClientID',
operation => '<',
operand1 => '192.0.2.10',
operand2 => '192.0.2.15');
END;
/
DROP_DOMAIN_IDENTITY Procedure
The DROP_DOMAIN_IDENTITY procedure removes an Oracle Real Application
Clusters database node from a domain.
Syntax
DVSYS.DBMS_MACADM.DROP_DOMAIN_IDENTITY(
domain_name IN VARCHAR2,
domain_host IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DROP_DOMAIN_IDENTITY(
domain_name => 'example',
domain_host => 'mydom_host');
END;
/
GET_INSTANCE_INFO Function
The GET_INSTANCE_INFO function returns information from the SYS.V_$INSTANCE
system table about the current database instance. The V$INSTANCE data dictionary
view displays information from this table. See Oracle Database Reference for more
information.
Syntax
DVSYS.DBMS_MACADM.GET_INSTANCE_INFO(
p_parameter IN VARCHAR2)
RETURN VARCHAR2;
Parameters
Example
DECLARE
instance_var varchar2 := null;
BEGIN
instance_var = DVSYS.DBMS_MACADM.GET_INSTANCE_INFO('INSTANCE_NAME');
END;
/
GET_SESSION_INFO Function
The GET_SESSION_INFO function returns information from the SYS.V_$SESSION
system table for the current session. The V$SESSION data dictionary view displays
information from this table. See Oracle Database Reference for more information.
Syntax
DVSYS.DBMS_MACADM.GET_SESSION_INFO(
p_parameter IN VARCHAR2)
RETURN VARCHAR2;
Parameters
Example
DECLARE
session_var varchar2 := null;
BEGIN
session_var = DVSYS.DBMS_MACADM.GET_SESSION_INFO('PROCESS');
END;
/
RENAME_FACTOR Procedure
The RENAME_FACTOR procedure renames a factor. The name change takes effect
everywhere the factor is used.
Syntax
DVSYS.DBMS_MACADM.RENAME_FACTOR(
factor_name IN VARCHAR2,
new_factor_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.RENAME_FACTOR(
factor_name => 'Sector2_ClientID',
new_factor_name => 'Sector2_Clients');
END;
/
RENAME_FACTOR_TYPE Procedure
The RENAME_FACTOR procedure renames a factor type. The name change takes effect
everywhere the factor type is used.
Syntax
DVSYS.DBMS_MACADM.RENAME_FACTOR_TYPE(
old_name IN VARCHAR2,
new_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.RENAME_FACTOR_TYPE(
old_name => 'Sector2Instance',
new_name => 'Sector2DBInstance');
END;
/
UPDATE_FACTOR Procedure
The UPDATE_FACTOR procedure updates the description of a factor type.
Syntax
DVSYS.DBMS_MACADM.UPDATE_FACTOR(
factor_name IN VARCHAR2,
factor_type_name IN VARCHAR2,
description IN VARCHAR2,
rule_set_name IN VARCHAR2,
get_expr IN VARCHAR2,
validate_expr IN VARCHAR2,
identify_by IN NUMBER,
labeled_by IN NUMBER,
eval_options IN NUMBER,
audit_options IN NUMBER,
fail_options IN NUMBER);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_FACTOR(
factor_name => 'Sector2_DB',
factor_type_name => 'Instance',
description => ' ',
rule_set_name => 'Limit_DBA_Access',
get_expr => 'UPPER(SYS_CONTEXT(''USERENV'',''DB_NAME''))',
validate_expr => 'dbavowner.check_db_access',
identify_by => 2,
labeled_by => 0,
eval_options => DBMS_MACUTL.G_EVAL_ON_ACCESS,
audit_options => DBMS_MACUTL.G_AUDIT_ALWAYS,
fail_options => DBMS_MACUTL.G_FAIL_WITH_MESSAGE);
END;
/
UPDATE_FACTOR_TYPE Procedure
The UPDATE_FACTOR_TYPE procedure updates a factor type.
Syntax
DVSYS.DBMS_MACADM.UPDATE_FACTOR_TYPE(
name IN VARCHAR2,
description IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_FACTOR_TYPE(
name => 'Sector2DBInstance',
description => 'Checks DB instances used in Sector 2');
END;
/
UPDATE_IDENTITY Procedure
The UPDATE_IDENTITY procedure updates the trust level of a factor identity.
Syntax
DVSYS.DBMS_MACADM.UPDATE_IDENTITY(
factor_name IN VARCHAR2,
value IN VARCHAR2,
trust_level IN NUMBER);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_IDENTITY(
factor_name => 'Sector2_ClientID',
value => 'intranet',
trust_level => 10);
END;
/
CREATE_ROLE Procedure
The CREATE_ROLE procedure creates an Oracle Database Vault secure application
role.
Syntax
DVSYS.DBMS_MACADM.CREATE_ROLE(
role_name IN VARCHAR2,
enabled IN VARCHAR2,
rule_set_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_ROLE(
role_name => 'Sector2_APP_MGR',
enabled => 'Y',
rule_set_name => 'Check App2 Access');
END;
/
DELETE_ROLE Procedure
The DELETE_ROLE procedure deletes an Oracle Database Vault secure application
role.
Syntax
DVSYS.DBMS_MACADM.DELETE_ROLE(
role_name IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACADM.DELETE_ROLE('SECT2_APP_MGR');
RENAME_ROLE Procedure
The RENAME_ROLE procedure renames an Oracle Database Vault secure application
role. The name change takes effect everywhere the role is used.
Syntax
DVSYS.DBMS_MACADM.RENAME_ROLE(
role_name IN VARCHAR2,
new_role_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.RENAME_ROLE(
role_name => 'SECT2_APP_MGR',
new_role_name => 'SECT2_SYSADMIN', );
END;
/
UPDATE_ROLE Procedure
The UPDATE_ROLE procedure updates a Oracle Database Vault secure application role.
Syntax
DVSYS.DBMS_MACADM.UPDATE_ROLE(
role_name IN VARCHAR2,
enabled IN VARCHAR2,
rule_set_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_ROLE(
role_name => 'SECT2_SYSADMIN',
enabled => 'Y',
rule_set_name => 'System Access Controls');
END;
/
CREATE_MAC_POLICY Procedure
The CREATE_MAC_POLICY procedure specifies the algorithm that is used to merge
labels when computing the label for a factor, or the Oracle Label Security Session label.
Syntax
DVSYS.DBMS_MACADM.CREATE_MAC_POLICY(
policy_name IN VARCHAR2,
algorithm IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_MAC_POLICY(
policy_name => 'Access Locations',
algorithm => 'HUU');
END;
/
CREATE_POLICY_LABEL Procedure
The CREATE_POLICY_LABEL procedure labels an identity within an Oracle Label
Security policy.
Syntax
DVSYS.DBMS_MACADM.CREATE_POLICY_LABEL(
identity_factor_name IN VARCHAR2,
identity_factor_value IN VARCHAR2,
policy_name IN VARCHAR2,
label IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_POLICY_LABEL(
identity_factor_name => 'App_Host_Name',
identity_factor_value => 'Sect2_Fin_Apps',
policy_name => 'Access Locations',
label => 'Sensitive');
END;
/
DELETE_MAC_POLICY_CASCADE Procedure
The DELETE_MAC_POLICY_CASCADE procedure deletes all Oracle Database Vault
objects related to an Oracle Label Security policy.
Syntax
DVSYS.DBMS_MACADM.DELETE_MAC_POLICY_CASCADE(
policy_name IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACADM.DELETE_MAC_POLICY_CASCADE('Access Locations');
DELETE_POLICY_FACTOR Procedure
The DELETE_POLICY_FACTOR procedure removes the factor from contributing to the
Oracle Label Security label.
Syntax
DVSYS.DBMS_MACADM.DELETE_POLICY_FACTOR(
policy_name IN VARCHAR2,
factor_name IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_POLICY_FACTOR(
policy_name => 'Access Locations',
factor_name => 'App_Host_Name');
END;
/
DELETE_POLICY_LABEL Procedure
The DELETE_POLICY_LABEL procedure removes the label from an identity within an
Oracle Label Security policy.
Syntax
DVSYS.DBMS_MACADM.DELETE_POLICY_LABEL(
identity_factor_name IN VARCHAR2,
identity_factor_value IN VARCHAR2,
policy_name IN VARCHAR2,
label IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.DELETE_POLICY_LABEL(
identity_factor_name => 'App_Host_Name',
identity_factor_value => 'Sect2_Fin_Apps',
policy_name => 'Access Locations',
label => 'Sensitive');
END;
/
UPDATE_MAC_POLICY Procedure
The UPDATE_MAC_POLICY procedure specifies the algorithm that is used to merge
labels when computing the label for a factor, or the Oracle Label Security Session label.
Syntax
DVSYS.DBMS_MACADM.UPDATE_MAC_POLICY(
policy_name IN VARCHAR2,
algorithm IN VARCHAR2);
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.UPDATE_MAC_POLICY(
policy_name => 'Access Locations',
algorithm => 'LUI');
END;
/
CAN_SET_ROLE Function
The CAN_SET_ROLE function checks whether the user invoking the method is
authorized to use the specified Oracle Database Vault secure application role.
Syntax
DVSYS.DBMS_MACSEC_ROLES.CAN_SET_ROLE(
p_role IN VARCHAR2)
RETURN BOOLEAN;
Parameters
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('SECTOR2_APP_MGR')
THEN DBMS_OUTPUT.PUT_LINE('SECTOR2_APP_MGR' is enabled.')
END IF;
END;
/
SET_ROLE Procedure
The SET_ROLE procedure the SET ROLE statement for an Oracle Database Vault
secure application role. If a rule set that is associated with the role evaluates to false,
then the role is not set.
Syntax
DVSYS.DBMS_MACSEC_ROLES.SET_ROLE(
p_role IN VARCHAR2);
Parameters
Example
EXEC DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('SECTOR2_APP_MGR');
You can enter the name of the role in any case (for example, Sector2_APP_MGR).
DVSYS.DBMS_MACUTL Constants
This section contains:
■ DVSYS.DBMS_MACUTL Listing of Constants
■ Examples of Using the DVSYS.DBMS_MACUTL Constants
CHECK_DVSYS_DML_ALLOWED Procedure
The CHECK_DVSYS_DML_ALLOWED procedure verifies that public packages are not
being bypassed by users updating the Oracle Database Vault configuration.
Syntax
DVSYS.DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED(
p_user IN VARCHAR2 DEFAULT USER);
Parameter
Example
User SYSTEM fails the check:
EXEC DVSYS.DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED('system');
ERROR at line 1:
ORA-47920: Authorization failed for user system to perform this operation
ORA-06512: at "DVSYS.DBMS_MACUTL", line 23
ORA-06512: at "DVSYS.DBMS_MACUTL", line 372
ORA-06512: at "DVSYS.DBMS_MACUTL", line 508
ORA-06512: at "DVSYS.DBMS_MACUTL", line 572
ORA-06512: at line 1
User dbvowner, who has the DV_OWNER role, passes the check:
EXEC DVSYS.DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED('dbvowner');
GET_CODE_VALUE Function
The GET_CODE_VALUE function finds the value for a code within a code group, and
then returns a VARCHAR2 value.
Syntax
DVSYS.DBMS_MACUTL.GET_CODE_VALUE(
p_code_group IN VARCHAR2,
p_code IN VARCHAR2)
RETURN VARCHAR2;
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Label Algorithm for Maximum Level/Union/Null',
rule_expr => 'DVSYS.DBMS_MACUTL.GET_CODE_VALUE(''LABEL_ALG'', ''HUN'') =
''Union''');
END;
/
GET_SECOND Function
The GET_SECOND function returns the seconds in Oracle SS (seconds) format (00–59),
and then returns a NUMBER value. It is useful for rule expressions based on time data.
Syntax
DVSYS.DBMS_MACUTL.GET_SECOND(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;
Parameter
Example
SET SERVEROUTPUT ON
DECLARE
seconds number;
BEGIN
seconds := DVSYS.DBMS_MACUTL.GET_SECOND(TO_DATE('03-APR-2009 6:56 PM',
'dd-mon-yyyy hh:mi PM'));
DBMS_OUTPUT.PUT_LINE('Seconds: '||seconds);
END;
/
This example, which uses a fixed date and time, returns the following:
Seconds: 56
GET_MINUTE Function
The GET_MINUTE function returns the minute in Oracle MI (minute) format (00–59), in
a NUMBER value. It is useful for rule expressions based on time data.
Syntax
DVSYS.DBMS_MACUTL.GET_MINUTE(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;
Parameter
Example
SET SERVEROUTPUT ON
DECLARE
minute number;
BEGIN
minute := DVSYS.DBMS_MACUTL.GET_MINUTE(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Minute: '||minute);
END;
/
GET_HOUR Function
The GET_HOUR function returns the hour in Oracle HH24 (hour) format (00–23), in a
NUMBER value. It is useful for rule expressions based on time data.
Syntax
DVSYS.DBMS_MACUTL.GET_HOUR(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;
Parameter
Example
SET SERVEROUTPUT ON
DECLARE
hours number;
BEGIN
hours := DVSYS.DBMS_MACUTL.GET_HOUR(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Hour: '||hours);
END;
/
GET_DAY Function
The GET_DAY function returns the day in Oracle DD (day) format (01–31), in a NUMBER
value. It is useful for rule expressions based on time data.
Syntax
DVSYS.DBMS_MACUTL.GET_DAY(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;
Parameter
Example
SET SERVEROUTPUT ON
DECLARE
day number;
BEGIN
day := DVSYS.DBMS_MACUTL.GET_DAY(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Day: '||day);
END;
/
GET_MONTH Function
The GET_MONTH function returns the month in Oracle MM (month) format (01–12), in
a NUMBER value. It is useful for rule expressions based on time data.
Syntax
DVSYS.DBMS_MACUTL.GET_MONTH(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;
Parameter
Example
SET SERVEROUTPUT ON
DECLARE
month number;
BEGIN
month := DVSYS.DBMS_MACUTL.GET_MONTH(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Month: '||month);
END;
/
GET_YEAR Function
The GET_YEAR function returns the year in Oracle YYYY (year) format (0001–9999), in
a NUMBER value. It is useful for rule expressions based on time data.
Syntax
DVSYS.DBMS_MACUTL.GET_YEAR(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;
Parameter
Example
SET SERVEROUTPUT ON
DECLARE
year number;
BEGIN
year := DVSYS.DBMS_MACUTL.GET_YEAR(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Year: '||year);
END;
/
IS_ALPHA Function
The IS_ALPHA function checks whether the character is alphabetic, and then returns a
BOOLEAN value. IS_ALPHA returns TRUE if the character is alphabetic.
Syntax
DVSYS.DBMS_MACUTL.IS_ALPHA(
c IN VARCHAR2)
RETURN BOOLEAN;
Parameter
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACUTL.IS_ALPHA('z')
THEN DBMS_OUTPUT.PUT_LINE('The alphabetic character was found');
ELSE
DBMS_OUTPUT.PUT_LINE('No alphabetic characters today.');
END IF;
END;
/
IS_DIGIT Function
The IS_DIGIT function checks whether the character is numeric, and then returns a
BOOLEAN value. IS_DIGIT returns TRUE if the character is a digit.
Syntax
DVSYS.DBMS_MACUTL.IS_DIGIT(
c IN VARCHAR2)
RETURN BOOLEAN;
Parameter
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACUTL.IS_DIGIT('7')
THEN DBMS_OUTPUT.PUT_LINE('The numeric character was found');
ELSE
DBMS_OUTPUT.PUT_LINE('No numeric characters today.');
END IF;
END;
/
IS_DVSYS_OWNER Function
The IS_DVSYS_OWNER function determines whether a user is authorized to manage
the Oracle Database Vault configuration, and then returns a BOOLEAN value. IS_
DVSYS_OWNER returns TRUE if the user is authorized.
Syntax
DVSYS.DBMS_MACUTL.IS_DVSYS_OWNER(
p_user IN VARCHAR2 DEFAULT USER)
RETURN BOOLEAN;
Parameter
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACUTL.IS_DVSYS_OWNER('PSMITH')
THEN DBMS_OUTPUT.PUT_LINE('PSMITH is authorized to manage Database Vault.');
ELSE
DBMS_OUTPUT.PUT_LINE('PSMITH is not authorized to manage Database Vault.');
END IF;
END;
/
IS_OLS_INSTALLED Function
The IS_OLS_INSTALLED function returns an indicator regarding whether Oracle
Label Security is installed, and then returns a TRUE or FALSE BOOLEAN value. If
Oracle Label Security is installed, IS_OLS_INSTALLED returns TRUE.
Syntax
DVSYS.DBMS_MACUTL.IS_OLS_INSTALLED()
RETURN BOOLEAN;
Parameters
None.
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACUTL.IS_OLS_INSTALLED()
THEN DBMS_OUTPUT.PUT_LINE('OLS is installed');
ELSE
DBMS_OUTPUT.PUT_LINE('OLS is not installed');
END IF;
END;
/
IS_OLS_INSTALLED_VARCHAR Function
The IS_OLS_INSTALLED_VARCHAR function returns an indicator regarding whether
Oracle Label Security is installed, and then returns a Y or N VARCHAR2 value. If Oracle
Label Security is installed, thenIS_OLS_INSTALLED_VARCHAR returns Y.
Syntax
DVSYS.DBMS_MACUTL.IS_OLS_INSTALLED_VARCHAR()
RETURN VARCHAR2;
Parameters
None.
Example
See "IS_OLS_INSTALLED Function" on page 13-13 for an example.
USER_HAS_OBJECT_PRIVILEGE Function
The USER_HAS_OBJECT_PRIVILEGE function checks whether a user or role may
access an object through an object privilege grant, and then returns a BOOLEAN value.
If the user or role has object privileges, then USER_HAS_OBJECT_PRIVILEGE returns
TRUE.
Syntax
DVSYS.DBMS_MACUTL.USER_HAS_OBJECT_PRIVILEGE(
p_user IN VARCHAR2,
p_object_owner IN VARCHAR2,
p_object_name IN VARCHAR2,
p_privilege IN VARCHAR2)
RETURNS BOOLEAN;
Parameters
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACUTL.USER_HAS_OBJECT_PRIVILEGE(
'SECTOR2_APP_MGR', 'OE', 'ORDERS', 'SELECT, UPDATE')
THEN DBMS_OUTPUT.PUT_LINE('SECTOR2_APP_MGR has privileges.');
ELSE
DBMS_OUTPUT.PUT_LINE('SECTOR2_APP_MGR does not have privileges.');
END IF;
END;
USER_HAS_ROLE Function
The USER_HAS_ROLE function checks whether a user has a role privilege, directly or
indirectly (through another role), and then returns a BOOLEAN value. If the user has a
role privilege, then USER_HAS_ROLE returns TRUE.
Syntax
DVSYS.DBMS_MACUTL.USER_HAS_ROLE(
p_role IN VARCHAR2,
p_user IN VARCHAR2 DEFAULT USER)
RETURN BOOLEAN;
Parameters
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACUTL.USER_HAS_ROLE('SECTOR2_APP_MGR', 'PSMITH')
THEN DBMS_OUTPUT.PUT_LINE('User PSMITH has the SECTOR2_APP_MGR role');
ELSE
DBMS_OUTPUT.PUT_LINE('User PSMITH does not have the SECTOR2_APP_MGR role.');
END IF;
END;
/
USER_HAS_ROLE_VARCHAR Function
The USER_HAS_ROLE_VARCHAR function checks whether a user has a role privilege,
directly or indirectly (through another role), and then returns a VARCHAR2 value. If the
user has the role privilege specified, then USER_HAS_ROLE_VARCHAR returns Y.
Syntax
DVSYS.DBMS_MACUTL.USER_HAS_ROLE_VARCHAR(
p_role IN VARCHAR2,
p_user IN VARCHAR2 DEFAULT USER)
RETURN VARCHAR2;
Parameters
USER_HAS_SYSTEM_PRIVILEGE Function
The USER_HAS_SYSTEM_PRIVILEGE function checks whether a user has a system
privilege, directly or indirectly (through a role), and then returns a BOOLEAN value. If
the user has the system privilege specified, then USER_HAS_SYSTEM_PRIVILEGE
returns TRUE.
Syntax
DVSYS.DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGE(
p_privilege IN VARCHAR2,
p_user IN VARCHAR2 DEFAULT USER)
RETURN BOOLEAN;
Parameters
Example
SET SERVEROUTPUT ON
BEGIN
IF DVSYS.DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGE('EXECUTE', 'PSMITH')
THEN DBMS_OUTPUT.PUT_LINE('User PSMITH has the EXECUTE ANY PRIVILEGE
privilege.');
ELSE
DBMS_OUTPUT.PUT_LINE('User PSMITH does not have the EXECUTE ANY PRIVILEGE
privilege.');
END IF;
END;
/
SET_FACTOR Procedure
The SET_FACTOR procedure can be exposed to an application that requires the ability
to set factor identities dynamically. It wraps the package procedure DVSYS.DBMS_
MACADM.SET_FACTOR. When a factor has a rule set associated with it for assignment
and if the rule set returns true, then the value is set. Normal rule set handling occurs,
and the factor value (identity) validation method is called. This procedure is available
(to execute) to the general database account population.
Syntax
DVSYS.SET_FACTOR(
p_factor IN VARCHAR2,
p_value IN VARCHAR2);
Parameters
Example
EXECUTE DVSYS.SET_FACTOR(''Sector2_ClientID'', ''identity'');
GET_FACTOR Function
The GET_FACTOR function is exposed to the DVF schema to allow the public factor
functions to resolve the identity of a factor. This enables the F$ functions in the DVF
schema. This function is available (to execute) to the general database account
population.
Syntax
DVSYS.GET_FACTOR(
p_factor IN VARCHAR2)
RETURN VARCHAR2;
Parameter
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Client ID Factor Identity',
rule_expr => 'DVSYS.GET_FACTOR(''Sector2_ClientID'')');
END;
/
GET_TRUST_LEVEL Function
The GET_TRUST_LEVEL function returns the trust level of the current session identity
for the factor requested. This function is available (to execute) to the general database
account population. See "Creating and Configuring a Factor Identity" on page 7-11 for
a listing of the available trust levels.
Syntax
DVSYS.GET_TRUST_LEVEL(
p_factor IN VARCHAR2)
RETURN VARCHAR2;
Parameter
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Client ID Trust Level',
rule_expr => 'DVSYS.GET_TRUST_LEVEL(''Sector2_ClientID'')');
END;
/
GET_TRUST_LEVEL_FOR_IDENTITY Function
The GET_TRUST_LEVEL_FOR_IDENTITY function returns the trust level for the factor
and identity requested. This function is available (to execute) to the general database
account population. See "Creating and Configuring a Factor Identity" on page 7-11 for
a listing of the available trust levels.
Syntax
DVSYS.GET_TRUST_LEVEL_FOR_IDENTITY(
p_factor IN VARCHAR2,
p_identity IN VARCHAR2)
RETURN VARCHAR2;
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Client ID Identity Trust Level',
rule_expr => 'DVSYS.GET_TRUST_LEVEL_FOR_IDENTITY(''Sector2_ClientID'',
''identity'')');
END;
/
ROLE_IS_ENABLED Function
The ROLE_IS_ENABLED function returns a boolean value that specifies whether a
database role has been enabled. This function is available (to execute) to the general
database account population.
Syntax
DVSYS.ROLE_IS_ENABLED(
p_role IN VARCHAR2)
RETURN BOOLEAN;
Parameter
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check if SYSADM Role Is Enabled',
rule_expr => 'DVSYS.ROLE_IS_ENABLED(''SYSADM'')');
END;
/
GET_FACTOR_LABEL Function
The GET_FACTOR_LABEL function returns the label for the specified factor when the
factor has a label assigned to it for the specified Oracle Label Security policy. The
function returns a label that is merged with the maximum session label for the policy if
the policy is configured with Oracle Label Security. The function is available (to
execute) to the general database population. See "Label Identity" on page 7-12 for more
information about factor labels.
Syntax
DVSYS.GET_FACTOR_LABEL(
p_factor IN VARCHAR2,
p_policy_name IN VARCHAR2)
RETURN VARCHAR2;
Parameters
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Get the ClientID Factor Label',
rule_expr => 'DVSYS.GET_FACTOR_LABEL(''Sector2_ClientID'', ''Access
Locations'')');
END;
/
To find the value of a factor function, select from the DUAL system table. For example:
SELECT DVF.F$SESSION_USER FROM DUAL;
F$SESSION_USER
------------------------------------------------
DBVOWNER
The name of the factor itself is case-insensitive. For example, the following statements
return the same result
select dvf.f$session_user from dual;
F$AUTHENTICATION_METHOD Function
The F$AUTHENTICATION_METHOD function returns the method of authentication in
VARCHAR2 data type. In the list that follows, the type of user is followed by the
method returned:
■ Password-authenticated enterprise user, local database user, or SYSDBA/SYSOPER
using Password File; proxy with user name using password: PASSWORD
■ Kerberos-authenticated enterprise or external user: KERBEROS
■ SSL-authenticated enterprise or external user: SSL
■ Radius-authenticated external user: RADIUS
■ Operating system-authenticated external user or SYSDBA/SYSOPER: OS
■ DCE-authenticated external user: DCE
■ Proxy with certificate, distinguished name (DN), or user name without using
password: NONE
You can use IDENTIFICATION_TYPE to distinguish between external and enterprise
users when the authentication method is Password, Kerberos, or SSL.
Syntax
DVF.F$AUTHENTICATION_METHOD ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check SSL Authentication Method',
rule_expr => 'DVF.F$AUTHENTICATION_METHOD = ''SSL''');
END;
/
F$CLIENT_IP Function
The F$CLIENT_IP function returns the IP address of the computer from which the
client is connected, in VARCHAR2 data type.
Syntax
DVF.F$CLIENT_IP ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Client IP Address',
rule_expr => 'DVF.F$CLIENT_IP BETWEEN ''192.0.2.10'' AND ''192.0.2.20''');
END;
/
F$DATABASE_DOMAIN Function
The F$DATABASE_DOMAIN function returns the domain of the database as specified in
the DB_DOMAIN initialization parameter, in VARCHAR2 data type.
Syntax
DVF.F$DATABASE_DOMAIN ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Client Database Domain',
rule_expr => 'DVF.F$DATABASE_DOMAIN NOT IN (''EXAMPLE'', ''YOURDOMAIN'')');
END;
/
F$DATABASE_HOSTNAME Function
The F$DATABASE_HOSTNAME function returns the host name of the computer on
which the instance is running, in VARCHAR2 data type.
Syntax
DVF.F$DATABASE_HOSTNAME ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Host Name',
rule_expr => 'DVF.F$DATABASE_HOSTNAME IN (''SHOBEEN'', ''MAU'')');
END;
/
F$DATABASE_INSTANCE Function
The F$DATABASE_INSTANCE function returns the instance identification number of
the current database instance, in VARCHAR2 data type.
Syntax
DVF.F$DATABASE_INSTANCE ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database Instance ID',
rule_expr => 'DVF.F$DATABASE_INSTANCE = ''SALES_DB''');
END;
/
F$DATABASE_IP Function
The F$DATABASE_IP function returns the IP address of the computer on which the
database instance is running, in VARCHAR2 data type.
Syntax
DVF.F$DATABASE_IP ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database IP address',
rule_expr => 'DVF.F$DATABASE_IP = ''192.0.2.5''');
END;
/
F$DATABASE_NAME Function
The F$DATABASE_NAME function returns the name of the database as specified in the
DB_NAME initialization parameter, in VARCHAR2 data type.
Syntax
DVF.F$DATABASE_NAME ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database DB_NAME Name',
rule_expr => 'DVF.F$DATABASE_NAME = ''ORCL''');
END;
/
F$DOMAIN Function
The F$DOMAIN function returns a named collection of physical, configuration, or
implementation-specific factors in the run-time environment (for example, a
networked IT environment or subset of it) that operates at a specific sensitivity level.
The return type is VARCHAR2.
You can identify a domain using factors such as host name, IP address, and database
instance names of the Oracle Database Vault nodes in a secure access path to the
database. Each domain can be uniquely determined using a combination of the factor
identifiers that identify the domain. You can use these identifying factors and possibly
additional factors to define the Maximum Security Label within the domain. This
restricts data access and commands, depending on the physical factors about the
Oracle Database Vault session. Example domains of interest may be Corporate
Sensitive, Internal Public, Partners, and Customers.
Syntax
DVF.F$DOMAIN ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Domain',
rule_expr => 'DVF.F$DOMAIN = ''EXAMPLE.COM''');
END;
/
F$ENTERPRISE_IDENTITY Function
The F$ENTERPRISE_IDENTITY function returns the enterprise-wide identity for a
user, in VARCHAR2 data type:
■ For enterprise users: the Oracle Internet Directory DN.
■ For external users: the external identity (Kerberos principal name, Radius and
DCE schema names, operating system user name, certificate DN).
■ For local users and SYSDBA/SYSOPER logins: NULL.
The value of the attribute differs by proxy method:
■ For a proxy with DN: the Oracle Internet Directory DN of the client.
■ For a proxy with certificate: the certificate DN of the client for external users; the
Oracle Internet Directory DN for global users.
■ For a proxy with user name: the Oracle Internet Directory DN if the client is an
enterprise user; NULL if the client is a local database user.
Syntax
DVF.F$ENTERPRISE_IDENTITY ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check User Enterprise Identity',
rule_expr => 'DVF.F$ENTERPRISE_IDENTITY NOT IN (''JSMITH'', ''TSMITH'')');
END;
/
F$IDENTIFICATION_TYPE Function
The F$IDENTIFICATION_TYPE function returns the way the schema of a user was
created in the database. Specifically, it reflects the IDENTIFIED clause in the
CREATE/ALTER USER syntax. The return type is VARCHAR2. In the list that follows,
the syntax used during schema creation is followed by the identification type returned:
■ IDENTIFIED BY password: LOCAL
■ IDENTIFIED EXTERNALLY: EXTERNAL
■ IDENTIFIED GLOBALLY: GLOBAL SHARED
■ IDENTIFIED GLOBALLY AS DN: GLOBAL PRIVATE
Syntax
DVF.F$IDENTIFICATION_TYPE ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check User Schema Creation Type',
rule_expr => 'DVF.F$IDENTIFICATION_TYPE = ''GLOBAL SHARED''');
END;
/
F$LANG Function
The F$LANG function returns the ISO abbreviation for the language name, a shorter
form than the existing LANGUAGE parameter, for the session of the user. The return
type is VARCHAR2.
See Oracle Database Globalization Support Guide for a listing of supported languages for
Oracle Database.
Syntax
DVF.F$LANG ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check ISO Abbreviated Language Name',
rule_expr => 'DVF.F$LANG IN (''EN'', ''DE'', ''FR'')');
END;
/
F$LANGUAGE Function
The F$LANGUAGE function returns the language and territory currently used by a user
session, in VARCHAR2 data type, along with the database character set, in the following
form:
language_territory.characterset
See Oracle Database Globalization Support Guide for a listing of supported languages and
territories for Oracle Database.
Syntax
DVF.F$LANGUAGE ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Session Language and Territory',
rule_expr => 'DVF.F$LANGUAGE = ''AMERICAN_AMERICA.WE8ISO8859P1''');
END;
/
F$MACHINE Function
The F$MACHINE function returns the computer (host) name for the database client that
established the database session. The return type is VARCHAR2.
Syntax
DVF.F$MACHINE ()
RETURN VARCHAR2;
Parameter
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Client Computer Host Name',
rule_expr => 'DVF.F$MACHINE NOT IN (''SHOBEEN'', ''SEBASTIAN'')');
END;
/
F$NETWORK_PROTOCOL Function
The F$NETWORK_PROTOCOL function returns the network protocol being used for
communication, as specified in the PROTOCOL=protocol portion of the connect
string. The return type is VARCHAR2.
Syntax
DVF.F$NETWORK_PROTOCOL ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Network Protocol',
rule_expr => 'DVF.F$NETWORK_PROTOCOL = ''TCP''');
END;
/
F$PROXY_ENTERPRISE_IDENTITY Function
The F$PROXY_ENTERPRISE_IDENTITY function returns the Oracle Internet
Directory distinguished name (DN) when the proxy user is an enterprise user. The
return type is VARCHAR2.
Syntax
DVF.F$PROXY_ENTERPRISE_IDENTITY ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Get OID DN of Enterprise User',
rule_expr => 'DVF.F$PROXY_ENTERPRISE_IDENTITY = ''cn=Provisioning Admins''');
END;
/
F$SESSION_USER Function
The F$SESSION_USER function returns the database user name by which the current
user is authenticated. This value remains the same throughout the session. The return
type is VARCHAR2.
Syntax
DVF.F$SESSION_USER ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database User Name',
rule_expr => 'DVF.F$SESSION_USER IN (''JSMITH'', ''TSMITH'')');
END;
/
Table 14–9 Installed Oracle Database Vault PL/SQL Rule Set Functions
Rule Set Function Description
DV_SYSEVENT Function Returns the system event firing the rule set
DV_LOGIN_USER Function Returns the login user name
DV_INSTANCE_NUM Function Returns the database instance number
DV_DATABASE_NAME Returns the database name
Function
DV_DICT_OBJ_TYPE Function Returns the type of the dictionary object on which the
database operation occurred (for example, table, procedure,
view)
Table 14–9 (Cont.) Installed Oracle Database Vault PL/SQL Rule Set Functions
Rule Set Function Description
DV_DICT_OBJ_OWNER Returns the owner of the dictionary object on which the
Function database operation occurred
DV_DICT_OBJ_NAME Function Returns the name of the dictionary object on which the
database operation occurred
DV_SQL_TEXT Function Returns the first 4000 characters of SQL text of the database
statement used in the operation
DV_SYSEVENT Function
The DV_SYSEVENT function returns the system event firing the rule set, in VARCHAR2
data type. The event name is the same as that in the syntax of the SQL statement (for
example, INSERT, CREATE).
Syntax
DVSYS.DV_SYSEVENT ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Get System Event Firing the Maintenance Rule Set',
rule_expr => 'DVSYS.DV_SYSEVENT = ''CREATE''');
END;
/
DV_LOGIN_USER Function
The DV_LOGIN_USER function returns the login user name, in VARCHAR2 data type.
Syntax
DVSYS.DV_LOGIN_USER ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check System Login User Name',
rule_expr => 'DVSYS.DV_LOGIN_USER = ''SEBASTIAN''');
END;
/
DV_INSTANCE_NUM Function
The DV_INSTANCE_NUM function returns the database instance number, in NUMBER
data type.
Syntax
DVSYS.DV_INSTANCE_NUM ()
RETURN NUMBER;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database Instance Number',
rule_expr => 'DVSYS.DV_INSTANCE_NUM BETWEEN 6 AND 9');
END;
/
DV_DATABASE_NAME Function
The DV_DATABASE_NAME function returns the database name, in VARCHAR2 data
type.
Syntax
DVSYS.DV_DATABASE_NAME ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database Name',
rule_expr => 'DVSYS.DV_DATABASE_NAME = ''ORCL''');
END;
/
DV_DICT_OBJ_TYPE Function
The DV_DICT_OBJ_TYPE function returns the type of the dictionary object on which
the database operation occurred (for example, table, procedure, or view). The return
type is VARCHAR2.
Syntax
DVSYS.DV_DICT_OBJ_TYPE ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Dictionary Object Type',
rule_expr => 'DVSYS.DV_DICT_OBJ_TYPE IN (''TABLE'', ''VIEW'')');
END;
/
DV_DICT_OBJ_OWNER Function
The DV_DICT_OBJ_OWNER function returns the name of the owner of the dictionary
object on which the database operation occurred. The return type is VARCHAR2.
Syntax
DVSYS.DV_DICT_OBJ_OWNER ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Dictionary Object Owner',
rule_expr => 'DVSYS.DV_DICT_OBJ_OWNER = ''JSMITH''');
END;
/
DV_DICT_OBJ_NAME Function
The DV_DICT_OBJ_NAME function returns the name of the dictionary object on which
the database operation occurred. The return type is VARCHAR2.
Syntax
DVSYS.DV_DICT_OBJ_NAME ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Dictionary Object Name',
rule_expr => 'DVSYS.DV_DICT_OBJ_NAME = ''SALES''');
END;
/
DV_SQL_TEXT Function
The DV_SQL_TEXT function returns the first 4000 characters of SQL text of the
database statement used in the operation The return type is VARCHAR2.
Syntax
DVSYS.DV_SQL_TEXT ()
RETURN VARCHAR2;
Parameters
None.
Example
BEGIN
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check SQL Text',
rule_expr => 'DVSYS.DV_SQL_TEXT = ''SELECT SALARY FROM HR.EMPLOYEES''');
END;
/
Table 14–10 Oracle Database Vault Administrator and Run-Time PL/SQL Packages
Package Description
DVSYS.DBMS_MACADM Provides for the administration of all aspects of the secure
and access control configuration data. The realm owner of the
Oracle Database Vault realm can grant the ability to run this
package.
See Chapter 11, "Using the DVSYS.DBMS_MACADM
Package" for more information.
DVSYS.DBMS_MACSEC_ROLES Provides the CAN_SET_ROLE method to check whether the
user invoking the method is authorized to use the specified
Oracle Database Vault secure application role. The
authorization is determined by checking the rule set
associated with the role.
The API also provides a method to issue the SET ROLE
statement for a Oracle Database Vault Secure Application
Role. Before SET ROLE is issued, the CAN_SET_ROLE
method is called to check the rule set associated with the role.
Run-time rule set behavior such as auditing, failure
processing, and event handling occur during this process. The
package is available to the general database account
population.
See Chapter 12, "Using the DVSYS.DBMS_MACSEC_
ROLES Package" for more information.
Table 14–10 (Cont.) Oracle Database Vault Administrator and Run-Time PL/SQL
Package Description
DVSYS.DBMS_MACUTL Defines several constants and utility methods that are
commonly used by other Oracle Database Vault packages,
such as code/message lookup, error handling, data
conversion, and privilege checks. This package can be run by
the general database account population. This allows for
security developers to leverage the constants in scripted
configuration files. Utility methods such as USER_HAS_ROLE
can also be used in Oracle Database Vault rules.
See Chapter 13, "Using the DVSYS.DBMS_MACUTL
Package" for more information.
Note: To make the charts used in the Monitor page accessible for to
users of assistive technology, see "Enabling Oracle Database Vault
Accessibility" in Oracle Database Vault Installation Guide.
■ Database Vault policy: Shows changes made through the Oracle Database Vault
administrative packages or user interface, indicating Oracle Database Vault
configuration or policy changes.
■ Label Security policy: Shows changes made through the Oracle Database Vault
administrative packages or user interface, indicating Oracle Label Security policy
or privilege changes.
■ Audit Policy: Shows changes to the database audit policy coming from AUDIT or
NOAUDIT statements.
■ Privilege Grants: Shows changes to system or object privilege GRANT statements.
■ Privilege Revokes: Shows changes to system or object privilege REVOKE
statements.
■ Database Account: Shows changes to CREATE USER, ALTER USER, or DROP
USER statements.
■ Database Role: Shows changes to CREATE ROLE, ALTER ROLE, or DROP ROLE
statements.
To monitor security policy changes by category:
1. Log in to Oracle Database Vault Administrator as a user who has been granted the
DV_OWNER, DV_ADMIN, or DV_SECANALYST role.
"Starting Oracle Database Vault" on page 3-1 explains how to log on.
2. In the Administration page, click Monitor.
3. At the top of the Monitor page, set a period for the monitoring action by selecting
from the Show Records For list and clicking Go.
This section of the Monitor page also indicates the last time the data on the page
was refreshed.
4. In the Monitor page, check the graph under Security Policy Changes by Category.
A graph similar to the following appears, which shows the number of security
policy changes based on the following categories: Oracle Database Vault policy,
Oracle Label Security policy, audit policy, privilege grants and revokes, database
accounts, and database roles.
In most cases, however, these types of issues are caught when you configure the realm
and during validation.
Note: This report can be quite large if you choose the defaults.
Note: This report can be quite large if you choose the defaults.
DBMS_ALERT DBMS_RANDOM
DBMS_BACKUP_RESTORE DBMS_REPAIR
DBMS_CAPTURE_ADM DBMS_REPCAT
DBMS_DDL DBMS_REPCAT_ADMIN
DBMS_DISTRIBUTED_TRUST_ADMIN DBMS_RESOURCE_MANAGER
DBMS_FGA DBMS_RESOURCE_MANAGER_PRIVS
DBMS_JOB DBMS_RLS
DBMS_LDAP DBMS_SESSION
DBMS_LOB DEBUG_EXTPROC
DBMS_LOGMNR UTL_FILE
DBMS_LOGMNR_D UTL_HTTP
DBMS_OBFUSCATION_TOOLKIT UTL_SMTP
DBMS_ORACLE_TRACE_AGENT UTL_TCP
DBMS_PIPE
ALL_SOURCE PROFILE$
ALL_USERS PROXY_ROLE_DATA$
APPROLE$ PROXY_ROLE_INFO$
AUD$ ROLE_ROLE_PRIVS
AUDIT_TRAIL$ SOURCE$
DBA_ROLE_PRIVS STATS$SQLTEXT
DBA_ROLES STATS$SQL_SUMMARY
DBA_TAB_PRIVS STREAMS$_PRIVILEGED_USER
DBMS_BACKUP_RESTORE SYSTEM_PRIVILEGE_MAP
DEFROLE$ TABLE_PRIVILEGE_MAP
FGA_LOG$ TRIGGER$
LINK$ USER$
OBJ$ USER_HISTORY$
OBJAUTH$ USER_TAB_PRIVS
OBJPRIV$ SYSTEM_PRIVILEGE_MAP
an external password. However, note that this report does not include operating
system users who can become SYSDBA.
See Also:
■ "DBA_DV_PUB_PRIVS View" on page 10-20
■ "DBA_DV_USER_PRIVS View" on page 10-26
■ "DBA_DV_USER_PRIVS_ALL View" on page 10-26
compare the recommended settings with the current state of the database parameter
values.
Note: Oracle JVM, the Java virtual machine option provided with
Oracle Database Vault, must be installed before you can run the Java
Policy Grants Report.
views. This helps reduce the ability of an intruder to circumvent data protection by
eliminating the ability to read source code that manipulates data.
See Also:
■ "Audit Options" on page 7-9 (for factors)
■ "Audit Options" on page 5-3 (for rule sets)
■ "Defining Realm Authorization" on page 4-5
■ Chapter 16, "Oracle Database Vault Reports" for information about
viewing the audit reports
Note: Oracle Audit Vault can collect the audit data for Oracle
Database Vault. See Oracle Audit Vault Administrator's Guide for more
information.
Table A–1 describes the format of the audit trail, which you must understand if you
plan to create custom reports that use the AUDIT_TRAIL$ table.
See Oracle Database Utilities for more information about the Export utility.
2. Disable Oracle Database Vault.
See "Step 1: Disable Oracle Database Vault" on page B-2 for more information.
3. If the DVSYS account is locked, then unlock it.
You must have this account unlocked when you run the EXPDP export command.
Ensure that you are still logged on as SYS, connecting AS SYSDBA.
SQL> ALTER USER DVSYS IDENTIFIED BY password ACCOUNT UNLOCK;
4. At the operating system command prompt, create a directory for the Oracle
Database Vault audit trail (for example, in $ORACLE_BASE/admin/$DB_
UNIQUE_NAME/dvaudit).
You may want to keep this directory in the same location as the operating system
audit trail directories for Oracle Database, which by default is in the $ORACLE_
BASE/admin/$DB_UNIQUE_NAME/adump directory. In SQL*Plus, you can check
the location of the audit trail directory as follows:
SQL> SHOW PARAMETER AUDIT_FILE_DEST
Enclose the directory path in single quotation marks, not double quotation marks.
6. Grant read and write privileges on the directory object to user DVSYS.
For example:
SQL> GRANT READ, WRITE ON DIRECTORY dvaudit TO dvsys;
In this specification:
■ DIRECTORY: Enter the directory object that you created in Step 5. Ensure that
that the user who is running EXPDP (DVSYS in this example) has read and
write permissions on this directory object. If you created the directory object,
then you automatically have read and write permissions on it.
■ TABLES: Enter DVSYS.AUDIT_TRAIL$, the name of the audit trail table.
■ QUERY: Optional. This setting writes a subset of the audit table contents to the
dump file, in this case, audit records that are less than the timestamp column
value of 2009-08-03:19:34:59.
■ DUMPFILE: Enter the name of the dump file that you want to create. The
default extension is .dmp, but you can use any extension. Ensure that the file
name you specify is unique.
8. In SQL*Plus, purge the Oracle Database Vault audit trail table, now that you have
archived it.
For example, if you archived all audit trail records that are less than the
timestamp column value of 2009-08-03:19:34:59, enter the following
statement:
SQL> DELETE FROM DVSYS.AUDIT_TRAIL$ WHERE TIMESTAMP < 2009-08-03:19:34:59;
To completely purge the audit trail and remove the extents allocated to the audit
trail table, enter the following statement:
SQL> TRUNCATE TABLE DVSYS.AUDIT_TRAIL$;
9. Exit SQL*Plus.
10. Re-enable Oracle Database Vault.
See "Step 3: Enable Oracle Database Vault" on page B-6 for more information.
Table A–2 lists the AUDIT settings that Oracle Database Vault adds to the database.
Table A–2 Audit Policy Settings Oracle Database Vault Adds to Oracle Database
Audited Statements (BY ACCESS and on Success or Failure Unless
Audit Setting Type Otherwise Noted)
System Audit Settings/System Privilege ALTER ANY
Usage
CREATE ANY
DELETE ANY
DROP ANY
EXECUTE ANY (WHENEVER NOT SUCCESSFUL)
FORCE ANY
GRANT ANY
INSERT ANY
UPDATE ANY
System Audit Settings/Object ALTER DATABASE, PROFILE, ROLLBACK SEGMENT, SESSION,
Management SYSTEM, TABLE, TABLESPACE, USER
CREATE CLUSTER, DATABASE LINK, INDEXTYPE, LIBRARY,
OPERATOR, PUBLIC SYNONYM, PROCEDURE, PROFILE, ROLE,
ROLLBACK SEGMENT, SEQUENCE, SESSION, SNAPSHOT,
SYNONYM, TABLE, TABLESPACE, TRIGGER, TYPE, USER, VIEW
TRUNCATE
System Audit Settings/Intrusive ALTER SESSION
Commands
BECOME USER
CREATE SESSION
DEBUG CONNECT SESSION
RESTRICTED SESSION
System Audit Settings/Administration ADMINISTER DATABASE TRIGGER
Commands
BACKUP ANY TABLE
EXEMPT ACCESS POLICY
MANAGE TABLESPACE
System Audit Settings/Audit AUDIT ANY
Commands
AUDIT SYSTEM
System Audit Settings/Access Control GRANT ANY PRIVILEGE/ANY OBJECT PRIVILEGE/ROLE
GRANT DIRECTORY
GRANT SEQUENCE
GRANT TABLE
GRANT TYPE
Table A–2 (Cont.) Audit Policy Settings Oracle Database Vault Adds to Oracle Database
Audited Statements (BY ACCESS and on Success or Failure Unless
Audit Setting Type Otherwise Noted)
User Audit Settings for DVSYS/DVF ADMINISTER DATABASE TRIGGER
User Audit Settings for LBACSYS ALTER object
See Table 10–2, " Database Accounts AUDIT SYSTEM
Used by Oracle Database Vault" on
BECOME USER
page 10-9 for more information about
these accounts. CLUSTER
See also these sections for detailed COMMENT
information on the DVSYS and DVF
CONTEXT
schemas:
CREATE object
■ "DVSYS Schema" on page 10-1
DATABASE LINK
■ "DVF Schema" on page 10-2
DEBUG
DIRECTORY
DROP object
EXECUTE LIBRARY (WHENEVER NOT SUCCESSFUL)
EXECUTE PROCEDURE (WHENEVER NOT SUCCESSFUL)
EXEMPT ACCESS POLICY
EXEMPT IDENTITY POLICY
EXPORT FULL DATABASE
GRANT object
IMPORT FULL DATABASE
INDEX
MANAGE SCHEDULER
MANAGE TABLESPACE
MATERIALIZED VIEW (audits both accessing and creating materialized
views)
SELECT SEQUENCE (WHENEVER NOT SUCCESSFUL)
SELECT TABLE (WHENEVER NOT SUCCESSFUL)
Table A–2 (Cont.) Audit Policy Settings Oracle Database Vault Adds to Oracle Database
Audited Statements (BY ACCESS and on Success or Failure Unless
Audit Setting Type Otherwise Noted)
Object Audit Settings for DVF AUDIT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE
COMMENT TABLE/VIEW
DELETE TABLE/VIEW
EXECUTE PACKAGE/PROCEDURE/FUNCTION (WHENEVER NOT
SUCCESSFUL)
GRANT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE
RENAME PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/VIEW/TABLE
SELECT SEQUENCE/TABLE/VIEW (WHENEVER NOT SUCCESSFUL)
Object Audit Settings for DVSYS AUDIT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE
Object Audit Settings for LBACSYS COMMENT TABLE/VIEW
DELETE TABLE/VIEW
EXECUTE PACKAGE/PROCEDURE/FUNCTION (WHENEVER NOT
SUCCESSFUL)
GRANT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE
INSERT TABLE/VIEW
RENAME PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/VIEW/TABLE
SELECT SEQUENCE/TABLE/VIEW (WHENEVER NOT SUCCESSFUL)
UPDATE TABLE/VIEW
Note: After you disable Oracle Database Vault, you still can run the
Oracle Database Vault API functions. In addition, after you disable
Oracle Database Vault, the ANY privileges are available.
SHUTDOWN NORMAL
EXIT
For Oracle Real Application Clusters (RAC) installations, shut down each database
instance as follows:
srvctl stop database -d db_name
If you cannot connect to the database, then proceed to the next step.
2. Run the following commands to turn off the Oracle Database Vault option:
cd $ORACLE_HOME/rdbms/lib
STARTUP
4. If the reason you needed to disable Oracle Database Vault was because of
forgotten passwords, then log in to SQL*Plus as SYS or SYSTEM and reset the
password.
For example:
CONNECT SYSTEM
Enter password: password
In this specification:
■ -action is the action to perform. In this case the action is disable.
■ -service is the database service name.
■ -instance is the name of the database instance.
■ -dbname is the database name.
■ -sys_passwd is the SYS password. If you use a cleartext password on the
command line, you must include the nodecrypt option. If you omit the
password, DVCA prompts you for it. Preferably, omit the password and then
enter it interactively when prompted.
■ -owner_account is the Oracle Database Vault Owner account name.
■ -owner_passwd is the Oracle Database Vault Owner account password. If
you use a cleartext password on the command line, you must include the
nodecrypt option. If you omit the password, DVCA prompts you for it.
Preferably, omit the password and then enter it interactively when prompted.
■ -logfile is an optional flag to specify a log file name and location. You can
enter an absolute path, or enter a path that is relative to the location of the
$ORACLE_HOME/bin directory.
■ -silent is the option to run in command line mode. This option is required if
you are not running DVCA in an xterm window.
■ -nodecrypt is the option to read plaintext passwords.
■ -lockout is the flag to use to disable SYSDBA operating system
authentication.
For example:
dvca -action disable
-oh $ORACLE_HOME
-service myservicename
-instance myinstance
-dbname mydbname
-owner_account myownername
-logfile dvcalog.txt
In this specification:
■ -action is the action to perform. In this case the action is disable.
■ -service is the database service name.
■ -instance is the name of the database instance.
■ -dbname is the database name.
■ -sys_passwd is the SYS password. If you use a cleartext password on the
command line, you must include the nodecrypt option. If you omit the
password, DVCA prompts you for it. Preferably, omit the password and then
enter it interactively when prompted.
■ -owner_account is the Oracle Database Vault Owner account name.
■ -owner_passwd is the Oracle Database Vault Owner account password. If
you use a cleartext password on the command line, you must include the
nodecrypt option. If you omit the password, DVCA prompts you for it.
Preferably, omit the password and then enter it interactively when prompted.
■ -logfile is an optional flag to specify a log file name and location. You can
enter an absolute path, or enter a path that is relative to the location of the
$ORACLE_HOME/bin directory.
■ -silent is the option to run in command line mode. This option is required if
you are not running DVCA in an xterm window.
■ -nodecrypt is the option to read plaintext passwords.
■ -lockout is the flag to use to disable SYSDBA operating system
authentication.
For example:
dvca -action disable
-oh c:\oracle\product\db_1
-service myservicename
-instance myinstance
-dbname mydbname
-owner_account myownername
-logfile dvcalog.txt
To start dbconsole:
./emctl start dbconsole
■ Use the SYSTEM or SYS accounts to perform tasks such as creating or changing
passwords. In addition to modifying regular database and administrative user
accounts, you can modify passwords and the lock status of any of the Oracle
Database Vault-specific accounts, such as users who have been granted the DV_
ADMIN or DV_ACCTMGR roles. (See the tip under "Oracle Database Vault Accounts"
on page 10-9 for a guideline for avoiding this problem in the future.)
■ Perform the installation, upgrade, or other tasks that require security
protections to be disabled. If you must run Oracle Database Vault Configuration
Assistant (DVCA), ensure that the Oracle Database listener is running. To start the
listener, run the following command from the $ORACLE_HOME/bin directory:
$ ./lsnrctl start [listener_name]
See Step 5 under "Disabling Oracle Database Vault on UNIX Systems" on page B-2
for detailed information about the DVCA syntax.
2. Turn off the software processes. Make sure that the environment variables,
ORACLE_HOME, ORACLE_SID, and PATH are correctly set.
Stop the dbconsole process in case it is running. For both single-instance and
RAC installations, use the following command:
$ emctl stop dbconsole
SHUTDOWN NORMAL
EXIT
4. Run the following commands to turn on the Oracle Database Vault option:
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dv_on
cd $ORACLE_HOME/bin
relink all
STARTUP
EXIT
In some cases, system management tasks may require temporary access to data
through specific tools and programs. When this happens, build provisions for this
temporary or emergency access into the Oracle Database Vault rules and rule sets.
Identifying and Documenting the Tasks of Users Who Access the Database System
You should document the following areas of the tasks your organization needs:
■ The responsibilities of each administrative user
■ The kind of access users need. For example, application owners should have data
access and developers need access to development instances only.
■ Who must manage the system without accessing business data (for example, users
who perform backup, patching, tuning, and monitoring operations).
■ The duties of each category of tasks (for example, the files that must be backed up,
the applications that require patching, what exactly is monitored). Include the
alternate user accounts for each of these tasks.
■ The databases and applications that must be protected. This includes Oracle
applications, partner applications, and custom applications.
■ Who must be authorized to access business data, including the following:
– Application owners through middle tier processes
– Business users through an application interface
■ Emergency "what if" scenarios, such as how to handle a security breach
■ Reporting in a production environment, which should include the following:
– Who runs the reports
– Which reports must be run
– The frequency with which each report is run
– The users who must receive a copy of each report
■ In addition to a separation of duty matrix, the creation of the following matrices:
– An Oracle Database Vault-specific matrix, which can cover the names and
tasks of users who have been granted Database Vault roles
Note:
■ Installing patches and new applications might re-grant some of
the privileges that Oracle recommends that you revoke in this
section. Check these privileges after you install patches and new
applications to verify that they are still revoked.
■ When you revoke EXECUTE privileges on packages, ensure that
you grant EXECUTE on the packages to the owner, check the
package dependencies, and recompile any invalid packages after
the revoke.
To find users who have access to the package, log in to SQL*Plus as
SYSTEM and issue the following query.
SELECT * FROM DBA_TAB_PRIVS WHERE TABLE_NAME package_name;
Note that these two queries do not identify references to packages made
through dynamic SQL.
See Also:
■ "Privileges That Are Revoked or Prevented from Existing Users
and Roles" on page 2-3
■ Table 10–1, " Privileges of Oracle Database Vault Roles" on
page 10-3
Example C–1 Creating a Command Rule to Deny Access to CREATE DATABASE LINK
BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE (
command => 'CREATE DATABASE LINK',
rule_set_name => 'Disabled',
object_owner => '%',
object_name => '%',
enabled => DBMS_MACUTL.G_YES);
END;
/
COMMIT;
When a valid user must use the CREATE DATABASE LINK statement, the Oracle
Database Vault owner can reenable it from Oracle Database Vault Administrator or
issue the following commands in SQL*Plus.
Example C–2 Creating a Command Rule to Enable Access to CREATE DATABASE LINK
BEGIN
DBMS_MACADM.UPDATE_COMMAND_RULE (
command => 'CREATE DATABASE LINK',
rule_set_name => 'Enabled',
object_owner => '%',
object_name => '%',
enabled => DBMS_MACUTL.G_YES);
END;
/
COMMIT;
Similarly, Example C–3 shows command rules that disable and enable access to
CREATE DIRECTORY.
Example C–3 Command Rules to Disable and Enable Access to CREATE DIRECTORY
-- Disable access to CREATE DIRECTORY
BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE (
command => 'CREATE DIRECTORY',
rule_set_name => 'Disabled',
object_owner => '%',
object_name => '%',
enabled => dbms_macutl.g_yes);
END;
/
COMMIT;
To disable the ALTER SYSTEM command rule and enable the recycle bin:
1. As the DVOWNER or DV_ADMIN account, disable the ALTER SYSTEM command
rule.
BEGIN
DVSYS.DBMS_MACADM.UPDATE_COMMAND_RULE(
command => 'ALTER SYSTEM',
rule_set_name => 'Allow System Parameters',
object_owner => '%',
object_name => '%',
enabled => 'N');
END;
/
Security Considerations for the CREATE ANY JOB and CREATE JOB Privileges
In this release of Oracle Database Vault, the CREATE JOB privilege has been revoked
from the DBA and the SCHEDULER_ADMIN roles. Ensure that this change does not
affect your applications.
Security Considerations for the ALTER SYSTEM and ALTER SESSION Privileges
Be aware that trace and debug commands have the potential to show Oracle database
memory information. Oracle Database Vault does not protect against these commands.
To help secure the Oracle database memory information, Oracle recommends that you
strictly control access to the ALTER SYSTEM and ALTER SESSION privileges. These
privileges can be granted by the user SYS when connected as SYSDBA and by any user
granted the DBA role.
Oracle also recommends that you add rules to the existing command rule for ALTER
SYSTEM statement. You can use Oracle Database Vault Administrator to create a rule
and add it to a rule set. You should grant the ALTER SESSION privilege only to
trusted users. (For example, the ALTER SESSION statement can enable tracing.)
Example C–4 shows how you can create this type of rule. This rule prevent users with
ALTER SYSTEM privilege from issuing the command ALTER SYSTEM DUMP. Log in
to SQL*Plus as the Oracle Database Vault Owner when you create this command rule.
Example C–4 Adding Rules to the Existing ALTER SYSTEM Command Rule
CONNECT dbvacctmgr
Enter password: password
BEGIN
DBMS_MACADM.CREATE_RULE('NO_SYSTEM_DUMP',
'(INSTR(UPPER(DVSYS.DV_SQL_TEXT),''DUMP'') = 0)');
END;
/
EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET
('Allow System Parameters','NO_SYSTEM_DUMP');
EXEC DVSYS.DBMS_MACADM.UPDATE_COMMAND_RULE
('ALTER SYSTEM', 'Allow System Parameters', '%', '%', 'Y');
COMMIT;
Alternatively, you can use Oracle Database Vault Administrator to create and add this
rule to the rule set. See "Creating a Rule to Add to a Rule Set" on page 5-5 for more
information.
Security Considerations for Java Stored Procedures and Oracle Database Vault
A definer's rights stored procedure relies on the privileges of the owner of the stored
procedure to access objects referenced within the stored procedure. Invoker's rights
stored procedures rely on the privileges of the executor of the stored procedure to
access objects referenced within the stored procedure. The default for Java stored
procedures is invoker’s rights.
Oracle Database Vault security works by intercepting calls made within the Oracle
Database.
For Java stored procedures with definer’s rights, the execution of the stored procedure
is not blocked and realm protection is not enforced. However, underlying objects
accessed by the Java stored procedure can be protected by Oracle Database Vault
command rules.
For Java stored procedures with invoker’s rights, the execution of the stored procedure
is not blocked. However, underlying objects accessed by the Java stored procedure are
protected by both Oracle Database Vault realms and command rules.
Step 1: Identify the Java Stored Procedures Created with Definer’s Rights
Identify the Java stored procedures that were created with definers rights by running
the query in Example C–5. This query returns only Java stored procedures that connect
to the database, and then it spools the results to the file java_dr.lst.
Example C–5 Query to Identify Java Stored Procedures with Definers Rights
COLUMN plsql_owner FORMAT a8
COLUMN plsql FORMAT a30
COLUMN java_owner FORMAT a8
COLUMN java FORMAT a30
SPOOL java_dr
select distinct plu.name plsql_owner, plo.name plsql,
ju.name java_owner, jo.name java
from obj$ plo, user$ plu, user$ ju, obj$ jo, procedurejava$ j
where jo.name=j.classname and ju.user#=jo.owner# and ju.name=j.ownername
and jo.type#=29 and bitand(jo.flags, 8)=0
and plo.owner#=plu.user#
and j.obj#=plo.obj# and bitand(plo.flags, 8)=0
and ju.name not in ('SYS', 'ORDSYS')
and jo.obj# in
(select d_obj# from dependency$ connect by d_obj#=prior p_obj#
start with p_obj#=(select obj# from obj$ where name='java/sql/Connection'
and owner#=0));
SPOOL off
Step 2: Find the Java Stored Procedures That Access Realm-Protected Objects
Analyze the Java stored procedures you queried in Step 1 and determine whether any
of them access Realm protected objects. You can find a list of the realm-secured objects
in the current database instance by using the DBA_DV_REALM_OBJECT view, which is
described in "DBA_DV_REALM_OBJECT View" on page 10-22.
Example C–6 shows the PL/SQL package mypackage being created to wrap the Java
class emp_count.
Step 4: Identify the Java Stored Procedures Created with Invoker’s Rights
Next, you are ready to identify the Java stored procedures that were created with
invoker’s rights. Do so by running the query in Example C–7. This query only returns
Java stored procedures that connect to the database, and then it spools the results to
the file java_dr.lst.
spool off
Step 6: Verify Oracle Database Vault Protection for Java Stored Procedures
Verify that Oracle Database Vault is protecting your Java stored procedures.
Example C–8 show how you can test Oracle Database Vault security. Log in to a tool
such as SQL*Plus. Then try to access a realm-protected object directly and execute a
Java stored procedure to access a realm protected object.
Example C–8 Testing Oracle Database Vault Protection for Java Stored Procedures
SQL> CONNECT u1
Enter password: password
PRIVILEGE
----------------------------------------
CREATE SESSION
SELECT ANY TABLE
CREATE PROCEDURE
EXECUTE ANY PROCEDURE
ERROR at line 1:
ORA-01031: insufficient privileges
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "SCOTT.MYPACKAGE", line 2
Step 7: Secure the Invoker’s Rights for New Java Stored Procedures
If you are writing new Java stored procedures, ensure that Java classes execute with
invoker’s rights and define them in a PL/SQL package specification. Remember, it is
important to include a dummy PL/SQL variable in the package header. Adding the
dummy variable enables Oracle Database Vault to intercept and block execution of
Java stored procedures.
Example C–9 Identifying External C Callouts That Are Wrapped by PL/SQL Packages
spool external_wrap
select u.name OWNER, o.name object, o.type#, o.flags from
sys.obj$ o, sys.user$ u
where o.owner# = u.user# and
u.name not in ('MDSYS', 'ORDSYS', 'SYS') and o.obj# in (
select d_obj# from dependency$ connect by d_obj#=prior p_obj#
start with p_obj# in (select obj# from library$ where property = 0))
order by owner, object;
spool off
Example C–11 Identifying External C Callouts That Are Wrapped by PL/SQL Packages
spool external_standalone
select u.name OWNER, o.name object, o.type#, o.flags from
sys.obj$ o, sys.user$ u
where o.owner# = u.user# and
u.name not in ('MDSYS', 'ORDSYS', 'SYS') and
o.type# in (7,8) and o.obj# in (
select d_obj# from dependency$ connect by d_obj#=prior p_obj#
start with p_obj# in (select obj# from library$ where property = 0))
order by owner, object;
spool off
PRIVILEGE
----------------------------------------
CREATE SESSION
SELECT ANY TABLE
CREATE PROCEDURE
EXECUTE ANY PROCEDURE
ERROR at line 1:
ORA-01031: insufficient privileges
TEST
-------------------------------------------------------------------------------
14
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "SCOTT.MYPACKAGE1", line 2
For example, suppose you have an account that is trying to use a statement that is
protected by a command rule, but the statement is not working as expected. You can
diagnose the enforcement logic for this account by granting it the ALTER SESSION
privilege, issuing the ALTER SESSION statement, and then retrying the statement.
Afterward, check the trace files to determine what is going on.
You can disable tracing by issuing the following statement:
ALTER SESSION SET EVENTS '47998 trace name context off'
For more information about how to manage trace files, see Oracle Database
Administrator's Guide.
Index-1
auditing policies selecting, 6-5
about, A-1 used with, 6-1
audit events troubleshooting
about, A-1 general diagnostic advice, D-1
custom events with auditing report, 16-4
audit trail, A-2 tutorial, 6-6
events that are tracked, A-1 views, 6-10, 10-14
monitoring changes to, 15-3 See also rule sets
authentication compliance
Authentication_Method default factor, 7-2 Oracle Database Vault addressing, 1-4
command rules, 6-2 computer name
method, finding with finding with DVF.F$MACHINE, 14-13
DVF.F$AUTHENTICATION_ Machine default factor, 7-4
METHOD, 14-7 configuration
realm procedures, 11-2 changes, monitoring, 15-3
authorizations, realms, 4-5 See also DVSYS.DBMS_MACADM package
CONNECT events, controlling with command
rules, 6-2
B
core database
BECOME USER Report, 16-10 troubleshooting with Core Database Vault Audit
BECOME USER system privilege Report, 16-5
about, 16-10 Core Database Audit Report, 16-12
Core Database Vault Audit Trail Report, 16-5
C CPU_PER_SESSION resource profile, 16-12
CREATE ANY JOB privilege, C-10
catalog-based roles, 16-11 CREATE ANY JOB statement
child factors guidelines on managing privileges, C-10
See factors CREATE EXTERNAL JOB privilege, C-10
clients CREATE JOB privilege, C-10
finding IP address with DVF.F$CLIENT_IP, 14-8 CREATE JOB statement
code groups guidelines on managing privileges, C-10
retrieving value with DVSYS.DBMS_MACUTL CREATE ROLE statement
functions, 13-5 monitoring, 15-3
Command Rule Audit Report, 16-4 CREATE TABLE statement
Command Rule Configuration Issues Report, 16-3 monitoring, 15-2
command rules CREATE USER statement
about, 6-1 monitoring, 15-3
creating, 6-4
data dictionary view, 6-10
default command rules, 6-2 D
default command rules not showing in Database data definition language (DDL)
Vault Administrator, D-2 statement
deleting, 6-5 controlling with command rules, 6-1
diagnosing behavior, D-1 data dictionary
editing, 6-4 adding DV_ACCTMGR role to realm, 3-6
functions data manipulation language (DML)
DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6 statement
guidelines, 6-8 checking with DVSYS.DBMS_
how command rules work, 6-5 MACUTL.CHECK_DVSYS_DML_
objects ALLOWED function, 13-5
name, 6-5 controlling with command rules, 6-1
owner, 6-5 data Oracle Database Vault recognizes
performance effect, 6-9 See factors
procedures Database Account Default Password Report, 16-12
DVSYS.DBMS_MACADM Database Account Status Report, 16-12
(configuration), 11-22 database accounts
process flow, 6-5 counting privileges of, 16-9
propagating policies to other databases, 9-1 DBSNMP
reports, 6-9 realm for, 4-2
rule sets DVSYS, 10-9
Index-2
LBACSYS, 10-10 DV_ACCTMGR
monitoring, 15-3 about, 10-6
reports adding to Data Dictionary realm, 3-6
Accounts With DBA Roles Report, 16-10 DV_ADMIN, 10-6
ALTER SYSTEM or ALTER SESSION DV_OWNER, 10-4
Report, 16-10 DV_PUBLIC, 10-8
ANY System Privileges for Database Accounts DV_REALM_OWNER, 10-5
Report, 16-7 DV_REALM_RESOURCE, 10-5
AUDIT Privileges Report, 16-11 DV_SECANALYST, 10-8
BECOME USER Report, 16-10 enabled, determining with DVSYS.ROLE_IS_
Database Account Default Password ENABLED, 14-4
Report, 16-12 monitoring, 15-3
Database Account Status Report, 16-12 Oracle Database Vault, default, 10-2
Database Accounts With Catalog Roles reports
Report, 16-11 Accounts With DBA Roles Report, 16-10
Direct and Indirect System Privileges By ALTER SYSTEM or ALTER SESSION
Database Account Report, 16-7 Report, 16-10
Direct Object Privileges Report, 16-6 AUDIT Privileges Report, 16-11
Direct System Privileges By Database Account BECOME USER Report, 16-10
Report, 16-7 Database Accounts With Catalog Roles
Hierarchical System Privileges by Database Report, 16-11
Account Report, 16-7 OS Security Vulnerability Privileges, 16-11
Object Access By PUBLIC Report, 16-6 Privileges Distribution By Grantee
Object Access Not By PUBLIC Report, 16-6 Report, 16-9
OS Security Vulnerability Privileges, 16-11 Roles/Accounts That Have a Given Role
Password History Access Report, 16-11 Report, 16-11
Privileges Distribution By Grantee Security Policy Exemption Report, 16-10
Report, 16-9 WITH ADMIN Privilege Grants Report, 16-10
Privileges Distribution By Grantee, Owner separation of duty enforcement, 2-3
Report, 16-9 database schemas
Privileges Distribution By Grantee, Owner, grouped
Privilege Report, 16-9 See realms
Roles/Accounts That Have a Given Role database sessions, 7-6
Report, 16-11 controlling with Allow Sessions default rule
Security Policy Exemption Report, 16-10 set, 5-2
WITH ADMIN Privilege Grants Report, 16-10 factor evaluation, 7-15
WITH GRANT Privileges Report, 16-11 session user name, Proxy_User default factor, 7-4
solution for lockouts, B-1 Database Vault
suggested, 10-10 See Oracle Database Vault
SYSMAN databases
realm for, 4-2 dbconsole
Database Accounts With Catalog Roles checking process, 3-4
Report, 16-11 starting process, 3-4
database configuration defined with factors, 7-1
monitoring changes, 15-2 domain, Domain default factor, 7-3
database definition language (DDL) event monitoring, D-1
statements host names, Database_Hostname default
controlling with command rules, 6-1 factor, 7-3
database domains, Database_Domain default instance, retrieving information with
factor, 7-2 functions, 11-26
database objects instances
Oracle Database Vault, 10-1 to 10-26 Database_Instance default factor, 7-3
reports names, finding with DVF.F$DATABASE_
Object Dependencies Report, 16-6 INSTANCE, 14-9
See also objects number, finding with DVSYS.DV_INSTANCE_
database options, installing, B-1 NUM, 14-16
database roles IP addresses
about, 10-2 Database_IP default factor, 7-3
counting privileges of, 16-9 retrieving with DVF.F$DATABASE_IP, 14-9
default Oracle Database Vault, 10-2 listener, starting, B-6
Index-3
log file location, 3-4 domains
monitoring events, D-1 defined with factors, 7-1
names finding database domain with
Database_Name default factor, 7-3 DVF.F$DATABASE_DOMAIN, 14-8
retrieving with DVF.F$DATABASE_ finding with DVF.F$DOMAIN, 14-10
NAME, 14-10 DROP ROLE statement
retrieving with DVSYS.DV_DATABASE_ monitoring, 15-3
NAME, 14-16 DROP TABLE statement
parameters monitoring, 15-2
Security Related Database Parameters DROP USER statement
Report, 16-11 monitoring, 15-3
roles that do not exist, 16-4 dual key connection, dual key security
schema creation, finding with See two-person integrity (TPI)
DVF.F$IDENTIFICATION_TYPE, 14-11 DV_ACCTMGR role
schema creation, Identification_Type default about, 10-6
factor, 7-3 adding to Data Dictionary realm, 3-6
structural changes, monitoring, 15-2 DV_ADMIN role, 10-6
user name, Session_User default factor, 7-4 DV_OWNER role, 10-4
DBA_DV_CODE view, 10-12 DV_PUBLIC role, 10-8
DBA_DV_COMMAND_RULE view, 6-10, 10-14 DV_REALM_OWNER role, 10-5
DBA_DV_FACTOR view, 10-15 DV_REALM_RESOURCE role, 10-5
DBA_DV_FACTOR_LINK view, 10-16 DV_SECANALYST role, 10-8
DBA_DV_FACTOR_TYPE view, 10-17 DVA
DBA_DV_IDENTITY view, 10-17 See Oracle Database Vault Administrator
DBA_DV_IDENTITY_MAP view, 10-18 DVCA
DBA_DV_MAC_POLICY view, 10-19 See Oracle Database Vault Configuration Assistant
DBA_DV_MAC_POLICY_FACTOR view, 10-19 DVF account
DBA_DV_POLICY_LABEL view, 10-20 auditing policy, A-8
DBA_DV_PUB_PRIVS view, 10-20 database accounts
DBA_DV_REALM view, 10-21 DVF, 10-10
DBA_DV_REALM_AUTH view, 10-22 DVF schema, 14-6
DBA_DV_REALM_OBJECT view, 10-22 about, 10-2
DBA_DV_ROLE view, 10-23 auditing policy, A-9
DBA_DV_RULE view, 10-23 DVSYS account, 10-9
DBA_DV_RULE_SET view, 10-24 auditing policy, A-8
DBA_DV_RULE_SET_RULE view, 10-25 DVSYS schema
DBA_DV_USER_PRIVS view, 10-26 about, 10-1
DBA_DV_USER_PRIVS_ALL view, 10-26 auditing policy, A-9
dbconsole process command rules, 6-5
checking status, 3-4 DV_OWNER role, 10-4
starting, 3-4 factor validation methods, 7-8
DBMS_FILE_TRANSFER package, guidelines on DVSYS.DBMS_MACADM package
managing, C-8 about, 11-1
DBMS_RLS PL/SQL package command rule procedures, listed, 11-22
Oracle Database Vault impact on, 2-5 factor procedures, listed, 11-26
DBSNMP user account Oracle Label Security policy procedures,
realm for, 4-2 listed, 11-49
DELETE_CATALOG_ROLE role, 16-11 realm procedures, listed, 11-1
Denial of Service (DoS) attacks rule set procedures, listed, 11-12
reports secure application role procedures, listed, 11-46
System Resource Limits Report, 16-12 DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM
Tablespace Quotas Report, 16-14 procedure, 11-2
Direct and Indirect System Privileges By Database DVSYS.DBMS_MACADM.ADD_FACTOR_LINK
Account Report, 16-7 procedure, 11-27
Direct Object Privileges Report, 16-6 DVSYS.DBMS_MACADM.ADD_OBJECT_TO_
direct system privileges, 16-7 REALM procedure, 11-4
Direct System Privileges By Database Account DVSYS.DBMS_MACADM.ADD_POLICY_FACTOR
Report, 16-7 procedure, 11-28
disabling system features with Disabled default rule DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_
set, 5-2 SET procedure, 11-12
Index-4
DVSYS.DBMS_MACADM.CHANGE_IDENTITY_ DVSYS.DBMS_MACADM.DELETE_RULE_SET
FACTOR procedure, 11-28 procedure, 11-18
DVSYS.DBMS_MACADM.CHANGE_IDENTITY_ DVSYS.DBMS_MACADM.DROP_DOMAIN_
VALUE procedure, 11-29 IDENTITY procedure, 11-39
DVSYS.DBMS_MACADM.CREATE_COMMAND_ DVSYS.DBMS_MACADM.GET_INSTANCE_INFO
RULE procedure, 11-23 function, 11-40
DVSYS.DBMS_MACADM.CREATE_DOMAIN_ DVSYS.DBMS_MACADM.GET_SESSION_INFO
IDENTITY procedure, 11-30 function, 11-40
DVSYS.DBMS_MACADM.CREATE_FACTOR DVSYS.DBMS_MACADM.RENAME_FACTOR
procedure, 11-30 procedure, 11-41
DVSYS.DBMS_MACADM.CREATE_FACTOR_TYPE DVSYS.DBMS_MACADM.RENAME_FACTOR_
procedure, 11-34 TYPE procedure, 11-41
DVSYS.DBMS_MACADM.CREATE_IDENTITY DVSYS.DBMS_MACADM.RENAME_REALM
procedure, 11-34 procedure, 11-9
DVSYS.DBMS_MACADM.CREATE_IDENTITY_ DVSYS.DBMS_MACADM.RENAME_ROLE
MAP procedure, 11-35 procedure, 11-48
DVSYS.DBMS_MACADM.CREATE_MAC_POLICY DVSYS.DBMS_MACADM.RENAME_RULE
procedure, 11-49 procedure, 11-18
DVSYS.DBMS_MACADM.CREATE_POLICY_LABEL DVSYS.DBMS_MACADM.RENAME_RULE_SET
procedure, 11-51 procedure, 11-19
DVSYS.DBMS_MACADM.CREATE_REALM DVSYS.DBMS_MACADM.SYNC_RULES
procedure, 11-5 procedure, 11-19
DVSYS.DBMS_MACADM.CREATE_ROLE DVSYS.DBMS_MACADM.UPDATE_COMMAND_
procedure, 11-46 RULE procedure, 11-24
DVSYS.DBMS_MACADM.CREATE_RULE DVSYS.DBMS_MACADM.UPDATE_FACTOR
procedure, 11-14 procedure, 11-42
DVSYS.DBMS_MACADM.CREATE_RULE_SET DVSYS.DBMS_MACADM.UPDATE_FACTOR_TYPE
procedure, 11-14 procedure, 11-45
DVSYS.DBMS_MACADM.DELETE_AUTH_FROM_ DVSYS.DBMS_MACADM.UPDATE_IDENTITY
REALM procedure, 11-6 procedure, 11-45
DVSYS.DBMS_MACADM.DELETE_COMMAND_ DVSYS.DBMS_MACADM.UPDATE_MAC_POLICY
RULE procedure, 11-24 procedure, 11-54
DVSYS.DBMS_MACADM.DELETE_FACTOR DVSYS.DBMS_MACADM.UPDATE_REALM
procedure, 11-36 procedure, 11-9
DVSYS.DBMS_MACADM.DELETE_FACTOR_LINK DVSYS.DBMS_MACADM.UPDATE_REALM_AUTH
procedure, 11-36 procedure, 11-10
DVSYS.DBMS_MACADM.DELETE_FACTOR_TYPE DVSYS.DBMS_MACADM.UPDATE_ROLE
procedure, 11-37 procedure, 11-48
DVSYS.DBMS_MACADM.DELETE_IDENTITY DVSYS.DBMS_MACADM.UPDATE_RULE
procedure, 11-37 procedure, 11-19
DVSYS.DBMS_MACADM.DELETE_IDENTITY_MAP DVSYS.DBMS_MACADM.UPDATE_RULE_SET
procedure, 11-38 procedure, 11-20
DVSYS.DBMS_MACADM.DELETE_MAC_POLICY_ DVSYS.DBMS_MACSEC_ROLES package
CASCADE procedure, 11-52 about, 12-1
DVSYS.DBMS_MACADM.DELETE_OBJECT_FROM_ functions, listed, 12-1
REALM procedure, 11-7 DVSYS.DBMS_MACSEC_ROLES.CAN_SET_ROLE
DVSYS.DBMS_MACADM.DELETE_POLICY_ function, 12-1
FACTOR procedure, 11-52 DVSYS.DBMS_MACSEC_ROLES.SET_ROLE
DVSYS.DBMS_MACADM.DELETE_POLICY_LABEL procedure, 12-2
procedure, 11-53 DVSYS.DBMS_MACUTL package
DVSYS.DBMS_MACADM.DELETE_REALM about, 13-1
procedure, 11-8 constants (fields)
DVSYS.DBMS_MACADM.DELETE_REALM_ examples, 13-4
CASCADE procedure, 11-8 listed, 13-1
DVSYS.DBMS_MACADM.DELETE_ROLE procedures and functions, listed, 13-5
procedure, 11-47 DVSYS.DBMS_MACUTL.CHECK_DVSYS_DML_
DVSYS.DBMS_MACADM.DELETE_RULE ALLOWED procedure, 13-6
procedure, 11-16 DVSYS.DBMS_MACUTL.GET_CODE_VALUE
DVSYS.DBMS_MACADM.DELETE_RULE_FROM_ function, 13-7
RULE_SET procedure, 11-17 DVSYS.DBMS_MACUTL.GET_DAY function, 13-9
Index-5
DVSYS.DBMS_MACUTL.GET_HOUR F
function, 13-9
DVSYS.DBMS_MACUTL.GET_MINUTE Factor Audit Report, 16-4
function, 13-8 Factor Configuration Issues Report, 16-3
DVSYS.DBMS_MACUTL.GET_MONTH Factor Without Identities Report, 16-3
function, 13-10 factors
DVSYS.DBMS_MACUTL.GET_SECOND about, 7-1
function, 13-8 assignment, 7-8
DVSYS.DBMS_MACUTL.GET_YEAR disabled rule set, 16-3
function, 13-11 incomplete rule set, 16-3
DVSYS.DBMS_MACUTL.IS_ALPHA function, 13-11 validate, 7-8
DVSYS.DBMS_MACUTL.IS_DIGIT function, 13-12 assignment operation, 16-4
DVSYS.DBMS_MACUTL.IS_DVSYS_OWNER audit events, custom, A-1
function, 13-12 audit options, 7-9
DVSYS.DBMS_MACUTL.IS_OLS_INSTALLED child factors
function, 13-13 about, 7-6
DVSYS.DBMS_MACUTL.IS_OLS_INSTALLED_ Factor Configuration Issues Report, 16-3
VARCHAR function, 13-13 mapping, 7-13
DVSYS.DBMS_MACUTL.USER_HAS_OBJECT_ creating, 7-4
PRIVILEGE function, 13-14 creating names, 7-4
DVSYS.DBMS_MACUTL.USER_HAS_ROLE data dictionary views, 7-30
function, 13-15 default factors, 7-2
DVSYS.DBMS_MACUTL.USER_HAS_ROLE_ default factors not showing in Database Vault
VARCHAR function, 13-16 Administrator, D-2
DVSYS.DBMS_MACUTL.USER_HAS_SYSTEM_ deleting, 7-14
PRIVILEGE function, 13-17 domain, finding with DVF.F$DOMAIN, 14-10
DVSYS.DBMS_MACUTL constants, example
of, 13-5
E editing, 7-10
e-mail alert in rule set, 5-9 error options, 7-10
enabling system features with Enabled default rule evaluate, 7-7
set, 5-2 evaluation operation, 16-4
encrypted information, 16-14 factor type
enterprise identities, Enterprise_Identity default about, 7-5
factor, 7-3 selecting, 7-5
Enterprise Manager factor-identity pair mapping, 7-13
See Oracle Enterprise Manager functionality, 7-15
errors functions
factor error options, 7-10 DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6
rule set error options, 5-4 DVSYS.DBMS_MACUTL constants
event handler (fields), 13-1
rule sets, 5-4 guidelines, 7-28
examples identifying using child factors, 7-13
DVSYS.DBMS_MACUTL constants, 13-4 identities
realms, 4-10 about, 7-6, 7-11
separation of duty matrix, C-2 adding to factor, 7-10
See also tutorials assigning, 7-7
EXECUTE ANY PROCEDURE privilege, securing for configuring, 7-11
external C callouts, C-14 creating, 7-11
EXECUTE ANY PROCEDURE privilege, securing for data dictionary views, 7-30
Java stored procedures, C-11 database session, 7-6
Execute Privileges to Strong SYS Packages deleting, 7-13
Report, 16-7 determining with DVSYS.GET_FACTOR, 7-6
EXECUTE_CATALOG_ROLE role, 16-11 editing, 7-13
EXEMPT ACCESS POLICY system privilege, 16-10 enterprise-wide users, 14-10
external C callouts how factor identities work, 7-6
EXECUTE ANY PROCEDURE privilege, C-14 labels, 7-7, 7-12
security considerations, C-14 mapping, about, 7-13
mapping, identified, 7-6
mapping, procedure, 7-13
mapping, tutorial, 7-22
Index-6
Oracle Label Security labels, 7-7 (configuration), 11-12
reports, 7-29 DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6
resolving, 7-5 PL/SQL functions for inspecting SQL, 14-14
retrieval methods, 7-7 secure application roles
setting dynamically, 14-2 DVSYS.DBMS_MACADM
trust levels, 7-6, 7-11 (configuration), 11-46
with Oracle Label Security, 7-6 DVSYS.DBMS_MACSEC_ROLES
initialization, command rules, 6-2 (configuration), 12-1
invalid audit options, 16-3 DVSYS.DBMS_MACUTL (utility), 13-1
label, 16-3
naming conventions, 7-4
G
Oracle Virtual Private Database, attaching factors
to, 9-5 general security reports, 16-5 to 16-11
parent factors, 7-6 GRANT statement
performance effect, 7-29 monitoring, 15-3
procedures guidelines
DVSYS.DBMS_MACADM ALTER SESSION privilege, C-10
(configuration), 11-26 ALTER SYSTEM privilege, C-10
process flow, 7-15 command rules, 6-8
propagating policies to other databases, 9-1 CREATE ANY JOB privilege, C-10
reports, 7-29 CREATE EXTERNAL JOB privilege, C-10
retrieving, 7-16 CREATE JOB privilege, C-10
retrieving with DVSYS.GET_FACTOR, 14-2 DBMS_FILE_TRANSFER package, C-8
rule sets factors, 7-28
selecting, 7-8 general security, C-1 to C-17
used with, 7-1 Java stored procedures, C-11
setting, 7-17 LogMiner packages, C-10
setting with DVSYS.SET_FACTOR, 14-2 managing DV_OWNER and DV_ACCTMGR
troubleshooting accounts, 10-9
auditing report, 16-4 operating system access, C-5
configuration problems, D-2 Oracle software owner, C-6
tips, D-2 performance effect, 7-29
type (category of factor), 7-5 realms, 4-11
validating, 7-8 recycle bin, C-9
values (identities), 7-1 root access, C-5
views root user access, C-6
DBA_DV_CODE, 10-13 rule sets, 5-19
DBA_DV_FACTOR_LINK, 10-16 secure application roles, 8-3
DBA_DV_FACTOR_TYPE, 10-17 SELECT_CATALOG_ROLE role, C-9
DBA_DV_IDENTITY, 10-17 SYSDBA access, C-6
DBA_DV_IDENTITY_MAP, 10-18 SYSDBA privilege, limiting, C-4
DBA_DV_MAC_POLICY_FACTOR, 10-19 SYSOPER access, C-6
ways to assign, 7-6 SYSTEM schema and application tables, C-4
See also rule sets SYSTEM user account, C-4
fine-grained auditing trusted accounts and roles, C-5
DBMS_RLS package, who can grant EXECUTE using Database Vault in a production
on, 2-5 environment, C-6
functions UTL_FILE package, C-8
command rules
DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6 H
DVSYS schema enabling, 14-1
factors hackers
DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6 See security attacks
Oracle Label Security policy Hierarchical System Privileges by Database Account
DVSYS.DBMS_MACADM Report, 16-7
(configuration), 11-49 host names
realms finding with DVF.F$DATABASE_
DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6 HOSTNAME, 14-8
rule sets
DVSYS.DBMS_MACADM
Index-7
I guidelines, C-10
lsnrctl process, starting, B-6
identities
See factors, identities
Identity Configuration Issues Report, 16-3 M
IDLE_TIME resource profile, 16-12 maintenance on Oracle Database Vault, B-1
incomplete rule set, 16-3 managing user accounts and profiles on own account,
role enablement, 16-4 Can Maintain Own Accounts default rule
initialization parameters set, 5-2
Allow System Parameters default rule set, 5-2 managing user accounts and profiles, Can Maintain
modified after installation, 2-1 Accounts/Profiles default rule set, 5-2
modified by Oracle Database Vault, 2-1 mapping identities, 7-13
reports, 16-11 to 16-12 monitoring
insider threats activities, 15-1 to 15-4
See intruders My Oracle Support, 3-1, 3-2
installations
security considerations, C-7
intruders N
See security attacks naming conventions
IP addresses factors, 7-4
Client_IP default factor, 7-2 rule sets, 5-3
defined with factors, 7-1 rules, 5-6
network protocol
J finding with DVF.F$NETWORK_
PROTOCOL, 14-13
Java Policy Grants Report, 16-13 network protocol, Network_Protocol default
Java stored procedures factor, 7-4
EXECUTE ANY PROCEDURE privilege, C-11 NOAUDIT statement
guidelines on managing, C-11 monitoring, 15-3
realm protections, 4-9 Non-Owner Object Trigger Report, 16-14
nonsystem database accounts, 16-6
L
Label Security Integration Audit Report, 16-5 O
labels Object Access By PUBLIC Report, 16-6
about, 7-12 Object Access Not By PUBLIC Report, 16-6
See also Oracle Label Security Object Dependencies Report, 16-6
languages object owners
consistency between Oracle Database and nonexistent, 16-3
operating system, D-2 reports
finding with DVF.F$LANG, 14-12 Command Rule Configuration Issues
finding with DVF.F$LANGUAGE, 14-12 Report, 16-3
name object privilege reports, 16-5 to 16-6
Lang default factor, 7-3 objects
Language default factor, 7-3 command rule objects
LBACSYS account name, 6-5
about, 10-10 owner, 6-5
auditing policy, A-8 processing, 6-5
factor integration with OLS policy dynamic SQL use, 16-13
requirement, 9-7 monitoring, 15-3
See also Oracle Label Security object names
LBACSYS schema finding with DVSYS.DV_DICT_OBJ_
auditing policy, A-9 NAME, 14-17
listener, starting, B-6 object owners
locked out accounts, solution for, B-1 finding with DVSYS.DV_DICT_OBJ_
log files OWNER, 14-17
database process, 3-4 object privileges
Database Vault log files, A-2 checking with DVSYS.DBMS_MACUTL.USER_
logging on HAS_OBJECT_PRIVILEGE function, 13-6
reports, Core Database Audit Report, 16-12 realms
LogMiner packages object name, 4-4
Index-8
object owner, 4-4 Database Control, 3-1
object type, 4-4 logging on from Oracle Enterprise Manager Grid
procedures for registering, 11-2 Control, 3-2
reports logging on without Oracle Enterprise
Access to Sensitive Objects Report, 16-8 Manager, 3-4
Accounts with SYSDBA/SYSOPER Privilege Oracle Database Vault Configuration Assistant
Report, 16-8 (DVCA)
Direct Object Privileges Report, 16-6 about, 1-3
Execute Privileges to Strong SYS Packages Oracle Enterprise Manager
Report, 16-7 DBSNMP account
Non-Owner Object Trigger Report, 16-14 realm for, 4-2
Object Access By PUBLIC Report, 16-6 default realm used for, 4-2
Object Access Not By PUBLIC Report, 16-6 performance tools, 4-12
Object Dependencies Report, 16-6 SYSMAN account
Objects Dependent on Dynamic SQL realm for, 4-2
Report, 16-13 Oracle Enterprise Manager Database Control
OS Directory Objects Report, 16-13 starting Oracle Database Vault from, 3-1
privilege, 16-5 to 16-6 Oracle Enterprise Manager Grid Control
Public Execute Privilege To SYS PL/SQL propagating Database Vault policies to other
Procedures Report, 16-8 databases, 9-1
sensitive, 16-7 to 16-9 starting Oracle Database Vault from, 3-2
System Privileges By Privilege Report, 16-7 Oracle Enterprise User Security, integrating with
types Oracle Database Vault, 9-4
finding with DVSYS.DV_DICT_OBJ_ Oracle Internet Directory Distinguished Name,
TYPE, 14-16 Proxy_Enterprise_Identity default factor, 7-4
views, DBA_DV_REALM_OBJECT, 10-22 Oracle Label Security
See also database objects database option, 1-4
Objects Dependent on Dynamic SQL Report, 16-13 policies
OEM Oracle Policy Manager, 1-4
See Oracle Enterprise Manager (OEM) Oracle Label Security (OLS)
OLS audit events, custom, A-1
See Oracle Label Security checking if installed using DVSYS.DBMS_
operating system access MACUTL functions, 13-6
guideline for using with Database Vault, C-5 data dictionary views, 9-13
operating systems functions
reports DVSYS.DBMS_MACUTL (utility), 13-1
OS Directory Objects Report, 16-13 how Database Vault integrates with, 9-6
OS Security Vulnerability Privileges initialization, command rules, 6-2
Report, 16-11 integration with Oracle Database Vault
vulnerabilities, 16-11 example, 9-8
Oracle database Label Security Integration Audit Report, 16-5
See databases procedure, 9-7
Oracle Database Vault requirements, 9-6
about, 1-1 labels
components, 1-2 about, 7-12
disabling determining with GET_FACTOR_
checking if disabled, B-2 LABEL, 14-5
procedures for, B-1 invalid label identities, 16-3
reasons for, B-1 policies
enabling accounts that bypass, 16-10
checking if enabled, B-2 monitoring policy changes, 15-3
procedures for, B-1 nonexistent, 16-3
frequently asked questions, 1-1 procedures
integrating with other Oracle products, 9-1 DVSYS.DBMS_MACADM
maintenance, B-1 (configuration), 11-49
Oracle Database installation, affect on, 2-1 reports, 9-12
Oracle Database Vault Administrator views
starting without Oracle Enterprise Manager, 3-4 DBA_DV_MAC_POLICY, 10-19
Oracle Database Vault Administrator (DVA) DBA_DV_MAC_POLICY_FACTOR, 10-19
logging on from Oracle Enterprise Manager DBA_DV_POLICY_LABEL, 10-20
Index-9
See also LBACSYS account command rules, 6-9
Oracle MetaLink factors, 7-29
See My Oracle Support realms, 4-12
Oracle Policy Manager rule sets, 5-19
used with Oracle Label Security, 1-4 secure application roles, 8-8
Oracle Real Application Clusters Oracle Enterprise Manager Database Control
compatibility with Oracle Database Vault, 1-1 command rules, 6-9
multiple factor identities, 7-6 factors, 7-29
Oracle Recovery Manager (RMAN) rule sets, 5-19
in an Oracle Database Vault environment, 9-13 secure application roles, 8-8
Oracle software owner, guidelines on STATSPACK utility
managing, C-6 command rules, 6-9
Oracle Technology Network (OTN), xx factors, 7-29
Oracle Virtual Private Database realms, 4-12
DBMS_RLS package, who can grant EXECUTE rule sets, 5-19
on, 2-5 secure application roles, 8-8
Oracle Virtual Private Database (VPD) TKPROF utility
accounts that bypass, 16-10 command rules, 6-9
factors, attaching to, 9-5 factors, 7-29
GRANT EXECUTE privileges with Grant VPD realms, 4-12
Administration default rule set, 5-2 rule sets, 5-19
using Database Vault factors with Oracle Label secure application roles, 8-8
Security, 9-8 PL/SQL
OS Directory Objects Report, 16-13 packages
OS Security Vulnerability Privileges Report, 16-11 summarized, 14-18
OS_AUTHENT_PREFIX initialization unwrapped bodies, 16-13
parameter, 2-2 Unwrapped PL/SQL Package Bodies
OS_ROLES initialization parameter, 2-2 Report, 16-13
PL/SQL factor functions, 14-6
policy changes, monitoring, 15-3, 15-4
P
port number
parameters finding, 3-4
modified after installation, 2-1 Oracle Database Vault, 3-4
reports privileges
Security Related Database Parameters ANY privileges, 10-7
Report, 16-11 checking with DVSYS.DBMS_MACUTL.USER_
parent factors HAS_OBJECT_PRIVILEGE function, 13-6
See factors existing users and roles, Database Vault affect
Password History Access Report, 16-11 on, 2-3
passwords least privilege principle
forgotten, solution for, B-1 violations to, 16-13
reports, 16-12 monitoring
Database Account Default Password GRANT statement, 15-3
Report, 16-12 REVOKE statement, 15-3
Password History Access Report, 16-11 Oracle Database Vault restricting, 2-3
Username/Password Tables Report, 16-14 reports
patches Accounts With DBA Roles Report, 16-10
security consideration, C-7 ALTER SYSTEM or ALTER SESSION
two-person integrity used for, 5-14 Report, 16-10
performance effect ANY System Privileges for Database Accounts
command rules, 6-9 Report, 16-7
realms, 4-12 AUDIT Privileges Report, 16-11
reports Database Accounts With Catalog Roles
Resource Profiles Report, 16-12 Report, 16-11
System Resource Limits Report, 16-12 Direct and Indirect System Privileges By
rule sets, 5-19 Database Account Report, 16-7
secure application roles, 8-8 Direct System Privileges By Database Account
performance tools Report, 16-7
Database Control, realms, 4-12 Hierarchical System Privileges By Database
Oracle Enterprise Manager Account Report, 16-7
Index-10
listed, 16-9 authorization
OS Directory Objects Report, 16-13 how realm authorizations work, 4-9
Privileges Distribution By Grantee process flow, 4-9
Report, 16-9 troubleshooting, D-2
Privileges Distribution By Grantee, Owner updating with DVSYS.DBMS_
Report, 16-9 MACADM.UPDATE_REALM_
Privileges Distribution By Grantee, Owner, AUTH, 11-2
Privilege Report, 16-9 authorizations
WITH ADMIN Privilege Grants Report, 16-10 grantee, 4-6
WITH GRANT Privileges Report, 16-11 rule set, 4-6
roles creating, 4-2
checking with DVSYS.DBMS_MACUTL.USER_ data dictionary views, 4-13
HAS_ROLE_VARCHAR function, 13-6 default realms, 4-2
system default realms not showing in Database Vault
checking with DVSYS.DBMS_MACUTL.USER_ Administrator, D-2
HAS_SYSTEM_PRIVILEGE function, 13-6 deleting, 4-7
views disabling, 4-7
DBA_DV_PUB_PRIVS, 10-20 DV_REALM_OWNER role, 10-5
DBA_DV_USER_PRIVS, 10-26 DV_REALM_RESOURCE role, 10-5
DBA_DV_USER_PRIVS_ALL, 10-26 DVSYS.DBMS_MACUTL constants, example
Privileges Distribution By Grantee Report, 16-9 of, 13-4
Privileges Distribution By Grantee, Owner editing, 4-3
Report, 16-9 effect on other Oracle Database Vault
Privileges Distribution By Grantee, Owner, Privilege components, 4-11
Report, 16-9 enabling, 4-7
privileges using external password, 16-8 example, 4-10
problems, diagnosing, D-1 functions
procedures DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6
command rules DVSYS.DBMS_MACUTL constants
DVSYS.DBMS_MACADM (fields), 13-1
(configuration), 11-22 guidelines, 4-11
factors how realms work, 4-8
DVSYS.DBMS_MACADM Java stored procedures, 4-9
(configuration), 11-26 object-related procedures, 11-2
realms performance effect, 4-12
DVSYS.DBMS_MACADM procedures
(configuration), 11-1 DVSYS.DBMS_MACADM
production environments (configuration), 11-1
guidelines for securing, C-6 process flow, 4-8
profiles, 16-11 to 16-12 propagating policies to other databases, 9-1
Public Execute Privilege To SYS PL/SQL Procedures realm authorizations
Report, 16-8 about, 4-5
realm secured objects
deleting, 4-5
Q
editing, 4-5
quotas object name, 4-4
tablespace, 16-14 object owner, 4-4
object type, 4-4
R realm system authorizations
creating, 4-6
RAC deleting, 4-7
See Oracle Real Application Clusters (RAC) editing, 4-7
Realm Audit Report, 16-4 realm-secured objects, 4-4
Realm Authorization Configuration Issues reports, 4-12
Report, 16-3 roles
realms DV_REALM_OWNER, 10-5
about, 4-1 DV_REALM_RESOURCE, 10-5
adding roles to as grantees, 4-11 secured object, 16-3
audit events, custom, A-1 territory a realm protects, 4-4
authentication-related procedures, 11-2 troubleshooting, D-2
Index-11
tutorial, 3-5 Non-Owner Object Trigger Report, 16-14
updating with DVSYS.DBMS_ Object Access By PUBLIC Report, 16-6
MACADM.UPDATE_REALM, 11-2 Object Access Not By PUBLIC Report, 16-6
views Object Dependencies Report, 16-6
DBA_DV_CODE, 10-12 Objects Dependent on Dynamic SQL
DBA_DV_REALM, 10-21 Report, 16-13
DBA_DV_REALM_AUTH, 10-22 OS Directory Objects Report, 16-13
DBA_DV_REALM_OBJECT, 10-22 OS Security Vulnerability Privileges, 16-11
See also rule sets Password History Access Report, 16-11
RECOVERY_CATALOG_OWNER role, 16-11 permissions for running, 16-1
recycle bin, guidelines on managing, C-9 privilege management, 16-9
REMOTE_LOGIN_PASSWORDFILE initialization Privileges Distribution By Grantee Report, 16-9
parameter, 2-2 Privileges Distribution By Grantee, Owner
REMOTE_OS_AUTHENT initialization Report, 16-9
parameter, 2-2 Privileges Distribution By Grantee, Owner,
REMOTE_OS_ROLES initialization parameter, 2-2 Privilege Report, 16-9
reporting menu Public Execute Privilege To SYS PL/SQL
report results page, 16-2 Procedures Report, 16-8
parameter, 16-2 Realm Audit Report, 16-4
reports Realm Authorization Configuration Issues
about, 16-1 Report, 16-3
Access to Sensitive Objects Report, 16-8 Resource Profiles Report, 16-12
Accounts With DBA Roles Report, 16-10 Roles/Accounts That Have a Given Role
Accounts with SYSDBA/SYSOPER Privilege Report, 16-11
Report, 16-8 Rule Set Configuration Issues Report, 16-4
ALTER SYSTEM or ALTER SESSION running, 16-2
Report, 16-10 Secure Application Configuration Issues
ANY System Privileges for Database Accounts Report, 16-4
Report, 16-7 Secure Application Role Audit Report, 16-5
AUDIT Privileges Report, 16-11 Security Policy Exemption Report, 16-10
auditing, 16-4 to 16-5 Security Related Database Parameters, 16-11
BECOME USER Report, 16-10 security vulnerability, 16-13 to 16-14
categories of, 16-1 System Privileges By Privilege Report, 16-7
Command Rule Audit Report, 16-4 System Resource Limits Report, 16-12
Command Rule Configuration Issues Tablespace Quotas Report, 16-14
Report, 16-3 Unwrapped PL/SQL Package Bodies
Core Database Audit Report, 16-12 Report, 16-13
Core Database Vault Audit Trail Report, 16-5 Username /Password Tables Report, 16-14
Database Account Default Password WITH ADMIN Privileges Grants Report, 16-10
Report, 16-12 WITH GRANT Privileges Report, 16-11
Database Account Status Report, 16-12 required parameters page
Database Accounts With Catalog Roles % wildcard, 16-2
Report, 16-11 Resource Profiles Report, 16-12
Direct and Indirect System Privileges By Database resources
Account Report, 16-7 reports
Direct Object Privileges Report, 16-6 Resource Profiles Report, 16-12
Direct System Privileges By Database Account System Resource Limits Report, 16-12
Report, 16-7 REVOKE statement
Enterprise Manager Grid Control, 9-4 monitoring, 15-3
Execute Privileges to Strong SYS Packages roles
Report, 16-7 adding to realms as grantees, 4-11
Factor Audit Report, 16-4 catalog-based, 16-11
Factor Configuration Issues Report, 16-3 Database Vault default roles, 10-2 to 10-9
Factor Without Identities, 16-3 privileges, checking with DVSYS.DBMS_
general security, 16-5 to 16-11 MACUTL.USER_HAS_ROLE_VARCHAR
Hierarchical System Privileges by Database function, 13-6
Account Report, 16-7 role enablement in incomplete rule set, 16-4
Identity Configuration Issues Report, 16-3 role-based system privileges, 16-7
Java Policy Grants Report, 16-13 See also secure application roles
Label Security Integration Audit Report, 16-5 Roles/Accounts That Have a Given Role
Index-12
Report, 16-11 propagating policies to other databases, 9-1
root access reports, 5-20
guideline for using with Database Vault, C-5 rules that exclude one user, 5-9
root access, guidelines on managing, C-6 troubleshooting, D-2
Rule Set Configuration Issues Report, 16-4 tutorial, 5-9
rule sets views
about, 5-1 DBA_DV_RULE, 10-23
adding existing rules, 5-7 DBA_DV_RULE_SET, 10-24
audit options, 5-3 DBA_DV_RULE_SET_RULE, 10-25
command rules See also command rules, factors, realms, rules,
disabled, 16-3 secure application roles
selecting for, 6-5 rules
used with, 6-1 about, 5-5
CONNECT role configured incorrectly, solution creating, 5-6
for, B-1 creating names, 5-6
creating, 5-2 data dictionary views, 5-20
rules in, 5-6 deleting from rule set, 5-7
creating names, 5-3 editing, 5-7
data dictionary views, 5-20 existing rules, adding to rule set, 5-7
default rule sets, 5-2 naming conventions, 5-6
default rule sets not showing in Database Vault nested within a rule set, 5-8
Administrator, D-2 removing from rule set, 5-7
deleting reports, 5-20
rule set, 5-8 troubleshooting, D-2
rules from, 5-7 views
disabled for DBA_DV_RULE, 10-23
factor assignment, 16-3 DBA_DV_RULE_SET_RULE, 10-25
realm authorization, 16-3 See also rule sets
DVSYS.DBMS_MACUTL constants, example rules sets
of, 13-5 audit event, custom, A-1
editing
rule sets, 5-5
S
rules in, 5-7
error options, 5-4 schemas
evaluation of rules, 5-5 DVF, 10-2
evaluation options, 5-3 DVSYS, 10-1
event handlers, 5-4 Secure Application Configuration Issues
events firing, finding with DVSYS.DV_ Report, 16-4
SYSEVENT, 14-15 secure application role, 8-1
factors, selecting for, 7-8 Secure Application Role Audit Report, 16-5
factors, used with, 7-1 secure application roles
fail code, 5-4 audit event, custom, A-1
fail message, 5-4 creating, 8-2
functions data dictionary view, 8-9
DVSYS.DBMS_MACADM deleting, 8-3
(configuration), 11-12 DVSYS.DBMS_MACSEC_ROLES.SET_ROLE
DVSYS.DBMS_MACUTL (utility), 13-1 to 13-6 function, 8-3
DVSYS.DBMS_MACUTL constants functionality, 8-4
(fields), 13-1 functions
PL/SQL functions for rule sets, 14-14 DVSYS.DBMS_MACADM
guidelines, 5-19 (configuration), 11-46
how rule sets work, 5-8 DVSYS.DBMS_MACSEC_ROLES
incomplete, 16-3 (configuration), 12-1
naming conventions, 5-3 DVSYS.DBMS_MACSEC_ROLES
nested rules, 5-8 package, 12-1
performance effect, 5-19 DVSYS.DBMS_MACUTL (utility), 13-1
procedures DVSYS.DBMS_MACUTL constants
DVSYS.DBMS_MACADM (fields), 13-1
(configuration), 11-12 guidelines on managing, 8-3
process flow, 5-8 performance effect, 8-8
Index-13
procedure Database Vault Account Manager role, 10-9
DVSYS.DBMS_MACADM documenting tasks, C-3
(configuration), 11-46 example matrix, C-2
procedures and functions Oracle Database Vault enforcing, 1-1
DVSYS.DBMS_MACUTL (utility), 13-5 realms, 1-6
propagating policies to other databases, 9-1 restricting privileges, 2-3
reports, 8-8 roles, 10-2
Rule Set Configuration Issues Report, 16-4 tasks in Oracle Database Vault environment, C-2
troubleshooting, D-2 sessions
troubleshooting with auditing report, 16-5 audit events, custom, A-1
tutorial, 8-4 DVSYS.DBMS_MACUTL fields, 13-2
views finding session user with DVF.F$SESSION_
DBA_DV_ROLE, 10-23 USER, 14-14
See also roles, rule sets restricting data based on, 7-22
security attacks retrieving information with functions, 11-26
Denial of Service (DoS) attacks SQL injection attacks, detecting with Object
finding system resource limits, 16-12 Dependent on Dynamic SQL Report, 16-13
Denial of Service attacks SQL statements
finding tablespace quotas, 16-14 default command rules that protect, 6-2
eliminating audit trail, 16-11 SQL text, finding with DVSYS.DV_SQL_
monitoring security violations, 15-1 TEXT, 14-18
Oracle Database Vault addressing insider SQL92_SECURITY initialization parameter, 2-3
threats, 1-5 subfactors
reports See child factors under factors topic
AUDIT Privileges Report, 16-11 SYS schema
Objects Dependent on Dynamic SQL command rules, 6-5
Report, 16-13 SYS user account
Privileges Distribution By Grantee, Owner adding to realm authorization, 4-11
Report, 16-9 SYS.AUD$ table
Unwrapped PL/SQL Package Bodies location for Oracle Database Vault, 2-5
Report, 16-14 object owner for realm protection, 4-4
SQL injection attacks, 16-13 protecting with realm, 2-5
tracking SYSDBA access
with factor auditing, 7-10 guidelines on managing, C-6
with rule set auditing, 5-4 SYSDBA privilege
security policies limiting, importance of, C-4
monitoring changes, 15-4 SYS.FGA_LOG$ table
security policies, Oracle Database Vault protecting with realm, 2-5
addressing, 1-5 SYSMAN user account
Security Policy Exemption Report, 16-10 realm for, 4-2
Security Related Database Parameters Report, 16-11 SYSOPER access
security violations guidelines on managing, C-6
monitoring attempts, 15-1 system features
security vulnerabilities disabling with Disabled rule set, 5-2
how Database Vault addresses, 1-6 enabling with Enabled rule set, 5-2
operating systems, 16-11 system privileges
reports, 16-13 to 16-14 checking with DVSYS.DBMS_MACUTL.USER_
Security Related Database Parameters HAS_SYSTEM_PRIVILEGE function, 13-6
Report, 16-11 reports
root operating system directory, 16-13 System Privileges By Privileges Report, 16-7
SELECT statement System Privileges By Privilege Report, 16-7
controlling with command rules, 6-1 System Resource Limits Report, 16-12
SELECT_CATALOG_ROLE role, 16-11 system root access, guideline on managing, C-6
sensitive objects reports, 16-7 to 16-9 SYSTEM schema
separation of duty concept application tables in, C-4
about, C-1 SYSTEM user account
command rules, 6-3 guidelines for using with Database Vault, C-4
database accounts, 10-10 SYSTEM.AUD$ table
database accounts, suggested, 10-10 location for Oracle Database Vault, 2-5
database roles, 2-3
Index-14
T See also examples
two-man rule security
tablespace quotas, 16-14
See two-person integrity (TPI)
Tablespace Quotas Report, 16-14
two-person integrity (TPI)
third party products, affected by Oracle Database
about, 5-14
Vault, B-1
configuring with a rule set, 5-14
time data
DVSYS.DBMS_MACUTL functions, 13-6
trace files U
about, D-1 Unwrapped PL/SQL Package Bodies Report, 16-13
enabling, D-1 user names
Transparent Data Encryption, used with Oracle reports, Username/Password Tables
Database Vault, 9-5 Report, 16-14
triggers USER_HISTORY$ table, 16-11
different from object owner account, 16-14 Username/Password Tables Report, 16-14
reports, Non-Owner Object Trigger Report, 16-14 users
troubleshooting enterprise identities, finding with DVF.F$PROXY_
access security sessions, 16-5 ENTERPRISE_IDENTITY, 14-13
auditing reports, using, 16-4 enterprise-wide identities, finding with
command rules, D-1 DVF.F$ENTERPRISE_IDENTITY, 14-11
Database Vault Administrator not showing default finding session user with DVF.F$SESSION_
realms, command rules, rule sets, or USER, 14-14
factors, D-2 login user name, finding with DVSYS.DV_LOGIN_
events, D-1 USER, 14-15
factors, D-2 restricting access by factor identity, 7-22
general diagnostic tips, D-2 utility functions
locked out accounts, B-1 See DVSYS.DBMS_MACUTL package
passwords, forgotten, B-1 UTL_FILE object, 16-6
realms, D-2 UTL_FILE package, guidelines on managing, C-8
rule sets, D-2
rules, D-2
secure application roles, 16-5 V
trust levels views
about, 7-11 Oracle Database Vault-specific
determining for identities with DVSYS.GET_ views, 10-11 to 10-26
TRUST_LEVEL_FOR_IDENTITY, 14-3 See also names beginning with DBA_DV
determining with DVSYS.GET_TRUST_ VPD
LEVEL, 14-3 See Oracle Virtual Private Database (VPD)
factor identity, 7-11
factors, 7-11
for factor and identity requested, 14-3
W
identities, 7-6 wildcard, %, 16-2
of current session identity, 14-3 WITH ADMIN Privileges Grants Report, 16-10
trusted users WITH ADMIN status, 16-7
accounts and roles that should be WITH GRANT clause, 16-11
limited, C-5 to C-6 WITH GRANT Privileges Report, 16-11
default for Oracle Database Vault, C-5
tutorials
access, granting with secure application roles, 8-4
ad hoc tool access, preventing, 7-17
configuring two-person integrity (TPI), 5-14
Database Vault factors with Virtual Private
Database and Oracle Label Security, 9-8
e-mail alert in rule set, 5-9
factors, mapping identities, 7-22
Oracle Label Security integration with Oracle
Database Vault, 9-8
restricting access based on session data, 7-22
restricting user activities with command
rules, 6-6
schema, protecting with a realm, 3-5
Index-15
Index-16