PK
=Aoa, mimetypeapplication/epub+zipPK =A iTunesMetadata.plistL
You can use many methods to secure database user accounts. For example, Oracle Database has a set of built-in protections for passwords. This chapter explains how you can safeguard default database accounts and passwords, and describes ways to manage database accounts.
Oracle Database 2 Day DBA describes the fundamentals of creating and administering user accounts, including how to manage user roles, what the administrative accounts are, and how to use profiles to establish a password policy.
After you create user accounts, you can use the procedures in this section to further secure these accounts by following these methods:
Safeguarding predefined database accounts. When you install Oracle Database, it creates a set of predefined accounts. You should secure these accounts as soon as possible by changing their passwords. You can use the same method to change all passwords, whether they are with regular user accounts, administrative accounts, or predefined accounts. This guide also provides guidelines on how to create the most secure passwords.
Managing database accounts. You can expire and lock database accounts.
Managing passwords. You can manage and protect passwords by setting initialization parameters. Oracle Database Reference describes the initialization parameters in detail.
See Also:
|
When you install Oracle Database, the installation process creates a set of predefined accounts. These accounts are in the following categories:
A default Oracle Database installation provides a set of predefined administrative accounts. These are accounts that have special privileges required to administer areas of the database, such as the CREATE ANY TABLE
or ALTER SESSION
privilege, or EXECUTE
privileges on packages owned by the SYS
schema. The default tablespace for administrative accounts is either SYSTEM
or SYSAUX
.
To protect these accounts from unauthorized access, the installation process expires and locks most of these accounts, except where noted in Table 3-1. As the database administrator, you are responsible for unlocking and resetting these accounts, as described in "Expiring and Locking Database Accounts".
Table 3-1 lists the administrative user accounts provided by Oracle Database.
Table 3-1 Predefined Oracle Database Administrative User Accounts
User Account | Description | Status After Installation |
---|---|---|
Account that allows HTTP access to Oracle XML DB. It is used in place of the EPG is a Web server that can be used with Oracle Database. It provides the necessary infrastructure to create dynamic applications. |
Expired and locked | |
The account used to administer Oracle Text. Oracle Text enables you to build text query applications and document classification applications. It provides indexing, word and theme searching, and viewing capabilities for text. |
Expired and locked | |
The account used by the Management Agent component of Oracle Enterprise Manager to monitor and manage the database. See Oracle Enterprise Manager Grid Control Installation and Basic Configuration. |
Open Password is created at installation or database creation time. | |
The account used internally to access the See Oracle Database Rules Manager and Expression Filter Developer's Guide. |
Expired and locked | |
The account used to administer Oracle Label Security (OLS). It is created only when you install the Label Security custom option. See "Enforcing Row-Level Security with Oracle Label Security" and Oracle Label Security Administrator's Guide. |
Expired and locked | |
The Oracle Spatial and Oracle Multimedia Locator administrator account. |
Expired and locked | |
An account used by Oracle Enterprise Manager Database Control. |
Open Password is randomly generated at installation or database creation time. Users do not need to know this password. | |
The account that owns the OLAP Catalog (CWMLite). This account has been deprecated, but is retained for backward compatibility. |
Expired and locked | |
This account contains the Oracle Multimedia DICOM data model. See Oracle Multimedia DICOM Developer's Guide for more information. |
Expired and locked | |
The account for administrating the Oracle Warehouse Builder repository. Access this account during the installation process to define the base language of the repository and to define Warehouse Builder workspaces and users. A data warehouse is a relational or multidimensional database that is designed for query and analysis. See Oracle Warehouse Builder Installation and Administration Guide. |
Expired and locked | |
The Oracle Multimedia user. Plug-ins supplied by Oracle and third-party, format plug-ins are installed in this schema. Oracle Multimedia enables Oracle Database to store, manage, and retrieve images, audio, video, DICOM format medical images and other objects, or other heterogeneous media data integrated with other enterprise information. See Oracle Multimedia User's Guide and Oracle Multimedia Reference. |
Expired and locked | |
The Oracle Multimedia administrator account. See Oracle Multimedia User's Guide, Oracle Multimedia Reference, and Oracle Multimedia DICOM Developer's Guide. |
Expired and locked | |
The account that supports plan stability. Plan stability prevents certain database environment changes from affecting the performance characteristics of applications by preserving execution plans in stored outlines. |
Expired and locked | |
The account that stores the information views for the SQL/MM Still Image Standard. See Oracle Multimedia User's Guide and Oracle Multimedia Reference. |
Expired and locked | |
An account used to perform database administration tasks. |
Open Password is created at installation or database creation time. | |
The account used to perform Oracle Enterprise Manager database administration tasks. The See Oracle Enterprise Manager Grid Control Installation and Basic Configuration. |
Open Password is created at installation or database creation time. | |
A default generic database administrator account for Oracle databases. For production systems, Oracle recommends creating individual database administrator accounts and not using the generic |
Open Password is created at installation or database creation time. | |
The instance administrator for the default instance, Ultra Search provides uniform search-and-location capabilities over multiple repositories, such as Oracle databases, other ODBC compliant databases, IMAP mail servers, HTML documents managed by a Web server, files on disk, and more. |
Expired and locked | |
An Ultra Search database super-user. |
Expired and locked | |
An administrative account of Oracle9i Application Server Ultra Search. |
Expired and locked | |
The account used to store the metadata information for Oracle Workspace Manager. |
Expired and locked | |
The account used for storing Oracle XML DB data and metadata. Oracle XML DB provides high-performance XML storage and retrieval for Oracle Database data. |
Expired and locked |
Note: If you create an Oracle Automatic Storage Management (Oracle ASM) instance, then theASMSNMP account is created. Oracle Enterprise Manager uses this account to monitor ASM instances to retrieve data from ASM-related data dictionary views. The ASMSNMP account status is set to OPEN upon creation, and it is granted the SYSDBA privilege. For more information, see Oracle Automatic Storage Management Administrator's Guide. |
Table 3-2 lists default non-administrative user accounts that are created when you install Oracle Database. Non-administrative user accounts only have the minimum privileges needed to perform their jobs. Their default tablespace is USERS
.
To protect these accounts from unauthorized access, the installation process locks and expires these accounts immediately after installation, except where noted in Table 3-2. As the database administrator, you are responsible for unlocking and resetting these accounts, as described in "Expiring and Locking Database Accounts".
Table 3-2 Predefined Oracle Database Non-Administrative User Accounts
User Account | Description | Status After Installation |
---|---|---|
The Oracle Database Application Express account. Use this account to specify the Oracle schema used to connect to the database through the database access descriptor (DAD). Oracle Application Express is a rapid, Web application development tool for Oracle Database. See Oracle Application Express Application Builder User's Guide. |
Expired and locked | |
The Oracle Directory Integration and Provisioning (DIP) account that is installed with Oracle Label Security. This profile is created automatically as part of the installation process for Oracle Internet Directory-enabled Oracle Label Security. |
Expired and locked | |
The account that owns most of the database objects created during the installation of Oracle Database Application Express. These objects include tables, views, triggers, indexes, packages, and so on. See Oracle Application Express Application Builder User's Guide. |
Expired and locked | |
The account that owns the database objects created during the installation of Oracle Database Application Express related to modplsql document conveyance, for example, file uploads and downloads. These objects include tables, views, triggers, indexes, packages, and so on. See Oracle Application Express Application Builder User's Guide. |
Expired and locked | |
The schema used by Oracle Spatial for storing Geocoder and router data. Oracle Spatial provides a SQL schema and functions that enable you to store, retrieve, update, and query collections of spatial features in an Oracle database. |
Expired and locked | |
The account used with Oracle Configuration Manager. This feature enables you to associate the configuration information for the current Oracle Database instance with My Oracle Support. Then when you log a service request, it is associated with the database instance configuration information. See Oracle Database Installation Guide for your platform. |
Expired and locked | |
The Catalog Services for the Web (CSW) account. It is used by Oracle Spatial CSW Cache Manager to load all record-type metadata and record instances from the database into the main memory for the record types that are cached. |
Expired and locked | |
The Web Feature Service (WFS) account. It is used by Oracle Spatial WFS Cache Manager to load all feature type metadata and feature instances from the dantabase into main memory for the feature types that are cached. |
Expired and locked | |
An internal account that represents the absence of a user in a session. Because |
Expired and locked |
If you install the sample schemas, which you must do to complete the examples in this guide, Oracle Database creates a set of sample user accounts. The sample schema user accounts are all non-administrative accounts, and their tablespace is USERS
.
To protect these accounts from unauthorized access, the installation process locks and expires these accounts immediately after installation. As the database administrator, you are responsible for unlocking and resetting these accounts, as described in "Expiring and Locking Database Accounts". For more information about the sample schema accounts, see Oracle Database Sample Schemas.
Table 3-3 lists the sample schema user accounts, which represent different divisions of a fictional company that manufactures various products.
Table 3-3 Default Sample Schema User Accounts
User Account | Description | Status After Installation |
---|---|---|
The account that owns the See also Oracle Warehouse Builder Sources and Targets Guide. |
Expired and locked | |
The account used to manage the |
Expired and locked | |
The account used to manage the |
Expired and locked | |
The account used to manage the |
Expired and locked | |
The account used to manage the |
Expired and locked | |
The account used to manage the |
Expired and locked |
In addition to the sample schema accounts, Oracle Database provides another sample schema account, SCOTT
. The SCOTT
schema contains the tables EMP
, DEPT
, SALGRADE
, and BONUS
. The SCOTT
account is used in examples throughout the Oracle Database documentation set. When you install Oracle Database, the SCOTT
account is locked and expired.
When you expire the password of a user, that password no longer exists. If you want to unexpire the password, you change the password of that account. Locking an account preserves the user password and other account information, but makes the account unavailable to anyone who tries to log in to the database using that account. Unlocking it makes the account available again.
Oracle Database 2 Day DBA explains how you can use Database Control to unlock database accounts. You also can use Database Control to expire or lock database accounts.
To expire and lock a database account:
Start Database Control.
See Oracle Database 2 Day DBA for instructions about how to start Database Control.
Log in with administrative privileges.
For example:
The Database Home page appears.
Click Server to display the Server subpage.
In the Security section, click Users.
The Users page lists the user accounts created for the current database instance. The Account Status column indicates whether an account is expired, locked, or open.
In the Select column, select the account you want to expire, and then click Edit.
The Edit User page appears.
Do one of the following:
To expire a password, click Expire Password now.
To unexpire the password, enter a new password in the Enter Password and Confirm Password fields. See "Requirements for Creating Passwords" for password requirements.
To lock the account, select Locked.
Click Apply.
When you create a user account, Oracle Database assigns a default password policy for that user. The password policy defines rules for how the password should be created, such as a minimum number of characters, when it expires, and so on. You can strengthen passwords by using password policies.
For greater security, follow these guidelines when you create passwords:
Make the password between 12 and 30 characters and numbers.
Use mixed case letters and special characters in the password. (See Oracle Database Security Guide for more information.)
Use the database character set for the password's characters, which can include the underscore (_
), dollar ($
), and number sign (#
) characters.
Do not use an actual word for the entire password.
Oracle Database Security Guide describes more ways that you can further secure passwords.
See Also:
|
When you install Oracle Database, the default database user accounts, including administrative accounts, are created without default passwords. Except for the administrative accounts whose passwords you create during installation (such as user SYS
), the default user accounts arrive locked with their passwords expired. If you have upgraded from a previous release of Oracle Database, you may have database accounts that still have default passwords. These are default accounts that are created when you create a database, such as the HR
, OE
, and SCOTT
accounts.
Security is most easily compromised when a default database user account still has a default password after installation. This is particularly true for the user account SCOTT
, which is a well known account that may be vulnerable to intruders. Find accounts that use default passwords and then change their passwords.
To find and change default passwords:
Log into SQL*Plus with administrative privileges.
sqlplus system
Enter password: password
Select from the DBA_USERS_WITH_DEFPWD
data dictionary view.
SELECT * FROM DBA_USERS_WITH_DEFPWD;
The DBA_USERS_WITH_DEFPWD
lists the accounts that still have user default passwords. For example:
USERNAME ------------ SCOTT
Change the password for the accounts the DBA_USERS_WITH_DEFPWD
data dictionary view lists.
For example, to change the password for user SCOTT
, enter the following:
PASSWORD SCOTT Changing password for SCOTT New password: password Retype new password: password Password changed
Replace password
with a password that is secure, according to the guidelines listed in "Requirements for Creating Passwords". For greater security, do not reuse the same password that was used in previous releases of Oracle Database.
Alternatively, you can use the ALTER USER
SQL statement to change the password:
ALTER USER SCOTT IDENTIFIED BY password;
You can use Database Control to change a user account passwords (not just the default user account passwords) if you have administrative privileges. Individual users can also use Database Control to change their own passwords.
To use Database Control to change the password of a database account:
Start Database Control.
See Oracle Database 2 Day DBA for instructions about how to start Database Control.
Enter an administrator user name and password (for example, SYSTEM
), and then click Login.
Click Server to display the Server subpage.
In the Security section, click Users.
The Users page lists the user accounts created for the current database instance. The Account Status column indicates whether an account is expired, locked, or open.
In the Select column, select the account you want to change, and then click Edit.
The Edit User page appears.
Enter a new password in the Enter Password and Confirm Password fields.
Click Apply.
You can use the same or different passwords for the SYS
, SYSTEM
, SYSMAN
, and DBSNMP
administrative accounts. Oracle recommends that you use different passwords for each. In any Oracle Database environment (production or test), assign strong, secure, and distinct passwords to these administrative accounts. If you use Database Configuration Assistant to create a new database, then it requires you to create passwords for the SYS
and SYSTEM
accounts.
Do not use default passwords for any administrative accounts, including SYSMAN
and DBSNMP
. Oracle Database 11g Release 2 (11.2) and later does not install these accounts with default passwords, but if you have upgraded from an earlier release of Oracle Database, you may still have accounts that use default passwords. You should find and change these accounts by using the procedures in "Finding and Changing Default Passwords".
At the end of database creation, Database Configuration Assistant displays a page that requires you to enter and confirm new passwords for the SYS
and SYSTEM
user accounts.
After installation, you can use Database Control to change the administrative user passwords. See "Finding and Changing Default Passwords" for more information on changing a password.
Apply basic password management rules (such as password length, history, complexity, and so forth) to all user passwords. Oracle Database has password policies enabled for the default profile. "Requirements for Creating Passwords" provides guidelines for creating password policies. Table 3-4 lists initialization parameters that you can set to enforce password management.
You can find information about user accounts by querying the DBA_USERS
view. The DBA_USERS
view provides useful information such as the user account status, whether the account is locked, and password versions. You can query DBA_USERS
as follows:
sqlplus system
Enter password: password
SQL> SELECT * FROM DBA_USERS;
Oracle also recommends, if possible, using Oracle Advanced Security (an option to Oracle Database Enterprise Edition) with network authentication services (such as Kerberos), token cards, smart cards, or X.509 certificates. These services provide strong authentication of users, and provide better protection against unauthorized access to Oracle Database.
See Also:
|
Table 3-4 lists initialization and profile parameters that you can set to better secure user accounts.
Table 3-4 Initialization and Profile Parameters Used for User Account Security
Note: You can use most of these parameters to create a user profile. See Oracle Database Security Guide for more information about user profile settings. |
To modify an initialization parameter, see "Modifying the Value of an Initialization Parameter". For detailed information about initialization parameters, see Oracle Database Reference andOracle Database Administrator's Guide.
This chapter contains:
See Also:
|
Auditing is the monitoring and recording of selected user database actions. In standard auditing, you use initialization parameters and the AUDIT
and NOAUDIT
SQL statements to audit SQL statements, privileges, and schema objects, and network and multitier activities.
There are also activities that Oracle Database always audits, regardless of whether auditing is enabled. These activities are administrative privilege connections, database startups, and database shutdowns. See Oracle Database Security Guide for more information.
Another type of auditing is fine-grained auditing. Fine-grained auditing enables you to audit at the most granular level, data access, and actions based on content, using Boolean measurement, such as value > 1000
. You can use fine-grained auditing to audit activities based on access to or changes in a column. You can create security policies to trigger auditing when someone accesses or alters specified elements in an Oracle database, including the contents within a specified object. You can create policies that define specific conditions that must take place for the audit to occur. For example, you can audit a particular table column to find out when and who tried to access it during a specified period of time. Furthermore, you can create alerts that are triggered when the policy is violated, and write this data to a separate audit file. Oracle Database Security Guide explains how to perform fine-grained auditing.
You typically use auditing to perform the following activities:
Enable accountability for actions. These include actions taken in a particular schema, table, or row, or affecting specific content.
Deter users from inappropriate actions based on that accountability.
Investigate suspicious activity. For example, if a user is deleting data from tables, then a security administrator might decide to audit all connections to the database and all successful and unsuccessful deletions of rows from all tables in the database.
Notify an auditor of actions by an unauthorized user. For example, an unauthorized user could change or delete data, or a user has more privileges than expected, which can lead to reassessing user authorizations.
Detect problems with an authorization or access control implementation. For example, you can create audit policies that you expect will never generate an audit record because the data is protected in other ways. However, if these policies do generate audit records, then you will know the other security controls are not properly implemented.
Address auditing requirements for compliance. Regulations such as the following have common auditing-related requirements:
Sarbanes-Oxley Act
Health Insurance Portability and Accountability Act (HIPAA)
International Convergence of Capital Measurement and Capital Standards: a Revised Framework (Basel II)
Japan Privacy Law
European Union Directive on Privacy and Electronic Communications
Monitor and gather data about specific database activities. For example, the database administrator can gather statistics about which tables are being updated, how many logical I/O operations are performed, or how many concurrent users connect at peak times.
Oracle Database records audit activities in audit records. Audit records provide information about the operation that was audited, the user performing the operation, and the date and time of the operation. Audit records can be stored in either a data dictionary table, called the database audit trail, or in operating system files, called an operating system audit trail. Oracle Database also provides a set of data dictionary views that you can use to track suspicious activities. See Oracle Database Security Guide for more information about these views.
When you use standard auditing, Oracle Database writes the audit records to either to DBA_AUDIT_TRAIL
(the SYS.AUD$
table), the operating system audit trail, or to the DBA_COMMON_AUDIT_TRAIL
view, which combines standard and fine-grained audit log records.
In addition, the actions performed by administrators are recorded in the syslog
audit trail when the AUDIT_SYSLOG_LEVEL
initialization parameter is set.
This section explains how to use standard auditing to audit activities performed on SQL statements, privileges, schema objects, and network or multitier activities.
This section contains:
Using Default Auditing for Security-Relevant SQL Statements and Privileges
Using Proxies to Audit SQL Statements and Privileges in a Multitier Environment
Using Proxies to Audit SQL Statements and Privileges in a Multitier Environment
See Also: Oracle Database Security Guide for detailed information about managing the standard audit trail |
In standard auditing, you enable auditing of SQL statements, privileges, schema objects, and network or multitier activities. You can audit a specific schema table if you want. To perform this type of audit, you use Database Control.
You can view the standard audit trail by querying the DBA_AUDIT_TRAIL
and DBA_COMMON_AUDIT_TRAIL
data dictionary views.
See Also: Oracle Database Security Guide for a roadmap of how and why you can use the different types of audit options available |
Before you perform the standard auditing procedures described in this section, you must enable standard auditing. When you enable standard auditing, you can create the audit trail in the database audit trail or write the audit activities to an operating system file. If you write to an operating system file, you can create the audit record in text or XML format.
To enable or disable the standard audit trail:
Start Database Control.
Log in as SYS
and connect with the SYSDBA
privilege.
User Name: SYS
Password: Enter your password.
Connect As: SYSDBA
Click Server to display the Server subpage.
In the Database Configuration section, click Initialization Parameters.
The Initialization Parameters page appears.
Click SPFile to display the SPFile subpage.
If the SPFile tab does not display in your installation, then you did not install Oracle Database using a server parameters file. Go to the next step.
In the Name field, enter audit_trail
to find the AUDIT_TRAIL
initialization parameter, and then click Go.
You can enter the first few characters of the parameter, for example, AUDIT_
. Alternatively, you can scroll down the list of parameters to find the AUDIT_TRAIL
parameter.
In the Value field, select one of the following values:
DB
: Enables database auditing and directs standard audit records to the database audit trail (SYS.AUD$
), except for records that are always written to the operating system audit trail. (This value is the default if you created the database using Database Configuration Assistant. Otherwise, the default is NONE
.)
OS
: Enables database auditing and directs all audit records to an operating system file. Writing the audit trail to operating system files is better for performance instead of sending the audit records to the SYS.AUD$
table. If the auditor is distinct from the database administrator, you must use the operating system
setting. Any auditing information stored in the database is viewable and modifiable by the database administrator.
To specify the location of the operating system audit record file, set the AUDIT_FILE_DEST
initialization parameter. The first default directory is $ORACLE_BASE/admin/$ORACLE_SID/adump
.
NONE
: Disables standard auditing.
DB, EXTENDED
: Performs all actions of the AUDIT_TRAIL=DB
setting and also populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$
table, when available. (These two columns are populated only when this parameter is specified.)
XML
: Writes to the operating system audit record file in XML format. Prints all elements of the AuditRecord
node (as specified by the by the XML schema in http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd
XSD file) except Sql_Text
and Sql_Bind
to the operating system XML audit file. This .xsd
file represents the schema definition of the XML audit file. An XML schema is a document written in the XML Schema language.
EXTENDED
: Specifies XML, EXTENDED
, which performs all actions of XML
and also populates the SQL bind and SQL text CLOB-type columns of the SYS.AUD$
table, wherever possible. (These columns are populated only when this parameter is specified.)
For a detailed explanation of the AUDIT_TRAIL
initialization parameter settings, see Oracle Database Security Guide.
Click Apply.
Restart the Oracle Database instance:
Click the Database Instance link.
Click Home to display the Database Control home page.
Under General, click Shutdown.
In the Startup/Shutdown Credentials page, enter your credentials.
See Oracle Database 2 Day DBA for more information.
After the shutdown completes, click Startup.
Note the following:
You do not need to restart the database if you change the auditing of objects. You only need to restart the database if you made a universal change, such as turning on or off all auditing or changing the destination of the audit trail operating system files.
You do not need to set AUDIT_TRAIL
to enable either fine-grained auditing or SYS
auditing. (SYS
auditing enables you to monitor the activities of a system administrator. See Oracle Database Security Guide for more information.) For fine-grained auditing, you add and remove fine-grained auditing policies as necessary, applying them to the specific operations or objects you want to monitor. You can use the AUDIT_SYS_OPERATIONS
parameter to enable and disable SYS
auditing.
When you use Database Configuration Assistant (DBCA) to create a new database, Oracle Database configures the database to audit the most commonly used security-relevant SQL statements and privileges. It also sets the AUDIT_TRAIL
initialization parameter to DB
. If you decide to use a different audit trail type (for example, OS
if you want to write the audit trail records to operating system files), then you can do that: Oracle Database continues to audit the privileges that are audited by default. If you disable auditing by setting the AUDIT_TRAIL
parameter to NONE
, then no auditing takes place.
Oracle Database audits the following privileges by default:
ALTER ANY PROCEDURE | CREATE ANY LIBRARY | DROP ANY TABLE |
ALTER ANY TABLE | CREATE ANY PROCEDURE | DROP PROFILE |
ALTER DATABASE | CREATE ANY TABLE | DROP USER |
ALTER PROFILE | CREATE EXTERNAL JOB | EXEMPT ACCESS POLICY |
ALTER SYSTEM | CREATE PUBLIC DATABASE LINK | GRANT ANY OBJECT PRIVILEGE |
ALTER USER | CREATE SESSION | GRANT ANY PRIVILEGE |
AUDIT SYSTEM | CREATE USER | GRANT ANY ROLE |
CREATE ANY JOB | DROP ANY PROCEDURE |
Oracle Database audits the following SQL statement shortcuts by default:
ROLE | SYSTEM AUDIT | PUBLIC SYNONYM |
DATABASE LINK | PROFILE | SYSTEM GRANT |
To individually control the auditing of SQL statements and privileges, use the AUDIT
and NOAUDIT
statements.
Oracle strongly recommends that you audit the database. Auditing is an effective method of enforcing strong internal controls so that your site can meet its regulatory compliance requirements, as defined in the Sarbanes-Oxley Act. This enables you to monitor business operations and catch any activities that may deviate from company policy. Doing so translates into tightly controlled access to your database and the application software. By enabling auditing by default, you can generate an audit record for audit and compliance personnel.
Note: If your applications use the default audit settings from Oracle Database 10g Release 2 (10.2), then you can revert to these audit settings until you modify the applications to use the Release 11g audit settings. To do so, run theundoaud.sql script.
After you have modified your applications to conform to the Release 11g audit settings, then you can manually update your database to use the audit configuration that suits your business needs, or you can run the The |
See Also:
|
The SQL statements that you can audit are in the following categories:
DDL statements. For example, enabling the auditing of tables (AUDIT
TABLE
) audits all CREATE
and DROP
TABLE
statements
DML statements. For example, enabling the auditing of SELECT
TABLE
audits all SELECT
... FROM
TABLE/VIEW
statements, regardless of the table or view
Statement auditing can be broad or focused, for example, by auditing the activities of all database users or of only a select list of users.
Privilege auditing is a way to audit statements that can use a system privilege. For example, you can audit the SELECT ANY TABLE
privilege if you want to audit all the SELECT
statements that will use the SELECT ANY TABLE
privilege. You can audit the use of any system privilege. Similar to statement auditing, privilege auditing can audit the activities of all database users or of only a specified list. As with SQL statement auditing, you use the AUDIT
and NOAUDIT
statements to enable and disable privilege auditing. In addition, you must have the AUDIT SYSTEM
system privilege before you can enable auditing.
Privilege audit options match the corresponding system privileges. For example, the option to audit use of the DELETE ANY TABLE
privilege is DELETE ANY TABLE
. For example:
AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
To audit all successful and unsuccessful uses of the DELETE ANY TABLE
system privilege, enter the following statement:
AUDIT DELETE ANY TABLE BY ACCESS;
To audit all unsuccessful SELECT
, INSERT
, and DELETE
statements on all tables and unsuccessful uses of the EXECUTE PROCEDURE
system privilege, by all database users, and by individual audited statement, issue the following statement:
AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL;
You can audit the activities of a client in a multitier environment by specifying a proxy in the Add Audited Statements or Add Audited Privileges page in Database Control. You can use the SQL AUDIT
statement to audit the activities of a client in a multitier environment. To do so, use the BY
user
clause in the AUDIT
statement.
For example, to audit SELECT TABLE
statements issued by the proxy application user jackson
:
AUDIT SELECT TABLE BY jackson;
Afterward, user jackson
can connect using the appserve
proxy user as follows:
CONNECT appserve[jackson]
Enter password: password
The middle tier can also set the user client identity in a database session, enabling the auditing of user actions through the middle-tier application. The user client identity then shows up in the audit trail.
See Also: Oracle Database Security Guide for detailed information about auditing in a multitier environment |
Schema object auditing can audit all SELECT
and DML statements permitted by object privileges, such as SELECT
or DELETE
statements on a particular table. The GRANT
and REVOKE
statements that control those privileges are also audited.
You can use the AUDIT
statement to audit unexpected errors in network protocol or internal errors in the network layer. The types of errors unc>hovered by network auditing are not connection failures, but can have several other possible causes. One possible cause is an internal event set by a database engineer for testing purposes. Other causes include conflicting configuration settings for encryption, such as the network not finding the information required to create or process expected encryption.
To enable network auditing:
Start SQL*Plus and log on with administrative privileges, such as SYSTEM
, or as a security administrator. For example:
sqlplus system
Enter password: password
SQL*Plus starts, connects to the default database, and then displays a prompt.
For detailed information about starting SQL*Plus, see Oracle Database 2 Day DBA.
Enter the following statement:
AUDIT NETWORK;
To disable network auditing, enter the following:
NOAUDIT NETWORK;
Exit SQL*Plus:
EXIT
Suppose you wanted to audit SELECT
statements on the OE.CUSTOMERS
table. In this tutorial, you enable standard auditing, enable auditing for the SELECT
SQL statement, run the SELECT
SQL statement on the OE.CUSTOMERS
table, and then check its audit file.
In this tutorial:
First, log in, and, if necessary, enable standard auditing.
To enable standard auditing:
Start Database Control.
Log in as SYS
.
User Name: SYS
Password: Enter your password.
Connect As: SYSDBA
Click Server to display the Server subpage.
In the Database Configuration section, click Initialization Parameters.
The Initialization Parameters page appears.
Click SPFile to display the SPFile subpage.
If the SPFile tab does not display in your installation, then you did not install Oracle Database using a server parameters file. Go to the next step.
In the Name field, enter AUDIT_TRAIL
to find the AUDIT_TRAIL
parameter, and then click Go.
You can enter the first few characters of the parameter, for example, AUDIT
. Alternatively, you can scroll down the list of parameters to find the AUDIT_TRAIL
parameter. To sort the list of parameters in alphabetical order, click the Name column.
In the Value field, make a note of the current setting, and then change it to DB_EXTENDED
.
By default, the AUDIT_TRAIL
parameter is set to DB
, which enables database auditing and directs all audit records to the database audit trail (SYS.AUD$
), except for records that are always written to the operating system audit trail. DB_EXTENDED
has this functionality, plus it records SQL text and SQL bind variables.
Click Apply.
Restart the Oracle Database instance.
From a command line, enter the following commands:
sqlplus sys as sysoper
Enter password: password
SQL> SHUTDOWN IMMEDIATE
SQL> RESTART
At this point, you can check the AUDIT_TRAIL
setting by entering the following command:
SQL> SHOW PARAMETER AUDIT_TRAIL NAME TYPE VALUE ------------------------ --------------- ---------------------------------\ audit_trail string DB_EXTENDED
Next, enable auditing for SELECT
statements on the OE.CUSTOMERS
table.
To enable auditing of SELECT statements for the OE.CUSTOMERS table:
Ensure that the sample user sec_admin
exists.
Log on as SYSTEM
, and then from the Database Control home page, click Server to display the Server subpage. Select Users under Security, and check the list of accounts for sec_admin
. "Step 1: Create a Security Administrator Account" explains how to create the sec_admin
security administrator account. If you still have Oracle Database Vault enabled, then you must recreate the account using the Database Vault Account Manager account.
In SQL*Plus, log in as user OE
and then grant sec_admin
the SELECT
privilege on the OE.CUSTOMERS
table.
sqlplus oe
Enter password: password
Connected.
SQL> GRANT SELECT ON CUSTOMERS TO sec_admin;
Log in to Database Control as user SYS
with the SYSDBA
privilege.
Click Server to display the Server subpage.
In the Security section, click Audit Settings.
The Audit Settings page appears.
Select the Audited Objects subpage.
Click Add.
The Add Audited Object page appears.
Enter the following information:
Object Type: Select Table
.
Table: Enter OE.CUSTOMERS
.
Available Statements: Select SELECT
, and then click Move to move it to the Selected Statements list.
Click OK.
Log out of Database Control.
At this stage, auditing is enabled and any SELECT
statements performed on the OE.CUSTOMERS
table are written to the to DBA_AUDIT_TRAIL
data dictionary view. Now, you are ready to test the audit settings.
To test the audit settings:
Start SQL*Plus, and connect as user sec_admin
.
sqlplus sec_admin
Enter password: password
Enter the following SELECT
statement to create an alert in the audit trail:
SELECT COUNT(*) FROM OE.CUSTOMERS;
Enter the following statement to view the DBA_AUDIT_TRAIL
view:
SELECT USERNAME, SQL_TEXT, TIMESTAMP FROM DBA_AUDIT_TRAIL WHERE SQL_TEXT LIKE 'SELECT %';
For this SELECT
statement, enter the text for the SQL_TEXT
column ('SELECT %'
) using the same case that you used when you entered the SELECT
statement in Step 2. In other words, if you entered that SELECT
statement in lowercase letters, then enter 'select %'
when you query the DBA_AUDIT_TRAIL
view, not 'SELECT %'
.
Output similar to the following appears:
USERNAME SQL_TEXT TIMESTAMP ----------------- --------------------------------------- ------------------ SEC_ADMIN SELECT COUNT(*) FROM OE.CUSTOMERS 31-MAR-10
Exit SQL*Plus:
EXIT
Optionally, remove the audit settings that you created earlier.
To remove the audit settings in Database Control:
Log in to Database Control as user SYS
with the SYSDBA
privilege.
Click Server to display the Server subpage.
In the Security section, click Audit Settings.
The Audit Settings page appears.
Select the Audited Objects subpage.
Under Schema, enter OE
.
Under Object Name, enter CUSTOMERS
.
Click Search.
Select the box next to the OE.CUSTOMERS
audited schema, and then click Remove.
A Confirmation dialog box appears.
Select Yes.
Click the Database Instance link to return to the Database home page.
Select the Server subpage, and then under Database Configuration, select Initialization Parameters.
Select the SPFile subpage.
Find the AUDIT_TRAIL
parameter and then set it to the original value. Click Apply.
Exit Database Control.
Restart the database:
sqlplus sys as sysoper
Enter password: password
SQL> SHUTDOWN IMMEDIATE
SQL> RESTART
This is the last example in this guide. If you no longer need the sec_admin
administrator account, then you should remove it.
To remove the sec_admin security administrator account:
Log in to Database Control as user SYSTEM
.
If Oracle Database Vault is enabled, then you must log on as the Database Vault Account Manager.
In the Database Control home page, click Server to display the Server subpage.
In the Security section, click Users.
The Users page appears.
In the Name field, enter sec_admin
.
Click Search.
Select the selection box next to the sec_admin
user account, and then click Delete.
A Confirmation dialog box appears.
Select Yes.
This section contains the following topics:
When you create a new database, you can enable the auditing of a select set of SQL statements and privileges. Oracle recommends that you enable default auditing. Auditing is an effective method of enforcing strong internal controls so that your site meets its regulatory compliance requirements. See "Using Default Auditing for Security-Relevant SQL Statements and Privileges" for more information about default auditing.
Although auditing has a minimal impact on database performance, limit the number of audited events as much as possible. This minimizes the performance impact on the execution of audited statements and the size of the audit trail, making it easier to analyze and understand.
Follow these guidelines when devising an auditing strategy:
Evaluate your reason for auditing.
After you understand of the reasons for auditing, you can devise an appropriate auditing strategy and avoid unnecessary auditing.
For example, suppose you are auditing to investigate suspicious database activity. This information by itself is not specific enough. What types of suspicious database activity do you suspect or have you noticed? A more focused auditing purpose might be to audit unauthorized deletions from arbitrary tables in the database. This purpose narrows the type of action being audited and the type of object being affected by the suspicious activity.
Audit knowledgeably.
Audit the minimum number of statements, users, or objects required to get the targeted information. This prevents unnecessary audit information from cluttering the meaningful information. Balance your need to gather sufficient security information with your ability to store and process it.
For example, if you are auditing to gather information about database activity, then determine exactly what types of activities you want to track, audit only the activities of interest, and audit only for the amount of time necessary to gather the information that you want. As another example, do not audit objects if you are only interested in logical I/O information for each session.
When your purpose for auditing is to gather historical information about particular database activities, follow these guidelines:
Audit only pertinent actions.
To avoid cluttering meaningful information with useless audit records and to reduce the amount of audit trail administration, audit only the targeted database activities. You can audit specific actions by using fine-grained auditing. Oracle Database Security Guide describes fine-grained auditing in detail.
Archive audit records and purge the audit trail.
After you collect the required information, archive the audit records of interest, and purge the audit trail of this information.
To archive audit records, you copy the relevant records to a database table, for example, using INSERT INTO
table
SELECT ... FROM SYS.AUD$ ...
for the standard audit trail. (Fine-grained audit records are in the SYS.FGA_LOG$
table.) Alternatively, you can export the audit trail table to an operating system file. Oracle Database Utilities explains how to export tables by using Oracle Data Pump.
To purge audit records, you delete standard audit records from the SYS.AUD$
table and fine-grained audit records from the SYS.FGA_LOG$
table. For example, to delete all audit records from the standard audit trail, enter the following statement:
DELETE FROM SYS.AUD$;
Alternatively, to delete all audit records from the standard audit trail generated as a result of auditing the table emp
, enter the following statement:
DELETE FROM SYS.AUD$ WHERE OBJ$NAME='EMP';
Follow the privacy considerations of your company.
Privacy regulations often lead to additional business privacy policies. Most privacy laws require businesses to monitor access to personally identifiable information (PII), and this type of monitoring is implemented by auditing. A business-level privacy policy should address all relevant aspects of data access and user accountability, including technical, legal, and company policy concerns.
When you audit to monitor suspicious database activity, follow these guidelines:
Audit general information, and then audit specific information.
When you start to audit for suspicious database activity, often not much information is available to target specific users or schema objects. Therefore, set audit options more generally at first, that is, by using the standard audit options described in "Auditing General Activities Using Standard Auditing".
After you have recorded and analyzed the preliminary audit information, disable general auditing, and then audit specific actions. You can use fine-grained auditing, described in Oracle Database Security Guide, to audit specific actions. Continue this process until you gather enough evidence to draw conclusions about the origin of the suspicious database activity.
Protect the audit trail.
When auditing for suspicious database activity, protect the audit trail so that audit information cannot be added, changed, or deleted without being audited. You audit the standard audit trail by using the AUDIT
SQL statement. For example:
sqlplus sys as sysdba
Enter password: password
SQL> AUDIT SELECT ON SYS.AUD$ BY ACCESS;
Table 7-1 lists initialization parameters that you can use to secure auditing.
Table 7-1 Initialization Parameters Used for Auditing
Initialization Parameter | Default Setting | Description |
---|---|---|
|
Enables or disables auditing. See "Enabling or Disabling the Standard Audit Trail" for detailed information. For a full listing of the | |
or
|
Specifies the operating system directory into which the audit trail is written when the Oracle Database also writes mandatory auditing information to this location, and if the | |
|
Enables or disables the auditing of top-level operations directly issued by user On UNIX systems, if you have also set the | |
No default setting |
On UNIX systems, writes the |
To modify an initialization parameter, see "Modifying the Value of an Initialization Parameter". For detailed information about initialization parameters, see Oracle Database Reference and Oracle Database Administrator's Guide.
This chapter contains:
Guidelines for Securing Operating System Access to Oracle Database
Initialization Parameters Used for Installation and Configuration Security
After you install Oracle Database, you should secure the database installation and configuration. The methods in this chapter describe commonly used ways to do this, all of which involve restricting permissions to specific areas of the database files.
Oracle Database is available on several operating systems. Consult the following guides for detailed platform-specific information about Oracle Database:
Oracle Database Administrator's Reference for Linux and UNIX-Based Operating Systems
Oracle Database Installation Guide for your platform
When you create a new database, Oracle Database provides the following default security settings:
Enables default auditing settings. See "Using Default Auditing for Security-Relevant SQL Statements and Privileges" for detailed information.
Creates stronger enforcements for new or changed passwords. "Requirements for Creating Passwords" describes the new password requirements.
Removes the CREATE EXTERNAL JOB privilege from the PUBLIC role. For greater security, grant the CREATE EXTERNAL JOB
privilege only to SYS
, database administrators, and those trusted users who need it.
Sets security-related initialization and profile parameter settings. Table 2-1 lists the modified parameter settings.
Table 2-1 Default Security Settings for Initialization and Profile Parameters
Setting | 10g Default | 11g Default |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note: If your applications use the default password security settings from Oracle Database 10g Release 2 (10.2), then you can revert to these settings until you modify them to use the Release 11g password security settings. To do so, run theundopwd.sql script.
After you have modified your applications to conform to the Release 11g password security settings, you can manually update your database to use the password security configuration that suits your business needs, or you can run the The |
This section describes how you can secure the data dictionary. The data dictionary is a set of database tables that provide information about the database, such as schema definitions or default values.
This section contains:
The Oracle data dictionary is a set of database tables that provides information about the database. A data dictionary has the following contents:
The names of Oracle Database users
Privileges and roles granted to each user
The definitions of all schema objects in the database (tables, views, indexes, clusters, synonyms, sequences, procedures, functions, packages, triggers, and so on)
The amount of space allocated for, and is currently used by, the schema objects
Default values for columns
Integrity constraint information
Auditing information, such as who has accessed or updated various schema objects
Other general database information
The data dictionary tables and views for a given database are stored in the SYSTEM
tablespace for that database. All the data dictionary tables and views for a given database are owned by the user SYS
. Connecting to the database with the SYSDBA
privilege gives full access to the data dictionary. Oracle strongly recommends limiting access to the SYSDBA
privilege to only those operations necessary such as patching and other administrative operations. The data dictionary is central to every Oracle database.
You can view the contents of the data dictionary by querying data dictionary views, which are described in Oracle Database Reference. Be aware that not all objects in the data dictionary are exposed to users. A subset of data dictionary objects, such as those beginning with USER_%
are exposed as read only to all database users.
Example 2-1 shows how you can find a list of database views specific to the data dictionary by querying the DICTIONARY
view.
You can protect the data dictionary by setting the O7_DICTIONARY_ACCESSIBILITY
initialization parameter to FALSE
. This parameter prevents users who have the ANY
system privilege from using those privileges on the data dictionary, that is, on objects in the SYS
schema.
Oracle Database provides highly granular privileges. One such privilege, commonly referred to as the ANY
privilege, is typically granted to only application owners and individual database administrators. For example, you could grant the DROP ANY TABLE
privilege to an application owner. You can protect the Oracle data dictionary from accidental or malicious use of the ANY
privilege by turning on or off the 07_DICTIONARY_ACCESSIBILITY
initialization parameter.
To enable data dictionary protection:
Start Oracle Enterprise Manager Database Control (Database Control).
See Oracle Database 2 Day DBA for instructions about how to start Database Control.
Log in as SYS
and connect with the SYSDBA
privilege.
User Name: Enter the name of a user who has administrative privileges. In this case, you enter SYS
.
Password: Enter the SYS
user's password.
Connect As: From the list, select SYSDBA.
The Oracle Enterprise Manager Database Home page (Database Home page) appears.
Click Server to display the Server subpage.
In the Database Configuration section, click Initialization Parameters.
The Initialization Parameters page appears.
In the list, search for O7_DICTIONARY_ACCESSIBILITY
.
In the Name field, enter O7_
(the letter O
), and then click Go. You can enter the first few characters of a parameter name. In this case, O7_
displays the O7_DICTIONARY_ACCESSIBILTY
parameter.
Depending on the parameter, you may have to modify the value from the SPFile subpage. Click the SPFile tab to display the SPFile subpage.
Set the value for O7_DICTIONARY_ACCESSIBILTY
to FALSE
.
Click Apply.
Restart the Oracle Database instance.
Click the Database Instance link.
Click Home to display the Database Control home page.
Under General, click Shutdown.
In the Startup/Shutdown Credentials page, enter your credentials.
See Oracle Database 2 Day DBA for more information.
After the shutdown completes, click Startup.
Note:
|
You can secure access to Oracle Database on the operating system level by following these guidelines:
Limit the privileges of the operating system accounts (administrative, root-privileged, or DBA) on the Oracle Database host (physical computer). Only grant the user the least number of privileges needed to perform his or her tasks.
Restrict the ability to modify the default file and directory permissions for the Oracle Database home (installation) directory or its contents. Even privileged operating system users and the Oracle owner should not modify these permissions, unless instructed otherwise by Oracle.
Restrict symbolic links. Ensure that when you provide a path or file to the database, neither the file nor any part of the path is modifiable by an untrusted user. The file and all components of the path should be owned by the database administrator or some trusted account, such as root.
This recommendation applies to all types of files: data files, log files, trace files, external tables, BFILEs, and so on.
Many Oracle Database products use run-time facilities such as Oracle Java Virtual Machine (OJVM). Do not assign all permissions to a database run-time facility. Instead, grant specific permissions to the explicit document root file paths for facilities that might run files and packages outside the database.
Here is an example of a vulnerable run-time call, in which an individual file (in bold typeface) is specified:
call dbms_java.grant_permission('wsmith',
'SYS:java.io.FilePermission','filename','read');
The following example is a better (more secure) run-time call, because by specifying a directory path (in bold typeface), it protects all files within the directory.
call dbms_java.grant_permission('wsmith',
'SYS:java.io.FilePermission','directory_path','read');
Table 2-2 lists initialization parameters that you can set to better secure your Oracle Database installation and configuration.
Table 2-2 Initialization Parameters Used for Installation and Configuration Security
Initialization Parameter | Default Setting | Description |
---|---|---|
|
|
Controls the display of the product version information, such as the release number, in a client connection. An intruder could use the database release number to find information about security vulnerabilities that may be present in the database software. You can enable or disable the detailed product version display by setting this parameter. See Oracle Database Security Guide for more information about this and similar parameters. Oracle Database Reference describes this parameter in detail. |
|
|
Controls restrictions on |
This section explains how to use Database Control to modify the value of an initialization parameter. To find detailed information about the initialization parameters available, see Oracle Database Reference.
To modify the value of an initialization parameter:
Start Database Control.
Log in as user SYS
with the SYSDBA
privilege.
User Name: SYS
Password: Enter your password.
Connect As: SYSDBA
Click Server to display the Server subpage.
In the Database Configuration section, click Initialization Parameters.
The Initialization Parameters page appears.
In the Name field, enter the name of the parameter to change, and then click Go.
You can enter the first few letters of the parameter, for example, SEC_RETURN
if you are searching for the SEC_RETURN_SERVER_RELEASE_NUMBER
parameter. Alternatively, you can scroll down the list of parameters to find the parameter you want to change.
Depending on the parameter, you might have to modify the value from the SPFile subpage. Click the SPFile tab to display the SPFile subpage.
In the Value field, either enter the new value or if a list is presented, select from the list.
Click Apply.
If the parameter is static, restart the Oracle Database instance.
To find out if an initialization parameter is static, check its description in Oracle Database Reference. If the Modifiable setting in its summary table shows No, then you must restart the database instance.
Click the Database Instance link.
Click Home to display the Database Control home page.
Under General, click Shutdown.
In the Startup/Shutdown Credentials page, enter your credentials.
See Oracle Database 2 Day DBA for more information.
After the shutdown completes, click Startup.
This chapter contains:
Oracle Database 2 Day + Security Guide teaches you how to perform day-to-day database security tasks. Its goal is to help you understand the concepts behind Oracle Database security. You will learn how to perform common security tasks needed to secure your database. The knowledge you gain from completing the tasks in Oracle Database 2 Day + Security Guide helps you to better secure your data and to meet common regulatory compliance requirements, such as the Sarbanes-Oxley Act.
The primary administrative interface used in this guide is Oracle Enterprise Manager in Database Console mode, featuring all the self-management capabilities introduced in Oracle Database.
This section contains the following topics:
Before using this guide:
Complete Oracle Database 2 Day DBA
Obtain the necessary products and tools described in "Tools for Securing Your Database"
Oracle Database 2 Day + Security Guide is task oriented. The objective of this guide is to describe why and when you must perform security tasks.
Where appropriate, this guide describes the concepts and steps necessary to understand and complete a task. This guide is not an exhaustive discussion of all Oracle Database concepts. For this type of information, see Oracle Database Concepts.
Where appropriate, this guide describes the necessary Oracle Database administrative steps to complete security tasks. This guide does not describe basic Oracle Database administrative tasks. For this type of information, see Oracle Database 2 Day DBA. Additionally, for a complete discussion of administrative tasks, see Oracle Database Administrator's Guide.
In addition, this guide is not an exhaustive discussion of all Oracle Database security features and does not describe available APIs that provide equivalent command line functionality to the tools used in this guide. For this type of information, see Oracle Database Security Guide.
As a database administrator for Oracle Database, you should be involved in the following security-related tasks:
Ensuring that the database installation and configuration is secure
Managing the security aspects of user accounts: developing secure password policies, creating and assigning roles, restricting data access to only the appropriate users, and so on
Ensuring that network connections are secure
Encrypting sensitive data
Ensuring the database has no security vulnerabilities and is protected against intruders
Deciding what database components to audit and how granular you want this auditing to be
Downloading and installing security patches
In a small to midsize database environment, you might perform these tasks as well and all database administrator-related tasks, such as installing Oracle software, creating databases, monitoring performance, and so on. In large, enterprise environments, the job is often divided among several database administrators—each with their own specialty—such as database security or database tuning.
To achieve the goals of securing your database, you need the following products, tools, and utilities:
Oracle Database 11g Release 2 (11.2) Enterprise Edition
Oracle Database 11g Release 2 (11.2) Enterprise Edition provides enterprise-class performance, scalability, and reliability on clustered and single-server configurations. It includes many security features that are used in this guide.
Oracle Enterprise Manager Database Control
Oracle Enterprise Manager is a Web application that you can use to perform database administrative tasks for a single database instance or a clustered database.
SQL*Plus
SQL*Plus is a development environment that you can use to create and run SQL and PL/SQL code. It is part of the Oracle Database 11g Release 2 (11.2) installation.
Database Configuration Assistant (DBCA)
Database Configuration Assistant enables you to perform general database tasks, such as creating, configuring, or deleting databases. In this guide, you use DBCA to enable default auditing.
Oracle Net Manager
Oracle Net Manager enables you to perform network-related tasks for Oracle Database. In this guide, you use Oracle Net Manager to configure network encryption.
To learn the fundamentals of securing an Oracle database, follow these steps:
Secure your Oracle Database installation and configuration.
Complete the tasks in Chapter 2, "Securing the Database Installation and Configuration" to secure access to an Oracle Database installation.
Secure user accounts for your site.
Complete the tasks in Chapter 3, "Securing Oracle Database User Accounts", which builds on Oracle Database 2 Day DBA, where you learned how to create user accounts. You learn the following:
How to expire, lock, and unlock user accounts
Guidelines to choose secure passwords
How to change a password
How to enforce password management
Understand how privileges work.
Complete the tasks in Chapter 4, "Managing User Privileges". You learn about the following:
How privileges work
Why you must be careful about granting privileges
How database roles work
How to create secure application roles
Secure data as it travels across the network.
Complete the tasks in Chapter 5, "Securing the Network" to learn how to secure client connections and to configure network encryption.
Control access to data.
Complete the tasks in Chapter 6, "Securing Data", in which you learn about the following:
How to use transparent data encryption to automatically encrypt database table columns and tablespaces
How to control data access with Oracle Virtual Private Database
How to enforce row-level security with Oracle Label Security
How to control system administrative access to sensitive data with Oracle Database Vault.
Configure auditing so that you can monitor the database activities.
Complete the tasks in Chapter 7, "Auditing Database Activity" to learn about standard auditing.
2 Day + Security Guide
11g Release 2 (11.2)
E10575-08
September 2012
Oracle Database 2 Day + Security Guide, 11g Release 2 (11.2)
E10575-08
Copyright © 2006, 2012, Oracle and/or its affiliates. All rights reserved.
Primary Author: Patricia Huey
Contributors: Naveen Gopal, Rahil Mir, Gopal Mulagund, Nina Lewis, Paul Needham, Deborah Owens, Sachin Sonawane, Ashwini Surpur, Kamal Tbeileh, Mark Townsend, Peter Wahl, Xiaofang Wang, Peter M. Wong
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 is software or related documentation that 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 America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software or hardware 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 that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware 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.
Welcome to Oracle Database 2 Day + Security Guide. This guide is for anyone who wants to perform common day-to-day security tasks with Oracle Database.
This preface contains:
Oracle Database 2 Day + Security Guide expands on the security knowledge that you learned in Oracle Database 2 Day DBA to manage security in Oracle Database. The information in this guide applies to all platforms. For platform-specific information, see the installation guide, configuration guide, and platform guide for your platform.
This guide is intended for the following users:
Oracle database administrators who want to acquire database security administrative skills
Database administrators who have some security administrative knowledge but are new to Oracle Database
This guide is not an exhaustive discussion about security. For detailed information about security, see the Oracle Database Security documentation set. This guide does not provide information about security for Oracle E-Business Suite applications. For information about security in the Oracle E-Business Suite applications, see the documentation for those products.
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc
.
Access to Oracle Support
Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info
or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs
if you are hearing impaired.
For more information, use the following resources:
Oracle Database Documentation
For more security-related information, see the following documents in the Oracle Database documentation set:
Many of the examples in this guide use the sample schemas of the seed database, which is installed by default when you install Oracle. See Oracle Database Sample Schemas for information about how these schemas were created and how you can use them.
Oracle Technology Network (OTN)
You can download free release notes, installation documentation, updated versions of this guide, white papers, or other collateral from the Oracle Technology Network (OTN). Visit
http://www.oracle.com/technetwork/index.html
For security-specific information on OTN, visit
http://www.oracle.com/technetwork/topics/security/whatsnew/index.html
For the latest version of the Oracle documentation, including this guide, visit
http://www.oracle.com/technetwork/documentation/index.html
Oracle Documentation Search Engine
To access the database documentation search engine directly, visit:
My Oracle Support (formerly OracleMetaLink)
You can find information about security patches, certifications, and the support knowledge base by visiting My Oracle Support at:
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. |