Skip Headers
Oracle® Database 2 Day + Security Guide
11g Release 1 (11.1)

Part Number B28337-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

3 Securing Oracle Database User Accounts

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.

This chapter contains the following topics:

See Also:

Oracle Database Security Guide for detailed information about securing user accounts

3.1 About Securing Oracle Database User 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 for your site, you can use the procedures in this section to further secure these accounts by following these methods:

See Also:

3.2 Predefined User Accounts Provided by Oracle Database

When you install Oracle Database, the installation process creates a set of predefined accounts. These accounts are in the following categories:

3.2.1 Predefined Administrative Accounts

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 locks and expires 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

ANONYMOUS

Account that allows HTTP access to Oracle XML DB. It is used in place of the APEX_PUBLIC_USER account when the Embedded PL/SQL Gateway (EPG) is installed in the database.

EPG is a Web server that can be used with Oracle Database. It provides the necessary infrastructure to create dynamic applications.

Locked and expired

CTXSYS

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.

See Oracle Text Application Developer's Guide.

Locked and expired

DBSNMP

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.

Locked and expired

EXFSYS

The account used internally to access the EXFSYS schema, which is associated with the Rules Manager and Expression Filter feature. This feature enables you to build complex PL/SQL rules and expressions. The EXFSYS schema contains the Rules Manager and Expression Filter DDL, DML, and associated metadata.

See Oracle Database Rules Manager and Expression Filter Developer's Guide.

Locked and expired

LBACSYS

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.

Locked and expired

MDSYS

The Oracle Spatial and Oracle Multimedia Locator administrator account.

See Oracle Spatial Developer's Guide.

Locked and expired

MGMT_VIEW

An account used by Oracle Enterprise Manager Database Control.

Open

OWBSYS

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.

Locked and expired

ORDPLUGINS

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.

Locked and expired

ORDSYS

The Oracle Multimedia administrator account.

See Oracle Multimedia User's Guide, Oracle Multimedia Reference, and Oracle Multimedia DICOM Developer's Guide.

Locked and expired

OUTLN

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. OUTLN acts as a role to centrally manage metadata associated with stored outlines.

See Oracle Database Performance Tuning Guide.

Locked and expired

SI_INFORMTN_SCHEMA

The account that stores the information views for the SQL/MM Still Image Standard.

See Oracle Multimedia User's Guide and Oracle Multimedia Reference.

Locked and expired

SYS

An account used to perform database administration tasks.

See Oracle Database 2 Day DBA.

Open

SYSMAN

The account used to perform Oracle Enterprise Manager database administration tasks. The SYS and SYSTEM accounts can also perform these tasks.

See Oracle Enterprise Manager Grid Control Installation and Basic Configuration.

Open

SYSTEM

An account used to perform database administration tasks.

See Oracle Database 2 Day DBA.

Open

WMSYS

The account used to store Ultra Search system dictionaries and PL/SQL packages.

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.

See Oracle Ultra Search Administrator's Guide.

Locked and expired

XDB

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.

See Oracle XML DB Developer's Guide.

Locked and expired


3.2.2 Predefined Non-Administrative User Accounts

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

APEX_PUBLIC_USER

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 Database Application Express User's Guide.

Locked and expired

DIP

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.

See Oracle Label Security Administrator's Guide.

Open

FLOWS_020200

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 Database Application Express User's Guide.

Locked and expired

FLOWS_FILES

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 Database Application Express User's Guide.

Locked and expired

MDDATA

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.

See Oracle Spatial Developer's Guide.

Locked and expired

ORACLE_OCM

The account used with Oracle Configuration Manager. This feature enables you to associate the configuration information for the current Oracle Database instance with OracleMetaLink. Then when you log a service request, it is associated with the database instance configuration information.

See Oracle Database Installation Guide for your platform.

Locked and expired

PUBLIC

Account used for the PUBLIC user group.

Oracle Universal Installer does not lock or expire this account upon installation. Its status is OPEN.

See Oracle Database Security Guide.

Locked and expired

SPATIAL_CSW_ADMIN_USR

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.

See Oracle Spatial Developer's Guide.

Locked and expired

SPATIAL_WFS_ADMIN_USR

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 database into main memory for the feature types that are cached.

See Oracle Spatial Developer's Guide.

Locked and expired

XS$NULL

An internal account that represents the absence of a user in a session. Because XS$NULL is not a user, this account can only be accessed by the Oracle Database instance. XS$NULL has no privileges and no one can authenticate as XS$NULL, nor can authentication credentials ever be assigned to XS$NULL.

Locked and expired


3.2.3 Predefined Sample Schema User Accounts

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

BI

The account that owns the BI (Business Intelligence) schema included in the Oracle Sample Schemas.

