Table of Contents
- Title and Copyright Information
- Preface
-
Changes in This Release for Oracle AI
Database Security Guide
-
Changes in Oracle AI
Database Security 26ai
- Oracle Deep Data Security
- Preparing for FIPS 140-3 Compliance
- Constrained Kerberos Configuration
- Multi-Factor Authentication Now Available
- Transport Layer Security 1.3 Protocol Now Supported in Oracle Database
- Simplified Transport Layer Security Configuration
- Schema Privileges to Simplify Access Control
- Oracle SQL Firewall is Now Built into Oracle AI Database
- Increased Maximum Password Length
- Read-Only Users and Sessions
- New Database Role for Application Developers
- Oracle Data Dictionary Protection Extended to Non-SYS Oracle Schemas with Separation of Duties Protection
- Strict DN Matching with Both Listener and Server Certificates
- Ability to Configure Transport Layer Security Connections without Client Wallets
- Updated Kerberos Library and Other Improvements
- Improved and More Secure Local Auto-Login Wallets
- New sqlnet.ora Parameter to Prevent the Use of Deprecated Ciphers
- Enhancements to RADIUS Configuration
- Enhancements to the DBMS_CRYPTO PL/SQL Package
- Authenticating and Authorizing IAM Users to Oracle Autonomous AI Database on Dedicated Exadata Infrastructure
- Ability of Azure Users to Log in to Oracle AI Database with Their Azure AD OAAuth2 Access Token
- Ability to Audit Object Actions at the Column Level for Tables and Views
- Consolidation of the FIPS_140 Parameter
- Desupport of Case Insensitive Passwords
- Desupport of Traditional Auditing
- Updates to Oracle AI Database Security 26ai
-
Changes in Oracle AI
Database Security 26ai
- 1 Introduction to Oracle AI Database Security
-
Part I Managing User Authentication and Authorization
-
2
Managing Security for Oracle AI
Database Users
- About User Security
-
Creating User Accounts
- About Common Users and Local Users
- Who Can Create User Accounts?
- Creating a New User Account That Has Minimum Database Privileges
- Restrictions on Creating the User Name for a New Account
- Assignment of User Passwords
- Default Tablespace for the User
- Tablespace Quotas for a User
- Temporary Tablespaces for the User
- Profiles for the User
- Creation of a Common User or a Local User
- Creating a Default Role for the User
- Altering User Accounts
- Configuring User Resource Limits
- Dropping User Accounts
- Predefined Schema User Accounts Provided by Oracle Database
- Database User and Profile Data Dictionary Views
-
3
Configuring Authentication
- About Authentication
-
Configuring Password Protection
- What Are the Oracle AI Database Built-in Password Protections?
- Minimum Requirements for Passwords
- Creating a Password by Using the IDENTIFIED BY Clause
-
Using a Password Management Policy
- About Managing Passwords
- Finding User Accounts That Have Default Passwords
- Password Settings in the Default Profile
- Using the ALTER PROFILE Statement to Modify Profile Limits
- Disabling and Enabling the Default Password Security Settings
- Automatically Locking Inactive Database User Accounts
- Automatically Locking User Accounts After a Specified Number of Failed Log-in Attempts
- Example: Locking an Account with the CREATE PROFILE Statement
- Explicitly Locking a User Account with the CREATE USER or ALTER USER Statement
- Controlling the User Ability to Reuse Previous Passwords
- About Controlling Password Aging and Expiration
- Setting a Password Lifetime
- Checking the Status of a User Account
- Password Change Life Cycle
- PASSWORD_LIFE_TIME Profile Parameter Low Value
-
Managing Gradual Database Password Rollover for Applications
- About Managing Gradual Database Password Rollover for Applications
- Password Change Life Cycle During a Gradual Database Password Rollover
- Enabling the Gradual Database Password Rollover
- Changing a Password to Begin the Gradual Database Password Rollover Period
- Changing a Password During the Gradual Database Password Rollover Period
- Ending the Password Rollover Period
- Database Behavior During the Gradual Password Rollover Period
- Database Server Behavior After the Password Rollover Period Ends
- Guideline for Handling Compromised Passwords
- How Gradual Database Password Rollover Works During Oracle Data Pump Exports
- Using Gradual Database Password Rollover in an Oracle Data Guard Environment
- Finding Users Who Still Use Their Old Passwords
-
Managing the Complexity of Passwords
- About Password Complexity Verification
- How Oracle Database Checks the Complexity of Passwords
- Who Can Use the Password Complexity Functions?
- ora12c_verify_function Password Requirements
- ora12c_strong_verify_function Function Password Requirements
- ora12c_stig_verify_function Password Requirements
- About Customizing Password Complexity Verification
- Enabling Password Complexity Verification
- Managing Password Case Sensitivity
-
Ensuring Against Password Security Threats by Using the 12C Password Version
- About the 12C Version of the Password Hash
- Oracle Database 12C Password Version Configuration Guidelines
- Configuring Oracle Database to Use the 12C Password Version Exclusively
- How Server and Client Logon Versions Affect Database Links
- Configuring Oracle Database Clients to Use the 12C Password Version Exclusively
-
Managing the Secure External Password Store for Password Credentials
- About the Secure External Password Store
- How Does the Secure External Password Store Work?
- About Configuring Clients to Use the Secure External Password Store
- Configuring a Client to Use the Secure External Password Store
- Example: Sample sqlnet.ora File with Wallet Parameters Set
- Managing External Password Store Credentials
- Creating SQL*Loader Object Store Credentials
-
Managing Passwords for Administrative Users
- About Managing Passwords for Administrative Users
- Setting the LOCK and EXPIRED Status of Administrative Users
- Password Profile Settings for Administrative Users
- Last Successful Login Time for Administrative Users
- Management of the Password File of Administrative Users
- Migration of the Password File of Administrative Users
- How the Multitenant Option Affects Password Files for Administrative Users
- Password Complexity Verification Functions for Administrative Users
-
Authentication of Database Administrators
- About Authentication of Database Administrators
- Strong Authentication, Centralized Management for Administrators
- Authentication of Database Administrators by Using the Operating System
- Authentication of Database Administrators by Using Their Passwords
- Risks of Using Password Files for Database Administrator Authentication
- Database Authentication of Users
- Configuring Multi-Factor Authentication
- Schema-Only Accounts
- Configuring Operating System Users for a PDB
- External (Non-Database) User Authentication and Access to the Database
- Multitier Authentication and Authorization
- Administration and Security in Clients, Application Servers, and Database Servers
-
Preserving User Identity in Multitiered Environments
-
Middle Tier Server Use for Proxy Authentication
- About Proxy Authentication
- Advantages of Proxy Authentication
- Who Can Create Proxy User Accounts?
- Guidelines for Creating Proxy User Accounts
- Creating Proxy User Accounts and Authorizing Users to Connect Through Them
- Proxy User Accounts and the Authorization of Users to Connect Through Them
- Using Proxy Authentication with the Secure External Password Store
- How the Identity of the Real User Is Passed with Proxy Authentication
- Limits to the Privileges of the Middle Tier
- Authorizing a Middle Tier to Proxy and Authenticate a User
- Authorizing a Middle Tier to Proxy a User Authenticated by Other Means
- Reauthenticating a User Through the Middle Tier to the Database
- Using Password-Based Proxy Authentication
- Using Proxy Authentication with Enterprise Users
-
Using Client Identifiers to Identify Application Users Unknown to the Database
- About Client Identifiers
- How Client Identifiers Work in Middle Tier Systems
- Use of the CLIENT_IDENTIFIER Attribute to Preserve User Identity
- Use of the CLIENT_IDENTIFIER Independent of Global Application Context
- Setting the CLIENT_IDENTIFIER Independent of Global Application Context
- Use of the DBMS_SESSION PL/SQL Package to Set and Clear the Client Identifier
- Enabling the CLIENTID_OVERWRITE Event System-Wide
- Enabling the CLIENTID_OVERWRITE Event for the Current Session
- Disabling the CLIENTID_OVERWRITE Event
-
Middle Tier Server Use for Proxy Authentication
- User Authentication Data Dictionary Views
-
4
Configuring Privilege and Role Authorization
- About Privileges and Roles
-
Privilege and Role Grants in a CDB
- About Privilege and Role Grants in a CDB
- Principles of Privilege and Role Grants in a CDB
- Privileges and Roles Granted Locally in a CDB
- What Makes a Privilege or Role Grant Local
- Roles and Privileges Granted Locally
- Roles and Privileges Granted Commonly in a CDB
- What Makes a Grant Common
- Roles and Privileges Granted Commonly
- Grants to PUBLIC in a CDB
- Grants of Privileges and Roles: Scenario
- Who Should Be Granted Privileges?
- How the Oracle Multitenant Option Affects Privileges
-
Managing Administrative Privileges
- About Administrative Privileges
- Grants of Administrative Privileges to Users
- SYSDBA and SYSOPER Privileges for Standard Database Operations
- Forcing oracle Users to Enter a Password When Logging in as SYSDBA
- SYSBACKUP Administrative Privilege for Backup and Recovery Operations
- SYSDG Administrative Privilege for Oracle Data Guard Operations
- SYSKM Administrative Privilege for Transparent Data Encryption
- SYSRAC Administrative Privilege for Oracle Real Application Clusters
- Managing System Privileges
- Managing Schema Privileges
- Administering Schema Security Policies
- Managing Privileges to Enable Diagnostics
- Managing Commonly and Locally Granted Privileges
-
Managing User Roles
-
About User Roles
- What Are User Roles?
- The Functionality of Roles
- Properties of Roles and Why They Are Advantageous
- Typical Uses of Roles
- Common Uses of Application Roles
- Common Uses of User Roles
- How Roles Affect the Scope of a User's Privileges
- How Roles Work in PL/SQL Blocks
- How Roles Aid or Restrict DDL Usage
- How Operating Systems Can Aid Roles
- How Roles Work in a Distributed Environment
- Predefined Roles in an Oracle AI Database Installation
- Creating a Role
- Specifying the Type of Role Authorization
- Granting and Revoking Roles
- Dropping Roles
- Restricting SQL*Plus Users from Using Database Roles
- Role Privileges and Secure Application Roles
-
About User Roles
-
Managing Common Roles and Local Roles
- About Common Roles and Local Roles
- Common Roles in a CDB
- How Common Roles Work
- How the PUBLIC Role Works in a Multitenant Environment
- Privileges Required to Create, Modify, or Drop a Common Role
- Rules for Creating Common Roles
- Creating a Common Role
- Rules for Creating Local Roles
- Local Roles in a CDB
- Creating a Local Role
- Role Grants and Revokes for Common Users and Local Users
-
Restricting Operations on PDBs Using PDB Lockdown Profiles
- About PDB Lockdown Profiles
- How PDB Lockdown Profiles Work
- PDB_OS_CREDENTIAL Initialization Parameter
- Features That Benefit from PDB Lockdown Profiles
- PDB Lockdown Profile Inheritance
- Default PDB Lockdown Profiles
- Creating a PDB Lockdown Profile
- Enabling or Disabling a PDB Lockdown Profile
- Dropping a PDB Lockdown Profile
- Managing Object Privileges
- Managing Dictionary Protection for Oracle-Maintained Schemas
- Table Privileges
- View Privileges
- Procedure Privileges
- Type Privileges
-
Grants of User Privileges and Roles
-
Granting System Privileges and Roles to Users and Roles
- Privileges for Grants of System Privileges and Roles to Users and Roles
- Example: Granting a System Privilege and a Role to a User
- Example: Granting the EXECUTE Privilege on a Directory Object
- Use of the ADMIN Option to Enable Grantee Users to Grant the Privilege
- Creating a New User with the GRANT Statement
- Granting Object Privileges to Users and Roles
-
Granting System Privileges and Roles to Users and Roles
- Revokes of Privileges and Roles from a User
- Grants and Revokes of Privileges to and from the PUBLIC Role
-
Grants of Roles Using the Operating System or Network
- About Granting Roles Using the Operating System or Network
- Operating System Role Identification
- Operating System Role Management
- Role Grants and Revokes When OS_ROLES Is Set to TRUE
- Role Enablements and Disablements When OS_ROLES Is Set to TRUE
- Network Connections with Operating System Role Management
- How Grants and Revokes Work with SET ROLE and Default Role Settings
- Configuring Read-Only Users
-
User Privilege and Role Data Dictionary Views
- Data Dictionary Views to Find Information about Privilege and Role Grants
- Query to List All System Privilege Grants
- Query to List Schema Privilege Grants
- Query to List All Role Grants
- Query to List Object Privileges Granted to a User
- Query to List the Current Privilege Domain of Your Session
- Query to List Roles of the Database
- Query to List Information About the Privilege Domains of Roles
-
5
Performing Privilege Analysis to Identify Privilege Use
- What Is Privilege Analysis?
-
Creating and Managing Privilege Analysis Policies
- About Creating and Managing Privilege Analysis Policies
- General Steps for Managing Privilege Analysis
- Creating a Privilege Analysis Policy
- Examples of Creating Privilege Analysis Policies
- Enabling a Privilege Analysis Policy
- Disabling a Privilege Analysis Policy
- Generating a Privilege Analysis Report
- Dropping a Privilege Analysis Policy
- Creating Roles and Managing Privileges Using Cloud Control
-
Tutorial: Using Capture Runs to Analyze ANY Privilege Use
- Step 1: Create User Accounts
- Step 2: Create and Enable a Privilege Analysis Policy
- Step 3: Use the READ ANY TABLE System Privilege
- Step 4: Disable the Privilege Analysis Policy
- Step 5: Generate and View a Privilege Analysis Report
- Step 6: Create a Second Capture Run
- Step 7: Remove the Components for This Tutorial
- Tutorial: Analyzing Privilege Use by a User Who Has the DBA Role
- Tutorial: Capturing Schema Privilege Use
- Privilege Analysis Policy and Report Data Dictionary Views
-
6
Configuring Centrally Managed Users with Microsoft Active Directory
-
Introduction to Centrally Managed Users with Microsoft Active Directory
- About the Oracle AI Database-Microsoft Active Directory Integration
- How Centrally Managed Users with Microsoft Active Directory Works
- Centrally Managed User-Microsoft Active Directory Architecture
- Supported Authentication Methods
- Users Supported by Centrally Managed Users with Microsoft Active Directory
- How the Oracle Multitenant Option Affects Centrally Managed Users
- Centrally Managed Users with Database Links
-
Configuring the Oracle Database-Microsoft Active Directory Integration
- About Configuring the Oracle Database-Microsoft Active Directory Connection
-
Connecting to Microsoft Active Directory
- Step 1: Create an Oracle Service Directory User Account on Microsoft Active Directory and Grant Permissions
- Step 2: For Password Authentication, Install the Password Filter and Extend the Microsoft Active Directory Schema
- Step 3: If Necessary, Install the Oracle Database Software
- Step 4: Create the dsi.ora or ldap.ora File
- Step 5: Request an Active Directory Certificate for a Secure Connection
- Step 6: Create the Wallet for a Secure Connection
- Step 7: Configure the Microsoft Active Directory Connection
- Step 8: Verify the Oracle Wallet
- Step 9: Test the Integration
- Configuring Authentication for Centrally Managed Users
-
Configuring Authorization for Centrally
Managed Users
- About Configuring Authorization for Centrally Managed Users
- Mapping a Directory Group to a Shared Database Global User
- Mapping a Directory Group to a Global Role
- Exclusively Mapping a Directory User to a Database Global User
- Altering or Migrating a User Mapping Definition
- Configuring Administrative Users
- Verifying the Centrally Managed User Logon Information
- Integration of Oracle Database with Microsoft Active Directory Account Policies
- Configuring Centrally Managed Users with Oracle Autonomous Database
- Troubleshooting Centrally Managed Users
-
Introduction to Centrally Managed Users with Microsoft Active Directory
-
7
Authenticating and Authorizing IAM
Users for Oracle AI
Database
- Introduction to Authenticating and Authorizing IAM Users for Oracle DBaaS
-
Configuring Oracle DBaaS for IAM
- Enabling External Authentication for Oracle DBaaS
-
Configuring Authorization for IAM Users and Oracle Cloud Infrastructure Applications
- About Configuring Authorization for IAM Users and Oracle Cloud Infrastructure Applications
- Mapping an IAM Group to a Shared Oracle Database Global User
- Mapping an IAM Group to an Oracle Database Global Role
- Exclusively Mapping an IAM User to an Oracle Database Global User
- Altering or Migrating an IAM User Mapping Definition
- Mapping Instance and Resource Principals
- Verifying the IAM User Logon Information
- Configuring IAM Proxy Authentication
- Configuring IAM for Oracle DBaaS
- Accessing the Database Using an Instance Principal or a Resource Principal
-
Configuring the Database Client Connection
- About Connecting to an Oracle AI Database Instance Using IAM
- Supported Client Drivers for IAM Connections
- Using Centralized Oracle Cloud Infrastructure Services for Net Naming and Secrets
- Client Connections That Use an IAM Database Password Verifier
-
Client Connections That Use a Token Requested by an IAM User Name and Database Password
- About Client Connections That Use a Token Requested by an IAM User Name and Database Password
- Parameters to Set for Client Connections That Use a Token Requested by an IAM User Name and Database Password
- Configuring the Database Client to Retrieve a Token Using an IAM User Name and Database Password
- Configuring a Secure External Password Store Wallet to Retrieve an IAM Token
- Client Connections That Use a Token Requested by a Client Application or Tool
- TLS Connections without Client Wallets
- Enabling Clients to Directly Retrieve IAM Tokens
- Common Database Client Configurations
- Using OCI Object Store for Network Service Configuration Information
- Accessing a Database Cross-Tenancy Using an IAM Integration
- Database Links in an Oracle DBaaS-to-IAM Integration
-
Troubleshooting IAM Connections
- Areas to Check on the Client-Side for ORA-01017 Errors
- Database Client Trace Files
- Check in the Oracle Cloud Infrastructure IAM and the Oracle Database for ORA-01017 Errors
- ORA-01017 Errors Caused by Improperly Configured IAM Users
- ORA-12599 and ORA-03114 Errors Caused When Trying to Access a Database Using a Token
- Actions IAM Administrators Can Take to Address ORA-01017 Errors
-
8
Authenticating and Authorizing
Microsoft Azure Users for Oracle AI
Databases
-
Introduction to Oracle Database Integration with Microsoft Entra ID
- About Integrating Oracle AI Database with Microsoft Entra ID
- Architecture of Oracle Database Integration with Microsoft Entra ID
- Azure Users Mapping to an Oracle AI Database Schema and Roles
- Use Cases for Connecting to an Oracle Database Using Entra ID
- General Process of Authenticating Microsoft Entra ID Identities with Oracle AI Database
-
Configuring the Oracle Database for Microsoft Entra ID Integration
- Oracle AI Database Requirements for the Microsoft Entra ID Integration
- Registering the Oracle AI Database Instance with a Microsoft Entra ID Tenancy
- Enabling Microsoft Entra ID v2 Access Tokens
- Managing App Roles in Microsoft Entra ID
- Enabling Entra ID External Authentication for Oracle Database
- Disabling Entra ID External Authentication for Oracle Database
- Mapping Oracle Database Schemas and Roles
-
Configuring Entra ID Client Connections to the Oracle Database
- About Configuring Client Connections to Entra ID
- Operational Flow for SQL*Plus Client Connection to Oracle AI Database Using Microsoft Entra ID OAuth2 Token
- Supported Client Drivers for Entra ID Connections
- Registering a Client with Entra ID Application Registration
- Configuration of Clients to Work with Microsoft Entra ID Tokens
-
Examples of Retrieving Entra ID OAuth2 Tokens Outside an Oracle Database Client
- About Examples of Retrieving Microsoft Entra ID OAuth2 Tokens Outside of an Oracle Database Client
- Example: Requesting a Token Using a Python Script for the Interactive (Authorization) Flow
- Example: Requesting a Token Using Azure CLI for the Interactive (Authorization) Flow
- Requesting a Token Using the Azure CLI for the Client Credential Flow
-
Creating a Network Proxy for the Database to Connect with the Internet
- About Creating a Network Proxy for the Database to Connect with the Internet
- Testing the Accessibility of the Entra ID Endpoint
- Creating the Network Proxy for the Default Oracle Database Environment
- Creating the Network Proxy for an Oracle Real Application Clusters Environment
- Creating the Network Proxy in the Windows Registry Editor
- Using Centralized Entra ID Services for Net Naming and Secrets
- Configuring Microsoft Entra ID Proxy Authentication
- Configuring Microsoft Power BI Single-Sign On
- Troubleshooting Microsoft Entra ID Connections
-
Introduction to Oracle Database Integration with Microsoft Entra ID
-
9
Managing Security for Definer's Rights and Invoker's Rights
- About Definer's Rights and Invoker's Rights
- How Procedure Privileges Affect Definer's Rights
- How Procedure Privileges Affect Invoker's Rights
- When You Should Create Invoker's Rights Procedures
-
Controlling Invoker's Rights Privileges for Procedure Calls and View Access
- How the Privileges of a Schema Affect the Use of Invoker's Rights Procedures
- How the INHERIT [ANY] PRIVILEGES Privileges Control Privilege Access
- Grants of the INHERIT PRIVILEGES Privilege to Other Users
- Example: Granting INHERIT PRIVILEGES on an Invoking User
- Example: Revoking INHERIT PRIVILEGES
- Grants of the INHERIT ANY PRIVILEGES Privilege to Other Users
- Example: Granting INHERIT ANY PRIVILEGES to a Trusted Procedure Owner
- Managing INHERIT PRIVILEGES and INHERIT ANY PRIVILEGES
- Definer's Rights and Invoker's Rights in Views
-
Using Code Based Access Control for Definer's Rights and Invoker's Rights
- About Using Code Based Access Control for Applications
- Who Can Grant Code Based Access Control Roles to a Program Unit?
- How Code Based Access Control Works with Invoker's Rights Program Units
- How Code Based Access Control Works with Definer's Rights Program Units
- Grants of Database Roles to Users for Their CBAC Grants
- Grants and Revokes of Database Roles to a Program Unit
-
Tutorial: Controlling Access to Sensitive Data Using Code Based Access Control
- About This Tutorial
- Step 1: Create the User and Grant HR the CREATE ROLE Privilege
- Step 2: Create the print_employees Invoker's Rights Procedure
- Step 3: Create the hr_clerk Role and Grant Privileges for It
- Step 4: Test the Code Based Access Control HR.print_employees Procedure
- Step 5: Create the view_emp_role Role and Grant Privileges for It
- Step 6: Test the HR.print_employees Procedure Again
- Step 7: Remove the Components of This Tutorial
-
Controlling Definer's Rights Privileges for Database Links
- About Controlling Definer's Rights Privileges for Database Links
- Grants of the INHERIT REMOTE PRIVILEGES Privilege to Other Users
- Example: Granting INHERIT REMOTE PRIVILEGES on a Connected User
- Grants of the INHERIT ANY REMOTE PRIVILEGES Privilege to Other Users
- Revokes of the INHERIT [ANY] REMOTE PRIVILEGES Privilege
- Example: Revoking the INHERIT REMOTE PRIVILEGES Privilege
- Example: Revoking the INHERIT REMOTE PRIVILEGES Privilege from PUBLIC
- Tutorial: Using a Database Link in a Definer's Rights Procedure
-
10
Managing Fine-Grained Access in PL/SQL Packages and Types
- About Managing Fine-Grained Access in PL/SQL Packages and Types
- About Fine-Grained Access Control to External Network Services
- About Access Control to Oracle Wallets
- Upgraded Applications That Depend on Packages That Use External Network Services
-
Configuring Access Control for External Network Services
- Syntax for Configuring Access Control for External Network Services
- Enabling the Listener to Recognize Access Control for External Network Services
- Example: Configuring Access Control for External Network Services
- Revoking Access Control Privileges for External Network Services
- Example: Revoking External Network Services Privileges
-
Configuring Access Control to an Oracle Wallet
- About Configuring Access Control to an Oracle Wallet
- Step 1: Configure the Operating System Certificate Store as the Default Wallet Path
- Step 2: Configure Access Control Privileges for the Oracle Wallet
- Step 3: Make the HTTP Request with the Passwords and Client Certificates
- Revoking Access Control Privileges for Oracle Wallets
- Troubleshooting ORA-29024 Errors
-
Examples of Configuring Access Control for External Network Services
- Example: Configuring Access Control for a Single Role and Network Connection
- Example: Configuring Access Control for a User and Role
- Example: Using the DBA_HOST_ACES View to Show Granted Privileges
- Example: Configuring ACL Access Using Passwords in a Non-Shared Wallet
- Example: Configuring ACL Access for a Wallet in a Shared Database Session
- Specifying a Group of Network Host Computers
- Precedence Order for a Host Computer in Multiple Access Control List Assignments
- Precedence Order for a Host in Access Control List Assignments with Port Ranges
-
Checking Privilege Assignments That Affect User Access to Network Hosts
- About Privilege Assignments that Affect User Access to Network Hosts
- How to Check User Network Connection and Domain Privileges
- Example: Administrator Checking User Network Access Control Permissions
- How Users Can Check Their Network Connection and Domain Privileges
- Example: User Checking Network Access Control Permissions
- Configuring Network Access for Java Debug Wire Protocol Operations
- Data Dictionary Views for Access Control Lists Configured for User Access
-
11
Managing Security for a Multitenant Environment in Enterprise Manager
- About Managing Security for a Multitenant Environment in Enterprise Manager
- Logging into a Multitenant Environment in Enterprise Manager
-
Managing Common and Local Users in Enterprise Manager
- Creating a Common User Account in Enterprise Manager
- Editing a Common User Account in Enterprise Manager
- Dropping a Common User Account in Enterprise Manager
- Creating a Local User Account in Enterprise Manager
- Editing a Local User Account in Enterprise Manager
- Dropping a Local User Account in Enterprise Manager
-
Managing Common and Local Roles and Privileges in Enterprise Manager
- Creating a Common Role in Enterprise Manager
- Editing a Common Role in Enterprise Manager
- Dropping a Common Role in Enterprise Manager
- Revoking Common Privilege Grants in Enterprise Manager
- Creating a Local Role in Enterprise Manager
- Editing a Local Role in Enterprise Manager
- Dropping a Local Role in Enterprise Manager
- Revoking Local Privilege Grants in Enterprise Manager
-
2
Managing Security for Oracle AI
Database Users
-
Part II Application Development Security
-
12
Managing Security for Application Developers
- About Application Security Policies
- Considerations for Using Application-Based Security
- Use of the DB_DEVELOPER_ROLE Role for Application Developers
- Securing Passwords in Application Design
- Securing External Procedures
- Securing LOBs with LOB Locator Signatures
- Managing Application Privileges
- Advantages of Using Roles to Manage Application Privileges
- Creating Secure Application Roles to Control Access to Applications
- Association of Privileges with User Database Roles
- Protecting Database Objects by Using Schemas
- Object Privileges in an Application
-
Parameters for Enhanced Security of Database Communication
- Bad Packets Received on the Database from Protocol Errors
- Controlling Server Execution After Receiving a Bad Packet
- Configuration of the Maximum Number of Authentication Attempts
- Configuring the Display of the Database Version Banner
- Configuring Banners for Unauthorized Access and Auditing User Actions
-
12
Managing Security for Application Developers
-
Part III Controlling Access to Data
-
13
Using Application Contexts to Retrieve User Information
- About Application Contexts
- Types of Application Contexts
-
Using Database Session-Based Application Contexts
- About Database Session-Based Application Contexts
- Components of a Database Session-Based Application Context
- Creating Database Session-Based Application Contexts
-
Creating a Package to Set a Database Session-Based Application Context
- About the Package That Manages the Database Session-Based Application Context
- Using the SYS_CONTEXT Function to Retrieve Session Information
- Checking the SYS_CONTEXT Settings
- Dynamic SQL with SYS_CONTEXT
- SYS_CONTEXT in a Parallel Query
- SYS_CONTEXT with Database Links
- DBMS_SESSION.SET_CONTEXT for Setting Session Information
- Example: Simple Procedure to Create an Application Context Value
- Logon Triggers to Run a Database Session Application Context Package
- Example: Creating a Simple Logon Trigger
- Example: Creating a Logon Trigger for a Production Environment
- Example: Creating a Logon Trigger for a Development Environment
-
Tutorial: Creating and Using a Database Session-Based Application Context
- Step 1: Create User Accounts and Ensure the User SCOTT Is Active
- Step 2: Create the Database Session-Based Application Context
- Step 3: Create a Package to Retrieve Session Data and Set the Application Context
- Step 4: Create a Logon Trigger for the Package
- Step 5: Test the Application Context
- Step 6: Remove the Components of This Tutorial
- Initializing Database Session-Based Application Contexts Externally
- Initializing Database Session-Based Application Contexts Globally
- Externalized Database Session-Based Application Contexts
-
Global Application Contexts
- About Global Application Contexts
- Uses for Global Application Contexts
- Components of a Global Application Context
- Global Application Contexts in an Oracle Real Application Clusters Environment
- Creating Global Application Contexts
-
PL/SQL Package to Manage a Global Application Context
- About the Package That Manages the Global Application Context
- How Editions Affects the Results of a Global Application Context PL/SQL Package
- DBMS_SESSION.SET_CONTEXT username and client_id Parameters
- Sharing Global Application Context Values for All Database Users
- Example: Package to Manage Global Application Values for All Database Users
- Global Contexts for Database Users Who Move Between Applications
- Global Application Context for Nondatabase Users
- Example: Package to Manage Global Application Context Values for Nondatabase Users
- Clearing Session Data When the Session Closes
- Embedding Calls in Middle-Tier Applications to Manage the Client Session ID
-
Tutorial: Creating a Global Application Context That Uses a Client Session ID
- About This Tutorial
- Step 1: Create User Accounts
- Step 2: Create the Global Application Context
- Step 3: Create a Package for the Global Application Context
- Step 4: Test the Newly Created Global Application Context
- Step 5: Modify the Session ID and Test the Global Application Context Again
- Step 6: Remove the Components of This Tutorial
- Global Application Context Processes
-
Using Client Session-Based Application Contexts
- About Client Session-Based Application Contexts
- Setting a Value in the CLIENTCONTEXT Namespace
- Retrieving the CLIENTCONTEXT Namespace
- Example: Retrieving a Client Session ID Value for Client Session-Based Contexts
- Clearing a Setting in the CLIENTCONTEXT Namespace
- Clearing All Settings in the CLIENTCONTEXT Namespace
- Application Context Data Dictionary Views
-
14
Using Oracle Virtual Private Database to Control Data Access
-
About Oracle Virtual Private Database
- What Is Oracle Virtual Private Database?
- Benefits of Using Oracle Virtual Private Database Policies
- Who Can Create Oracle Virtual Private Database Policies?
- Privileges to Run Oracle Virtual Private Database Policy Functions
- Oracle Virtual Private Database Use with an Application Context
- Oracle Virtual Private Database in a Multitenant Environment
- Components of an Oracle Virtual Private Database Policy
-
Configuration of Oracle Virtual Private Database Policies
- About Oracle Virtual Private Database Policies
- Attaching a Policy to a Database Table, View, or Synonym
- Example: Attaching a Simple Oracle Virtual Private Database Policy to a Table
- Enforcing Policies on Specific SQL Statement Types
- Example: Specifying SQL Statement Types with DBMS_RLS.ADD_POLICY
-
Control of the Display of Column Data with Policies
- Policies for Column-Level Oracle Virtual Private Database
- Example: Creating a Column-Level Oracle Virtual Private Database Policy
- Display of Only the Column Rows Relevant to the Query
- Column Masking to Display Sensitive Columns as NULL Values
- Example: Adding Column Masking to an Oracle Virtual Private Database Policy
- Oracle Virtual Private Database Policy Groups
-
Optimizing Performance by Using Oracle Virtual Private Database Policy Types
- About Oracle Virtual Private Database Policy Types
- Dynamic Policy Type to Automatically Rerun Policy Functions
- Example: Creating a DYNAMIC Policy with DBMS_RLS.ADD_POLICY
- Static Policy to Prevent Policy Functions from Rerunning for Each Query
- Example: Creating a Static Policy with DBMS_RLS.ADD_POLICY
- Example: Shared Static Policy to Share a Policy with Multiple Objects
- When to Use Static and Shared Static Policies
- Context-Sensitive Policy for Application Context Attributes That Change
- Example: Creating a Context-Sensitive Policy with DBMS_RLS.ADD_POLICY
- Example: Refreshing Cached Statements for a VPD Context-Sensitive Policy
- Example: Altering an Existing Context-Sensitive Policy
- Example: Using a Shared Context Sensitive Policy to Share a Policy with Multiple Objects
- When to Use Context-Sensitive and Shared Context-Sensitive Policies
- Summary of the Five Oracle Virtual Private Database Policy Types
-
Tutorials: Creating Oracle Virtual Private Database Policies
- Tutorial: Creating a Simple Oracle Virtual Private Database Policy
-
Tutorial: Implementing a Session-Based Application Context Policy
- About This Tutorial
- Step 1: Create User Accounts and Sample Tables
- Step 2: Create a Database Session-Based Application Context
- Step 3: Create a PL/SQL Package to Set the Application Context
- Step 4: Create a Logon Trigger to Run the Application Context PL/SQL Package
- Step 5: Test the Logon Trigger
- Step 6: Create a PL/SQL Policy Function to Limit User Access to Their Orders
- Step 7: Create the New Security Policy
- Step 8: Test the New Policy
- Step 9: Remove the Components of This Tutorial
-
Tutorial: Implementing an Oracle Virtual Private Database Policy Group
- About This Tutorial
- Step 1: Create User Accounts and Other Components for This Tutorial
- Step 2: Create the Two Policy Groups
- Step 3: Create PL/SQL Functions to Control the Policy Groups
- Step 4: Create the Driving Application Context
- Step 5: Add the PL/SQL Functions to the Policy Groups
- Step 6: Test the Policy Groups
- Step 7: Remove the Components of This Tutorial
-
How Oracle Virtual Private Database Works with Other Oracle Features
- Oracle Virtual Private Database Policies with Editions
- SELECT FOR UPDATE Statement in User Queries on VPD-Protected Tables
- Oracle Virtual Private Database Policies and Outer or ANSI Joins
- Oracle Virtual Private Database Security Policies and Applications
- Automatic Reparsing for Fine-Grained Access Control Policies Functions
- Oracle Virtual Private Database Policies and Flashback Queries
- Oracle Virtual Private Database and Oracle Label Security
- Export of Data Using the EXPDP Utility access_method Parameter
- Oracle Virtual Private Database Policies and Oracle Flashback Time Travel
- User Models and Oracle Virtual Private Database
- Oracle Virtual Private Database and JSON
- Oracle Virtual Private Database Data Dictionary Views
-
About Oracle Virtual Private Database
-
15
Using Transparent Sensitive Data Protection
- About Transparent Sensitive Data Protection
- General Steps for Using Transparent Sensitive Data Protection
- Benefits of Transparent Sensitive Data Protection Policies
- Privileges Required for Using Transparent Sensitive Data Protection
- How a Multitenant Environment Affects Transparent Sensitive Data Protection
-
Creating Transparent Sensitive Data Protection Policies
- Step 1: Create a Sensitive Type
- Step 2: Identify the Sensitive Columns to Protect
- Step 3: Import the Sensitive Columns List from ADM into Your Database
-
Step 4: Create the Transparent Sensitive Data Protection Policy
- About Creating the Transparent Sensitive Data Protection Policy
- Creating the Transparent Sensitive Data Protection Policy
- Setting the Oracle Data Redaction or Virtual Private Database Feature Options
- Setting Conditions for the Transparent Sensitive Data Protection Policy
- Specifying the DBMS_TSDP_PROTECT.ADD_POLICY Procedure
- Step 5: Associate the Policy with a Sensitive Type
- Step 6: Enable the Transparent Sensitive Data Protection Policy
- Step 7: Optionally, Export the Policy to Other Databases
- Altering Transparent Sensitive Data Protection Policies
- Disabling Transparent Sensitive Data Protection Policies
- Dropping Transparent Sensitive Data Protection Policies
- Using the Predefined REDACT_AUDIT Policy for Redaction
- Transparent Sensitive Data Protection Policies with Data Redaction
-
Using Transparent Sensitive Data Protection Policies with Oracle VPD Policies
- About Using TSDP Policies with Oracle Virtual Private Database Policies
- DBMS_RLS.ADD_POLICY Parameters That Are Used for TSDP Policies
-
Tutorial: Creating a TSDP Policy That Uses Virtual Private Database Protection
- Step 1: Create the hr_appuser User Account
- Step 2: Identify the Sensitive Columns
- Step 3: Create an Oracle Virtual Private Database Function
- Step 4: Create and Enable a Transparent Sensitive Data Protection Policy
- Step 5: Test the Transparent Sensitive Data Protection Policy
- Step 6: Remove the Components of This Tutorial
- Using Transparent Sensitive Data Protection Policies with Unified Auditing
- Using Transparent Sensitive Data Protection Policies with Fine-Grained Auditing
- Using Transparent Sensitive Data Protection Policies with TDE Column Encryption
- Transparent Sensitive Data Protection Data Dictionary Views
-
16
Encryption of Sensitive Credential Data in the Data Dictionary
- About Encrypting Sensitive Credential Data in the Data Dictionary
- How the Multitenant Option Affects the Encryption of Sensitive Data
- Encrypting Sensitive Credential Data in System Tables
- Rekeying Sensitive Credential Data in the SYS.LINK$ System Table
- Deleting Sensitive Credential Data in System Tables
- Restoring the Functioning of Database Links After a Lost Keystore
- Data Dictionary Views for Encrypted Data Dictionary Credentials
- 17 Securing and Isolating Resources Using DbNest
-
18
On-Demand Encryption of Data
- About On-Demand Encryption of Data
- Security Problems That Encryption Does Not Solve
- Data Encryption Challenges
- Data Encryption Storage with the DBMS_CRYPTO Package
- Asymmetric Key Operations with the DBMS_CRYPTO Package
- Examples of Using the Data Encryption API
-
13
Using Application Contexts to Retrieve User Information
-
Part IV Securing Data on the Network
- 19 Securing Data for Oracle AI Database Connections
-
20
Configuring Oracle AI
Database Native Network Encryption and Data Integrity
- About Oracle Database Native Network Encryption and Data Integrity
- Oracle Database Native Network Encryption Data Integrity
- Data Encryption and Integrity sqlnet.ora Parameters
- Data Integrity Algorithms Support
- Diffie-Hellman Based Key Negotiation
-
Configuration of Data Encryption and Integrity
- About Activating Encryption and Integrity
- About Negotiating Encryption and Integrity
- Configuring Encryption and Integrity Parameters Using Oracle Net Manager
- Troubleshooting the Native Network Encryption Configuration
-
21
Configuring Transport Layer Security Encryption
- Transport Layer Security (TLS) and the Oracle Database
- Configuring TLS for the Oracle Database and Client
-
Advanced and Optional
Configurations
- Optional Parameters for Transport Layer Security
- Mutual Transport Layer Security (mTLS)
- Oracle Wallet Location
- Enable Weak DN Matching
- Private Key/Certificate Selection
- Transport Layer Security Encryption Combined with Authentication Methods
- Specifying TLS Protocol and TLS Cipher Suites
-
Certificate Validation with Certificate Revocation Lists
- About Certificate Validation with Certificate Revocation Lists
- What CRLs Should You Use?
- How CRL Checking Works
- Configuring Certificate Validation with Certificate Revocation Lists
-
Certificate Revocation List Management
- About Certificate Revocation List Management
- Displaying orapki Help for Commands That Manage CRLs
- Renaming CRLs with a Hash Value for Certificate Validation
- Uploading CRLs to Oracle Internet Directory
- Listing CRLs Stored in Oracle Internet Directory
- Viewing CRLs in Oracle Internet Directory
- Deleting CRLs from Oracle Internet Directory
- Troubleshooting CRL Certificate Validation
- Oracle Net Tracing File Error Messages Associated with Certificate Validation
-
TLS and Other Oracle
Products
-
Transport Layer Security Connections in an Oracle Real Application Clusters Environment
- Step 1: Configure TCPS Protocol Endpoints
- Step 2: Ensure That the LOCAL_LISTENER Parameter Is Correctly Set on Each Node
- Step 3: Create Transport Layer Security Wallets and Certificates
- Step 4: Create a Wallet in Each Node of the Oracle RAC Cluster
- Step 5: Define Wallet Locations in the listener.ora and sqlnet.ora Files
- Step 6: Restart the Database Instances and Listeners
- Step 7: Test the Cluster Node Configuration
- Step 8: Test the Remote Client Configuration
-
Transport Layer Security Connections in an Oracle Real Application Clusters Environment
- Troubleshooting the Transport Layer Security Configuration
- Migrating to and Configuring Transport Layer Security Version 1.3
-
Part V Managing Strong Authentication
-
22
Introduction to Strong Authentication
- What Is Strong Authentication?
- Centralized Authentication and Single Sign-On
- How Centralized Network Authentication Works
- Supported Strong Authentication Methods
- Oracle Database Native Network Encryption/Strong Authentication Architecture
- System Requirements for Strong Authentication
- Oracle Database Native Network Encryption and Strong Authentication Restrictions
- 23 Strong Authentication Administration Tools
-
24
Configuring Kerberos Authentication
-
Introduction to Kerberos on Oracle Database
- Kerberos Components in a Typical Oracle Database Configuration
- Tickets Used in the Kerberos Configuration
- Kerberos Server Key Distribution Center
- How Oracle Database Works with Kerberos
- How to Securely Use Database Links with Kerberos and Microsoft Active Directory
- Oracle Database Parameters Used in a Kerberos Configuration
- How Authentication Works in an Oracle Database Kerberos Configuration
-
Enabling Kerberos Authentication
- Step 1: Install Kerberos
- Step 2: Configure a Service Principal for an Oracle Database Server
- Step 3: Extract a Service Key Table from Kerberos
- Step 4: Install an Oracle Database Server and an Oracle Client
- Step 5: Configure Oracle Net Services and Oracle Database
- Step 6: Configure Kerberos Authentication
- Step 7: Create a Kerberos User
- Step 8: Create an Externally Authenticated Oracle User
- Step 9: Get an Initial Ticket for the Kerberos/Oracle User
- Utilities for the Kerberos Authentication Adapter
- Connecting to an Oracle Database Server Authenticated by Kerberos
-
Configuring Interoperability with Microsoft Windows Server Domain Controller KDC
- About Configuring Interoperability with a Microsoft Windows Server Domain Controller KDC
- Step 1: Configure Oracle Kerberos Client for Microsoft Windows Server Domain Controller
- Step 2: Configure a Microsoft Windows Server Domain Controller KDC for the Oracle Client
- Step 3: Configure Oracle Database for a Microsoft Windows Server Domain Controller KDC
- Step 4: Obtain an Initial Ticket for the Kerberos/Oracle User
- Configuring Kerberos Authentication Fallback Behavior
- Troubleshooting the Oracle Kerberos Authentication Configuration
-
Introduction to Kerberos on Oracle Database
-
25
Configuring PKI Certificate
Authentication
- How Oracle Database Uses Transport Layer Security for Authentication
- Enabling Oracle Internet Directory to Use Transport Layer Security Authentication
- Configuring User Authentication with Transport Layer Security
-
Configuring Transport Layer Security for Client Authentication and Encryption with X.509 Certificates
- About Configuring TLS for Client Authentication and Encryption with X.509 Certificates
-
Configuring the Server for Authentication and Encryption with X.509 Certificates
- Step 1: Create and Configure the Server Wallet for the X.509 Certificate
- Step 2: Shut Down the Oracle Listener on the Server
- Step 3: Configure the sqlnet.ora File on the Server
- Step 4: For Logical Volume Management, Configure the Server listener.ora File
- Step 5: For Grid Infrastructure, Configure the Server Listener Process
- Step 6: Set Initialization Parameters on the Server
- Step 7: Create an External Database User on the Server
- Step 8: Restart and Check the Listener Process on the Server
- Configuring the Client for Authentication and Encryption with X.509 Certificates
- Configuring Email over Transport Layer Security with an Oracle Wallet
- Troubleshooting Transport Layer Security Errors
-
26
Configuring RADIUS Authentication
- About Configuring RADIUS Authentication
- RADIUS Components
- RADIUS Authentication Modes
- RADIUS Parameters
-
Enabling RADIUS Authentication, Authorization, and Accounting
- Step 1: Configure RADIUS Authentication
- Step 2: Create a User and Grant Access
- Step 3: Configure External RADIUS Authorization (Optional)
- Step 4: Configure RADIUS Accounting
- Step 5: Add the RADIUS Client Name to the RADIUS Server Database
- Step 6: Configure the Authentication Server for Use with RADIUS
- Step 7: Configure the RADIUS Server for Use with the Authentication Server
- Step 8: Configure Mapping Roles
- Using RADIUS to Log in to a Database
- Integrating Authentication Devices Using RADIUS
- 27 Customizing the Use of Strong Authentication
-
22
Introduction to Strong Authentication
-
Part VI Monitoring Database Activity with Auditing
- 28 Introduction to Auditing
-
29
Provisioning Audit Policies
- Getting Started with Auditing
- About Audit Policies
- Activities That Are Mandatorily Audited
-
Auditing Activities with the Predefined Unified Audit Policies
- About Auditing Activities with the Predefined Unified Audit Policies
- Secure Options Predefined Unified Audit Policy
- Oracle Database Parameter Changes Predefined Unified Audit Policy
- User Account and Privilege Management Predefined Unified Audit Policy
- Center for Internet Security Recommendations Predefined Unified Audit Policy
- Security Technical Implementation Guide Predefined Unified Audit Policies
- ORA_DICTIONARY Sensitive Column Queries Predefined Unified Audit Policy
- Oracle Database Real Application Security Predefined Audit Policies
- Oracle Database Vault Predefined Unified Audit Policy for DVSYS and LBACSYS Schemas
- Oracle Database Vault Predefined Unified Audit Policy for Default Realms and Command Rules
- Oracle Label Security Predefined Unified Audit Policy for LBACSYS Objects
- Steps to Provision Unified Audit Policies
- Common Audit Configurations Across All PDBs
- General Audit Data Dictionary Views
-
30
Creating Custom Unified Audit Policies
- About Custom Unified Audit Policies
- Best Practices for Creating Custom Unified Audit Policies
- Syntax for Creating a Custom Unified Audit Policy
-
Auditing Standard Oracle Database Components
- Auditing Roles
-
Auditing System Privileges
- About System Privilege Auditing
- System Privileges That Can Be Audited
- System Privileges That Cannot Be Audited
- Configuring a Unified Audit Policy to Capture System Privilege Use
- Example: Auditing a User Who Has ANY Privileges
- Example: Using a Condition to Audit a System Privilege
- How System Privilege Unified Audit Policies Appear in the Audit Trail
- Auditing Administrative Users
-
Auditing Object Actions
- About Auditing Object Actions
- Object Actions That Can Be Audited
- Guidelines for Column Level Auditing and Virtual Columns
- Configuring an Object Action Unified Audit Policy
- Example: Auditing Actions on SYS Objects
- Example: Auditing Multiple Actions on One Object
- Example: Auditing GRANT and REVOKE Operations on an Object
- Example: Auditing Both Actions and Privileges on an Object
- Example: Auditing an Action on a Table Column
- Example: Auditing All Actions on a Table
- Example: Auditing All Actions in the Database
- Example: Deep Data Security Audit Policy
- How Object Action Unified Audit Policies Appear in the Audit Trail
- Auditing Functions, Procedures, Packages, and Triggers
- Auditing of Oracle Virtual Private Database Predicates
- Audit Policies for Oracle Virtual Private Database Policy Functions
- Unified Auditing with Editioned Objects
- Auditing the READ ANY TABLE and SELECT ANY TABLE Privileges
- Auditing Only Top-Level Statements
-
Unified Auditing with Configurable Conditions
- About Conditions in Unified Audit Policies
- Configuring a Unified Audit Policy with a Condition
- Example: Auditing Access to SQL*Plus
- Example: Auditing Actions Not in Specific Hosts
- Example: Auditing Both a System-Wide and a Schema-Specific Action
- Example: Auditing a Condition Per Statement Occurrence
- Example: Unified Audit Session ID of a Current Administrative User Session
- Example: Unified Audit Session ID of a Current Non-Administrative User Session
- How Audit Records from Conditions Appear in the Audit Trail
-
Auditing for Multitier or Multitenant Configurations
- Auditing in a Multitier Deployment
-
Auditing in a Multitenant Deployment
- About Local, CDB Common, and Application Common Audit Policies
- Common Audit Configurations Across All PDBs
- Unified Audit Policies in an Application Root
- Configuring a Local Unified Audit Policy or Common Unified Audit Policy
- Example: Local Unified Audit Policy
- Example: CDB Common Unified Audit Policy
- Example: Application Common Unified Audit Policy
- How Local or Common Audit Policies or Settings Appear in the Audit Trail
-
Extending Unified Auditing to Capture Custom Attributes
- About Auditing Application Context Values
- Configuring Application Context Audit Settings
- Disabling Application Context Audit Settings
- Example: Auditing Application Context Values in a Default Database
- Example: Auditing Application Context Values from Oracle Label Security
- How Audited Application Contexts Appear in the Audit Trail
-
Auditing Components of Other Oracle Products and Features
- Auditing Oracle SQL Firewall
-
Auditing Oracle Database Vault Events
- About Auditing Oracle Database Vault Events
- Who Is Audited in Oracle Database Vault?
- About Oracle Database Vault Unified Audit Trail Events
- Oracle Database Vault Realm Audit Events
- Oracle Database Vault Rule Set and Rule Audit Events
- Oracle Database Vault Command Rule Audit Events
- Oracle Database Vault Factor Audit Events
- Oracle Database Vault Secure Application Role Audit Events
- Oracle Database Vault Oracle Label Security Audit Events
- Oracle Database Vault Oracle Data Pump Audit Events
- Oracle Database Vault Enable and Disable Audit Events
- Configuring a Unified Audit Policy for Oracle Database Vault
- Example: Auditing an Oracle Database Vault Realm
- Example: Auditing an Oracle Database Vault Rule Set
- Example: Auditing Two Oracle Database Vault Events
- Example: Auditing Oracle Database Vault Factors
- How Oracle Database Vault Audited Events Appear in the Audit Trail
-
Auditing Oracle Database Real Application Security Events
- About Auditing Oracle Database Real Application Security Events
- Real Application Security Auditable Events
- Real Application Security User, Privilege, and Role Audit Events
- Real Application Security Security Class and ACL Audit Events
- Real Application Security Session Audit Events
- Real Application Security ALL Events
- Configuring a Unified Audit Policy for Oracle Database Real Application Security
- Example: Auditing Real Application Security User Account Modifications
- Example: Using a Condition in a Real Application Security Unified Audit Policy
- How Oracle Database Real Application Security Events Appear in the Audit Trail
- Auditing Oracle Recovery Manager Events
-
Auditing Oracle Label Security Events
- About Auditing Oracle Label Security Events
- Oracle Label Security Unified Audit Trail Events
- Oracle Label Security Auditable User Session Labels
- Configuring a Unified Audit Policy for Oracle Label Security
- Example: Auditing Oracle Label Security Session Label Attributes
- Example: Excluding a User from an Oracle Label Security Policy
- Example: Auditing Oracle Label Security Policy Actions
- Example: Querying for Audited OLS Session Labels
- How Oracle Label Security Audit Events Appear in the Audit Trail
-
Auditing Oracle Data Pump Events
- About Auditing Oracle Data Pump Events
- Oracle Data Pump Unified Audit Trail Events
- Configuring a Unified Audit Policy for Oracle Data Pump
- Example: Auditing Oracle Data Pump Import Operations
- Example: Auditing All Oracle Data Pump Operations
- How Oracle Data Pump Audit Events Appear in the Audit Trail
-
Auditing Oracle SQL*Loader Direct Load Path Events
- About Auditing in Oracle SQL*Loader Direct Path Load Events
- Oracle SQL*Loader Direct Load Path Unified Audit Trail Events
- Configuring a Unified Audit Trail Policy for Oracle SQL*Loader Direct Path Events
- Example: Auditing Oracle SQL*Loader Direct Path Load Operations
- How SQL*Loader Direct Path Load Audited Events Appear in the Audit Trail
-
Auditing Oracle XML DB HTTP and FTP Protocols
- About Auditing Oracle XML DB HTTP and FTP Protocols
- Configuring a Unified Audit Policy to Capture Oracle XML DB HTTP and FTP Protocols
- Example: Auditing Failed Oracle XML DB HTTP Messages
- Example: Auditing All Oracle XML DB FTP Messages
- Example: Auditing Oracle XML DB HTTP Messages That Have 401 AUTH Errors
- How the Unified Audit Trail Captures Oracle XML DB HTTP and FTP Protocol Messages
-
Auditing Oracle Machine Learning for SQL Events
- About Auditing Oracle Machine Learning for SQL Events
- Oracle Machine Learning for SQL Unified Audit Trail Events
- Configuring a Unified Audit Policy for Oracle Machine Learning for SQL
- Example: Auditing Multiple Oracle Machine Learning for SQL Operations by a User
- Example: Auditing All Failed Oracle Machine Learning for SQL Operations by a User
- How Oracle Machine Learning for SQL Events Appear in the Audit Trail
-
Managing Unified Audit Policies
-
Altering Unified Audit Policies
- About Altering Unified Audit Policies
- Altering a Unified Audit Policy
- Example: Altering a Condition in a Unified Audit Policy
- Example: Altering an Oracle Label Security Component in a Unified Audit Policy
- Example: Altering Roles in a Unified Audit Policy
- Example: Dropping a Condition from a Unified Audit Policy
- Example: Altering an Existing Unified Audit Policy Top-Level Statement Audits
- Enabling and Applying Unified Audit Policies to Users and Roles
- Disabling Unified Audit Policies
- Dropping Unified Audit Policies
-
Altering Unified Audit Policies
- Tutorial: Auditing Nondatabase Users
- Unified Audit Policy Data Dictionary Views
-
31
Value-Based Auditing with Fine-Grained Audit Policies
- Overview of Fine-Grained Auditing
- Creating Fine-Grained Audit Policies
- Managing Fine-Grained Audit Policies
-
Tutorial: Adding an Email Alert to a Fine-Grained Audit Policy
- About This Tutorial
- Step 1: Install and Configure the UTL_MAIL PL/SQL Package
- Step 2: Create User Accounts
- Step 3: Configure an Access Control List File for Network Services
- Step 4: Create the Email Security Alert PL/SQL Procedure
- Step 5: Create and Test the Fine-Grained Audit Policy Settings
- Step 6: Test the Alert
- Step 7: Remove the Components of This Tutorial
- Fine-Grained Audit Policy Data Dictionary Views
-
32
Administering the Audit Trail
-
Managing the Unified Audit Trail
- How and Where Unified Audit Records Are Created
- Sizing Recommendations for Unified Auditing
- Managing Potential Sensitive Data Visibility in the Audit Trail
- How Audit Trail Records Are Written to the AUDSYS Schema
- Writing the Unified Audit Trail Records to SYSLOG or the Windows Event Viewer
- How Unified Audit Records are Written to the Operating System
- Moving Operating System Audit Records into the Unified Audit Trail
- Improving the Performance of Queries and Purge Operations
- Using Oracle Data Pump to Export and Import Unified Audit Trail Records
- How Do Cursors Affect Auditing?
- Archiving the Audit Trail
-
Purging Audit Trail Records
- About Purging Audit Trail Records
- Selecting an Audit Trail Purge Method
- Scheduling an Automatic Purge Job for the Audit Trail
- Manually Purging the Audit Trail
- Other Audit Trail Purge Operations
- Example: Directly Calling a Unified Audit Trail Purge Operation
- Purge CLI Records in Databases Upgraded from Oracle Database 12.1 or Earlier
- Audit Trail Management Data Dictionary Views
-
Managing the Unified Audit Trail
-
Appendixes
-
A
Keeping Your Oracle AI
Database Secure
- About the Oracle AI Database Security Guidelines
- Downloading Security Patches and Contacting Oracle Regarding Vulnerabilities
- Guidelines for Securing User Accounts and Privileges
- Guidelines for Securing Passwords
- Securing Authentication for Oracle Database Microsoft Windows Installations
- Guidelines for Securing Roles
- Guidelines for Securing Data
- Guidelines for Securing the ORACLE_LOADER Access Driver
- Guidelines for Securing a Database Installation and Configuration
- Guideline for Securing Multitenant PDBs from the Root in a Linux Environment
- Guidelines for Securing the Network
- Guideline for Securing External Procedures
- Guidelines for Auditing
- Addressing the CONNECT Role Change
-
B
Managing Oracle AI
Database Wallets and Certificates
- Introduction to Oracle Database Wallets and Certificates
- Managing Oracle Database Wallets and Certificates with the orapki Utility
-
Managing Oracle Database Wallets
- Creating a PKCS#12 Wallet
- Importing a PKCS#12 Wallet
- Creating an Auto-Login-Only Wallet
- Creating a Local Auto-Login Wallet
- Creating an Auto-Login Wallet That Is Associated with a PKCS#12 Wallet
- Viewing a Wallet
- Modifying the Password for a Wallet
- Converting an Oracle Wallet to Use the AES256 Algorithm
- Deleting a Wallet
-
Managing Oracle Database Certificates
- Certificate Store Location for System Wallets
- Adding a Certificate Request to an Oracle Wallet
- Creating Signed Certificates
- Creating a Signed Certificate Using a Self-Signed Root
- Adding a Trusted Certificate to an Oracle Wallet
- Adding a Root Certificate to an Oracle Wallet
- Adding Root Certificate Authority That Requires an Intermediate Certificate Using Microsoft Internet Explorer
- Adding a User Certificate to an Oracle Wallet
- Verifying Credentials on the Hardware Device That Uses a PKCS#11 Wallet
- Adding PKCS#11 Information to an Oracle Wallet
- Viewing a Certificate
- Controlling MD5 and SHA-1 Certificate Use
- Certificate Import and Export Operations
- Management of Certificate Revocation Lists (CRLs) with orapki Utility
- Examples of Creating Wallets and Certificates Using orapki
-
orapki Utility Commands Summary
- orapki cert create
- orapki cert display
- orapki crl delete
- orapki crl display
- orapki crl hash
- orapki crl list
- orapki crl upload
- orapki secretstore create_credential
- orapki secretstore create_entry
- orapki secretstore create_user_credential
- orapki secretstore delete_credential
- orapki secretstore delete_entry
- orapki secretstore delete_user_credential
- orapki secretstore list_credentials
- orapki secretstore list_entries
- orapki secretstore list_entries_unsorted
- orapki secretstore modify_credential
- orapki secretstore modify_entry
- orapki secretstore modify_user_credential
- orapki secretstore view_entry
- orapki wallet add
- orapki wallet change_pwd
- orapki wallet convert
- orapki wallet create
- orapki wallet delete
- orapki wallet display
- orapki wallet export
- orapki wallet export_private_key
- orapki wallet import_pkcs12
- orapki wallet import_private_key
- orapki wallet jks_to_pkcs12
- orapki wallet pkcs12_to_jks
- orapki wallet remove
-
mkstore Utility Commands Summary
- mkstore create
- mkstore createALO
- mkstore createCredential
- mkstore createEntry
- mkstore createUserCredential
- mkstore delete
- mkstore deleteCredential
- mkstore deleteEntry
- mkstore deleteSSO
- mkstore deleteUserCredential
- mkstore list
- mkstore listCredential
- mkstore modifyCredential
- mkstore modifyEntry
- mkstore modifyUserCredential
- mkstore viewEntry
-
C
Oracle AI
Database FIPS 140-2 and 140-3 Settings
- About the Oracle AI Database FIPS 140-2 Settings
-
Configuration of FIPS 140-2 Using the Consolidated FIPS_140 Parameter
- About Configuration of FIPS 140-2 Using the FIPS_140 Parameter
- Configuring the FIPS_140 Parameter
- Running orapki in FIPS Mode
- Configuring Standalone Java FIPS for Running Java Client Applications in FIPS Mode
- Enabling FIPS by Running the enable_fips.py Python Script
- FIPS-Supported Algorithms for Transparent Data Encryption
- FIPS-Supported Cipher Suites for DBMS_CRYPTO
- FIPS-Supported Cipher Suites for Transport Layer Security
- FIPS-Supported Algorithms for Network Native Encryption
- Legacy FIPS 140-2 Configurations
- Postinstallation Checks for FIPS 140-2
- Verifying FIPS 140-2 Connections
- Managing Deprecated Weaker Algorithm Keys
- D Considerations for Transitioning from Traditional to Unified Auditing
-
A
Keeping Your Oracle AI
Database Secure
- Glossary
- Index