See also Oracle Warehouse Builder User's Guide.

Locked and expired

HR

The account used to manage the HR (Human Resources) schema. This schema stores information about the employees and the facilities of the company.

Locked and expired

OE

The account used to manage the OE (Order Entry) schema. This schema stores product inventories and sales of the company's products through various channels.

Locked and expired

PM

The account used to manage the PM (Product Media) schema. This schema contains descriptions and detailed information about each product sold by the company.

Locked and expired

IX

The account used to manage the IX (Information Exchange) schema. This schema manages shipping through business-to-business (B2B) applications.

Locked and expired

SH

The account used to manage the SH (Sales) schema. This schema stores business statistics to facilitate business decisions.

Locked and expired


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.

3.3 Expiring and Locking Database Accounts

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.

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, as well as 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.

To expire and lock a database account:

  1. Start Database Control.

    See Oracle Database 2 Day DBA for instructions about how to start Database Control.

  2. Log in with administrative privileges.

    For example:

    Description of login.gif follows
    Description of the illustration login.gif

    The Database Home page appears.

  3. Click Server to display the Server subpage.

  4. 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.

  5. In the Select column, select the account you want to expire, and then click Edit.

    The Edit User page appears.

  6. 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.

  7. Click Apply.

3.4 Requirements for Creating Passwords

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.

Oracle Database Security Guide provides guidelines for securing passwords. At a minimum, passwords must meet the following requirements:

See Also:

3.5 Finding and Changing Default Passwords

In Oracle Database 11g Release 1 (11.1), database user accounts, including administrative accounts, are installed without default passwords. During installation, you either create a password the account (always an administrative account), or Oracle Database installs the default accounts, such as those in the sample schemas, locked with their passwords expired.

If you have upgraded from a previous release of Oracle Database, you may have database accounts that 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:

  1. Log into SQL*Plus with administrative privileges.

    sqlplus system
    Enter password: password
    
  2. Select from the DBA_USERS_WITH_DEFPWD data dictionary view.

    SELECT * FROM DBA_USERS_WTIH_DEFWD;
    

    The DBA_USERS_WITH_DEFPWD lists the accounts that still have user default passwords. For example:

    USERNAME
    ------------
    SCOTT
    
  3. Change the password for the accounts the DBA_USERS_WITH_DEFPWD data dictionary view lists.

    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".

    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:

  1. Start Database Control.

    See Oracle Database 2 Day DBA for instructions about how to start Database Control.

  2. Enter an administrator user name and password (for example, SYSTEM), and then click Login.

  3. Click Server to display the Server subpage.

  4. 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.

  5. In the Select column, select the account you want to change, and then click Edit.

    The Edit User page appears.

  6. Enter a new password in the Enter Password and Confirm Password fields.

  7. Click Apply.

See Also:

3.6 Changing the Default Administrative User Passwords

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.

Similarly, for production environments, do not use default passwords for any administrative accounts, including SYSMAN and DBSNMP. Oracle Database 11g Release 1 (11.1) 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.

3.7 Enforcing Password Management

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. This view contains a column for passwords, but for stronger security, Oracle Database encrypts (disguises) the data in this column. The DBA_USERS view provides useful information such as the user account status, whether or not the account is locked, and password versions. You can query DBA_USERS as follows:

sqlplus SYSTEM
Enter password: password
Connected.
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:

3.8 Initialization Parameters Used to Secure User Accounts

Table 3-4 lists initialization parameters that you can set to better secure user accounts.

Table 3-4 Initialization Parameters Used for User Account Security

Initialization Parameter Default Setting Description

SEC_CASE_SENSITIVE_LOGON

TRUE

Controls case sensitivity in passwords. TRUE enables case sensitivity; FALSE disables it.

SEC_MAX_FAILED_LOGIN_ATTEMPTS

No default setting

Sets the maximum number of times a user is allowed to fail when connecting to an application.

FAILED_LOGIN_ATTEMPTS

10

Sets the maximum times a user login is allowed to fail before locking the account.

Note: You also can set limits on the number of times an unauthorized user (possibly an intruder) attempts to log in to Oracle Call Interface applications by using the SEC_MAX_FAILED_LOGIN_ATTEMPTS initialization parameter.

PASSWORD_GRACE_TIME

7

Sets the number of days that a user has to change his or her password before it expires.

PASSWORD_LIFE_TIME

180

Sets the number of days the user can use his or her current password.

PASSWORD_LOCK_TIME

1

Sets the number of days an account will be locked after the specified number of consecutive failed login attempts.

PASSWORD_REUSE_MAX

UNLIMITED

Sets the number of days before which a password cannot be reused.

PASSWORD_REUSE_TIME

UNLIMITED

Sets the number of password changes required before the current password can be reused.


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.