AccessibilitySkip to Top NavigationSkip to Main ContentHome  |  Contact IRS  |  About IRS  |  Site Map  |  Español  |  Help  

10.8.4  Relational Database Management Systems (RDBMS) Security Configurations (Cont. 1)

10.8.4.5 
Technical Controls

10.8.4.5.1 
Identification and Authentication

10.8.4.5.1.6  (02-21-2008)
Non-interactive/Automated Processing Accounts

  1. Accounts created for and used by non-interactive/automated processing are subject to special consideration. These database accounts may be used for a variety of functions such as activity log storage by remote or local devices, unattended database maintenance batch jobs, etc. These accounts shall not be shared with interactive (i.e., human user) database users. The primary vulnerability associated with the use of non-interactive database accounts is a frequent requirement to store the account name and password within application code or external files and the possibility of exposure of this information during the logon process. The mechanisms for protecting the username and password vary by operating system and database system. Accounts used for automated processing should be further protected by restricting the account used to appropriate hours of access where possible. Additional policy for securing these accounts is located in specific database and OS-specific sections.

    1. The SA shall ensure only authorized users will have access to database utilities and batch submissions that contain account names and passwords.

    2. The DBA shall ensure that non-interactive/automated processing accounts meet the same security requirements as database application user database accounts meet with the exception of password lifetime.

    3. The DBA shall restrict the password lifetime for non-interactive/automated processing accounts to a maximum of one year.

    4. The DBA shall ensure that use of non-interactive/automated processing accounts is documented and authorized by the DAA.

    5. The DBA shall ensure that database utilities and batch submissions do not contain or store unencrypted database account names and passwords.

10.8.4.5.1.7  (02-21-2008)
Multiple-Tier Application Connection Accounts

  1. Many databases require the use of a single account to support multiple tier or "N-Tier" application connections from an application server to a backend database. Such connections rely upon the degree of security applied to the network connection and the authentication method used between the middle-tier server and the database server. Also, the ability to audit at the individual user level may be lost at the database level. It becomes the responsibility in this scenario of the application level to audit individual activities as required. The access to the N-Tier connection account shall be restricted by network configuration and authentication method to the connecting middle-tier server. Acceptance of risk for the limited auditing capability of the database in this configuration shall be documented and filed with the SecSpec.

    1. The DBA shall ensure that access to a shared database N-Tier connection account is restricted by network configuration and authentication method to the connecting application server.

    2. Remote Access accounts shall be documented within the lifecycle.

    3. The DBA shall configure connections between the database server and connecting application server in accordance with policy as listed in IRM 10.8.1.

10.8.4.5.1.8  (02-21-2008)
Application User Database Accounts

  1. Application user database accounts are used to provide access to application database objects to perform a particular application function. Privileges granted to application user database accounts shall follow the principle of least privilege and include only those privileges required to perform the assigned function. Privileges shall not be granted directly to application user database accounts. Privileges shall be granted to application user database accounts only through the use of database roles.

    1. The DBA shall ensure that privileges granted to application user database accounts are restricted to those required to perform the specific application functions assigned.

    2. The DBA shall ensure that privileges are not directly granted to database application user database accounts, but rather are managed through the assignment of roles.

10.8.4.5.1.9  (02-21-2008)
Local Operating System (OS) Accounts for Applications

  1. Database applications that are installed on the DBMS host system and are accessed from the DBMS host by application users may require a specific security configuration. Specific details for any OS account configuration requirements are located in the DBMS-specific sections of the Exhibits.

10.8.4.5.1.10  (02-21-2008)
OS Accounts for DBAs

  1. Database administration OS accounts required for operation and maintenance of the DBMS shall be configured in accordance with the security requirements as specified by the specific DBMS. Details for the DBA account configurations are located in the specific DBMS appendix.

    1. The SA, with the support of the DBA, shall ensure that database administration OS accounts required for operation and maintenance of the DBMS are configured in accordance with the security requirements specified for the specific DBMS.

10.8.4.5.2  (02-21-2008)
Access Control

  1. The IRS shall implement access control measures that shall provide protection from unauthorized alteration, loss, unavailability, or disclosure of information. Access control shall follow the principle of least privilege and separation of duties. Database users shall adhere to IRS policy for access control in accordance with IRM 10.8.1.

10.8.4.5.2.1  (02-21-2008)
Database Object Access

  1. Each database application user database account shall be granted object access to the appropriate database objects through application specific roles. These roles shall be based on the function being performed. Object privileges shall not be assigned directly to individual application user database accounts. Object privileges shall not be granted to PUBLIC (a DBMS defined mandatory all-user role) except those explicitly required by the DBMS vendor. Note that not every role defined by the vendor is required by IRS database applications. Whenever possible, minimize the access by limiting the role even if it is a predefined role. Access to DBA views and tables, which contain access to all data dictionary object information, shall be restricted to DBAs, SecSpecs, application administrators (if required), and batch processing accounts that have been documented within the lifecycle documentation.

    1. The DBA shall ensure that all object privileges granted to application users are granted through the use of application specific roles.

    2. The DBA shall ensure that object privileges are not assigned directly to individual application user database accounts.

    3. The DBA shall ensure that application object privileges are not granted to PUBLIC.

    4. The DBA shall ensure that DBMS installation default object privileges are not granted to PUBLIC except for those object privileges whose removal is not supported by the DBMS vendor.

    5. The DBA shall ensure that access to DBA views and tables is restricted to DBAs and batch processing accounts.

10.8.4.5.2.2  (02-21-2008)
Application Object Ownership/Schema Account

  1. Object ownership grants full privileges to owned objects. All database objects shall be owned by the database system, DBAs, or by an account created especially for application object ownership. It is recommended that for each application a custom database account is created and that this account is used to own all of the database objects accessed by the application. The application user shall not own any database objects. Only the application owner shall have the ability to grant object privileges to the application roles. At no time shall an application user log on to the database account that is the application object owner. The application object owner database account shall be used only for update and maintenance of the application objects within the database. To help protect this account, the custom application owner account shall be disabled when not in use. The default DBMS database accounts shall not be used as the owner of an application’s objects or schema.

    1. The DBA shall ensure that all database objects are owned by the database system, DBAs, or by a separate account created especially for application object ownership.

    2. The DBA shall ensure that application user database accounts do not own any database objects.

    3. The SecSpec shall ensure that DBA accounts do not own application objects.

    4. The DBA shall ensure that the application object owner account is used only for update and maintenance of the application objects.

    5. The DBA shall ensure that the application object owner account is used only for update and maintenance of the application objects.

    6. The DBA shall ensure that custom application owner accounts are disabled/locked when not in use.

    7. The DBA shall ensure that default DBMS database accounts other than the default administration account are not used as the owner of an application’s objects or schema.

10.8.4.5.2.3  (02-21-2008)
Database Roles

  1. A database role allows database privileges to be defined and assigned by application function. Individually required privileges and other database roles may be granted to a single database role thus allowing required privileges to be simultaneously granted to and revoked from database accounts. An example of such roles would be DBA roles, application administrator roles, and specific application user roles for financial applications, sales support applications, inventory applications, etc. All application user roles shall be granted the most limited set of privileges that allows the user to accomplish the specific job function required of their position. No roles shall be granted to PUBLIC. No permissions shall be granted directly to application user database accounts with the following exceptions: 1) accounts created and maintained by default during the installation and maintenance of the database system, and 2) a single application user database account on a database with only one such account.

    1. The DBA shall ensure that all application user roles are granted the most limited set of privileges that allows the user to accomplish the specific job function required of their position.

    2. The DBA shall ensure that roles are not granted to PUBLIC.

    3. The DBA shall ensure that no permissions are granted directly to database accounts except those granted to database application owner accounts, a single application user database account on a database where only one such account is defined, and to accounts created and maintained by default during the installation and maintenance of the database system.

10.8.4.5.2.3.1  (02-21-2008)
DBA Role

  1. The DBA role contains all database system privileges. System privileges include privileges to configure the database, enable the creation, modification, and deletion of database objects, maintain database accounts, and privileges that provide the ability to grant and revoke permissions to these objects. The DBA role also includes exclusive access to database views and tables that house privileged information about the database and database structure. The DBA has full access to the database's data and its’ data dictionary. A DBA has full and complete control of the database, its structure, and its contents. The DBA role shall only be granted to authorized DBAs. In a production environment, the assignment of the DBA role shall be restricted to authorized DBA accounts. In a development environment, the DBA role shall be restricted to DBA accounts and authorized application developer accounts.

    1. The DBA shall ensure that the DBA role is restricted to authorized DBA accounts in a production environment.

    2. The DBA shall ensure that the DBA role is restricted to DBA accounts in a production environment and authorized application developer accounts in a development environment.

    3. Whenever possible, use of the generic DBA account(s) shall be replaced with accounts specific to individuals. For example, the OracleDBA account is not required, but any account with the same permissions will suffice. Where possible each DBA shall have his/her own account thereby increasing individual accountability as required by IRM 10.8.1.

10.8.4.5.2.3.2  (02-21-2008)
Application Developer Roles

  1. The application developer role is used to assign required privileges to developer accounts on a development database. Application developers shall not be permitted access to production databases, except under the circumstances described below:

    1. In emergency troubleshooting situations, the Information System Owner of a production DBMS may authorize a limited number of developers temporary access to a production database for a fixed number of days. The approval of such access must be in writing and must be issued by a Information System Owner management-level official. The duration of the temporary access shall be specified in writing, and shall not exceed 15 days. If developer access to a production database for a period of greater than 15 days is required, a formal deviation request (to deviate from this IRM) shall be submitted in accordance with the deviation process described in IRM 10.8.1.

    2. Developers that have been granted access to a production database shall use "Fire Call" accounts as the means of system access, in accordance with IRM 10.8.1 and operating system specific Fire Call account procedures.

    3. Developers, DBAs, and Information System Owners shall observe the Security Change Management requirements of IRM 10.8.1 in all situations involving developer access to production databases, including the requirement to submit a change request to an appropriate change control board.

10.8.4.5.2.3.3  (02-21-2008)
Application Administrator Roles

  1. Application administrator roles are roles used to assign application user database account maintenance responsibility to users other than DBAs. In some cases, such a capability is required by a specific application. Application administrator roles may have the privileges to create application user database accounts, assign specific application profiles to individual application user database accounts, and assign application roles to application user database accounts. The application administrator role should be activated only for a specified database application or by a password provided by a stored database application. The application administrator role shall not be used as the default role for application user database accounts.

    1. The DBA shall ensure that the application administrator role is used only when performing administration functions.

    2. DBA shall ensure that the application administrator role is not used as the default role for application user database accounts.

10.8.4.5.2.3.4  (02-21-2008)
Application User Database Roles

  1. For each application, distinct roles shall be created that define all privileges necessary for users of the application. A unique, separate role shall be defined for application administrators. If an application performs multiple job functions, individual roles shall be created corresponding to the privileges necessary each of individual the job functions.

  2. Each application user database account shall be granted an appropriate default role upon creation of the account. Application user database accounts may be assigned multiple application user roles based upon their job function. An application user database account shall not be granted the privilege to alter any other database account. All DBA views and tables shall be secured so application user database accounts or application user database roles do not have access to this information.

    1. The DBA shall assure that every application with two or more application user database accounts has distinct application user database roles containing any and all privileges necessary for application users and application administrators.

    2. The DBA shall ensure that all application user database accounts are granted the appropriate application user database role.

    3. The DBA shall ensure that application user database accounts are not granted the privilege to alter any other database account.

    4. Where possible, application developers shall use DBMS security functionality such as "invoker’s rights" or equivalent functionality to ensure that privilege information defined in database roles is passed appropriately to any DBMS stored procedures accessed by applications.

10.8.4.5.3  (02-21-2008)
Audit and Accountability

  1. This section establishes the minimum amount of auditing information required for IRS database management systems. The information in this section provides DBMS-specific detail for the auditing requirements identified in IRM 10.8.3,Audit Logging Security Standards.

10.8.4.5.3.1  (02-21-2008)
Audit Data Requirements

  1. Auditing shall be configured and implemented on all DBMS systems. Auditing shall be capable of capturing all database operations. This includes both events that occur within the database and affect modification to database parameters and resources as well as modifications to the database catalog (object creation, deletion, alteration) and events performed on or by the host system such as database shutdown and startup. Database audit data shall be maintained in accordance with IRM 10.8.1. The audit data is not required to be local to the database for the period of retention, but shall be available for historical analysis if needed. Audit data shall only be readable by personnel authorized by the SecSpec.

    1. The SecSpec shall assure that auditing is configured and implemented on all DBMS software and the host operating systems that the DBMS software runs on.

    2. The SecSpec shall ensure that database audit data is captured and maintained in accordance with IRM 10.8.1 and IRM 10.8.3.

    3. The SA, with support of the DBA, shall ensure that audit data is captured for database events that are auditable at the host system level including database process or service startup/shutdown and database authentication or access.

    4. The DBA shall ensure that audit data is captured for all required database events. See IRM 10.8.4.5.3.2, Minimum Required Audit Operations.

    5. The DBA shall ensure that audit data is only readable by personnel authorized by the SecSpec.

10.8.4.5.3.2  (02-21-2008)
Minimum Required Audit Operations

  1. The following minimum set of operations shall be audited for successful and unsuccessful execution. In the event of intrusive or anomalous activity, more detailed auditing shall be performed. (Reference the DBMS specific appendixes for specific minimum database auditing requirements.) The DBA shall ensure that the following minimum audit requirements are met:

    1. The DBA shall ensure that the creation, alteration, or deletion (drop) of database accounts is audited.

    2. The DBA shall ensure that the creation, alteration, or deletion (drop) of any database system storage structure is audited.

    3. The DBA shall ensure that the creation, alteration, or deletion (drop) of database objects is audited.

    4. The DBA shall ensure that the creation, alteration, or deletion (drop) of database tables is audited.

    5. The DBA shall ensure that the creation, alteration, or deletion (drop) of database indexes is audited.

    6. The DBA shall ensure that enabling and disabling of audit functionality is audited.

    7. The DBA shall ensure that granting and revoking of database system level privileges is audited.

    8. The DBA shall ensure that any action that returns an error message because the object referenced does not exist is audited.

    9. The DBA shall ensure that any action that renames a database object is audited.

    10. The DBA shall ensure that any action that grants or revokes object privileges from a database role or database account is audited.

    11. The DBA shall ensure that all modifications to the data dictionary or database system configuration are audited.

    12. The DBA shall ensure that all database connection failures are audited. Where possible, the DBA shall ensure that both successful and unsuccessful connection attempts are audited.

10.8.4.5.3.3  (02-21-2008)
DBA Auditing

  1. All connections performed to maintain or administer the database shall be audited. All DBA operations shall be audited. At a minimum, the DBA connection shall be audited and the following list of DBA activities shall be reported:

    1. Database startup

    2. Database shutdown

    3. Database online backup

    4. Database archiving

    5. Database performance statistics collection

  2. The SA shall protect database audit files so that they cannot be modified by the DBA.

  3. The DBA shall ensure that all database connections used to perform the above listed DBA actions are audited.

10.8.4.5.3.4  (02-21-2008)
Value-Based Auditing

  1. Value-based auditing is performed on the individual data element. It provides a before and after look of changes to data values. Value-based auditing is required for any system that requires a before and after look of changes to data values. Most databases accommodate this basic requirement by default by recording transactions in log files available for restoration of data prior to an uncommitted transaction. Transaction logs shall be reviewed on a rotating basis, but at a minimum once a quarter, if there have been no reported or suspected security events on that database instance. Transaction logs shall be reviewed when security events occur for sensitive data. Users shall be notified of the last time and date of modification to sensitive data. Ensuring review of the DBMS transaction logs is the responsibility of the SecSpec.

    1. The SecSpec shall ensure that DBMS transaction logs are reviewed weekly or more frequently for suspicious or unauthorized changes to sensitive data.

10.8.4.5.3.5  (02-21-2008)
Required Audit Operations on Audit Data

  1. Unauthorized users often target auditing data in order to hide evidence of unauthorized activity. The audit data shall be reviewed for the following types of operations.

    1. Update of audit information

    2. Deletion of audit information

  2. This level of auditing applies to the actions of all users, including DBAs.

    1. The DBA shall ensure that database audit trail information is audited for all update and deletion operations.

10.8.4.5.3.6  (02-21-2008)
Audit Data Backup

  1. Audit data shall be maintained in accordance with IRM 10.8.1, IRM 10.8.3, applicable operating system specific policies (e.g., the Unix IRM), and this IRM. IRS practice has been to retain archived audit logs/trails for the remainder of the year they were made plus six years. The audit data is not required to reside within the database or reside on local disk storage, but can be available on off-line storage if needed. If an application is not capable of maintaining this amount of audit information, the deficiency shall be documented and a deviation requested.

  2. The audit data shall be stored in a format readable by analysis programs or scripts, and comply with international standards for interchange. This shall enable the SecSpec to perform a historical analysis if intrusive or anomalous behavior is discovered.

  3. When the audit data is archived (backed up) to a historical format, the archived audit information shall be deleted from the database or host system. The deletion of audit records may be the responsibility of the DBA and requires the generation of an audit record. (This means that after the audit data has been archived, only one record shall remain in the active audit trail. This will be the record of deletion of audit information.) This allows the SecSpec and/or the DBA to monitor the audit information and verify that the audit data has been archived.

    1. The DBA shall ensure that all audit data deletion operations cause an audit record to be generated within the active audit trail.

10.8.4.5.3.7  (02-21-2008)
Audit Data Reviews

  1. The collection of user account actions and process activities in the audit files is only part of the process of system monitoring. Collected data shall be examined and analyzed at least weekly to detect any compromise or attempted compromise of system security in accordance with IRM 10.8.1.

  2. The database audit data shall be reviewed at a minimum bi-weekly. This review process shall check for any intrusive activity and any anomalous activity.

    1. The SecSpec shall ensure that the audit data and/or system logs capture the following types of information:

    • Excessive logon attempt failures by single or multiple database accounts

    • Logons at unusual/non-duty hours

    • Failed attempts to access restricted system or data files indicating a possible pattern of deliberate browsing

    • Unusual or unauthorized activity by SAs

    • System failures or errors

    • Unusual or suspicious patterns of activity

  3. At a minimum, the DBA or security administrator shall do the following:

    1. The DBA shall provide reports on current audit data.

    2. The DBA shall provide reports on historical audit data, for trend analysis purposes.

    3. The DBA shall provide a methodology to back up current audit data into an appropriate archive format.

    4. The DBA shall create processes to monitor and provide real-time alerts for high priority incidents.

10.8.4.5.3.8  (02-21-2008)
Audit Data Access

  1. The ability to grant access to database audit data shall be limited to the DBA and SecSpec. This access control shall be strictly enforced. Any access to database audit data beyond that held by the DBA and SecSpec shall be granted only to other personnel who are responsible for reviewing and acting upon audit reports. The SA and data owner shall be notified whenever such access is granted. The DBA and the SecSpec shall maintain a record of such access which shall include the identification of the individual granted access and the period of such access. Select, insert, delete, or update operations on audit information shall be restricted to DBAs or security auditors. Privileges to disable auditing shall be restricted to DBAs or security auditors.

    1. The DBA shall ensure that access to any DBA views that allow a database account to display audit information is restricted to DBAs or security auditors.

    2. The DBA shall ensure that select, insert, delete, or update privileges on audit tables is restricted to DBAs only.

    3. The DBA shall ensure that privileges to disable auditing are restricted only to DBAs.

10.8.4.5.3.9  (02-21-2008)
Database Monitoring

  1. In addition to reviewing audit data collections, unauthorized database activity may also be discovered by actively monitoring the status of database objects. The DBA shall review the DBMS job queues daily to ensure that no unauthorized batch jobs or database scripts are being run against the database. The DBA shall monitor the creation, reload, and compilation of database objects to ensure no unauthorized changes have been made. Where possible, DBAs shall review what applications are being used to access the database to ensure that only authorized applications are allowed access to the database and to discover unauthorized database access attempts.

  2. DBAs shall review what applications are being used to access the database to ensure that only authorized applications are allowed access to the database and to discover unauthorized database access attempts.

  3. The DBA shall regularly and routinely monitor database accounts for expiration and inactivity. Accounts not in use shall be removed in accordance with IRM 10.8.1.

    1. The DBA shall monitor the database for unauthorized changes to database objects.

    2. The DBA shall monitor database batch and job queues to ensure that no unauthorized jobs are accessing the database.

    3. The DBA shall monitor database account expiration and inactivity and remove expired and inactive accounts in accordance with IRM 10.8.1, which requires disabling of accounts after 45 days of inactivity and removal of accounts after 90 days of inactivity.

    4. The DBA shall monitor the database to discover access by unauthorized application software.

10.8.4.5.4  (02-21-2008)
System and Communications Protection

  1. This section describes the requirements for network security as it relates to all database management systems.

10.8.4.5.4.1  (02-21-2008)
Protection of Database Identification Parameters

  1. Database parameters such as instance identifiers, network addresses, and database host names may aid unauthorized users in finding and accessing databases. This information should never be published publicly such as via mailing lists or news groups and should be protected from unauthorized access where possible. Database information for specific databases shall be restricted to authorized database users and administrators of that particular database and not disseminated to all users in the network or environment.

    1. Where possible, the SecSpec shall ensure that database client software includes only database identification parameters of databases to which that user is authorized access.

10.8.4.5.4.2  (02-21-2008)
Network Connections to the Database

  1. When a database connection is requested via the network to a database server, the client shall provide an individual account name and authentication credentials to access the database. The database account name and any password transmission from a client to a database server over a network shall be protected in accordance with IRM 10.8.1.

    1. The SecSpec shall ensure that the transmission of a database account name and password from a client to a database server over a network is protected in accordance with IRM 10.8.1

10.8.4.5.4.3  (02-21-2008)
Remote Administrative Database Access

  1. Remote connections to the database by administrative users to perform administrative functions including database account password resets and account management shall be encrypted. Without encryption, such activity performed during these connections could provide information useful to gain unauthorized access to the database.

    1. The DBA shall ensure that DBMS software features to encrypt remote administrative connections to the database are utilized.

10.8.4.5.4.4  (02-21-2008)
Open Database Connectivity (ODBC)

  1. ODBC, an application programming interface (API), provides another method besides native database methods to connect to a database and issue standard SQL commands. Many popular COTS applications provide connectivity to databases using ODBC drivers. These applications may be easily configured to access the database by a savvy user who can provide authentication information directly to the database. These types of connections emphasize the importance of defining database object access authorizations within the database itself and not solely within the application. ODBC tracing, a function used for debugging applications and connections, shall be disabled or tightly controlled. This will prevent sensitive data from being stored in trace files on disk during debugging activities. Where its use is not justified, the ODBC tracing executable shall be deleted from the system to ensure the function is unavailable. The removal of the executable may require periodic review as some upgrades or other application installations may re-install it. User account privileges defined at the DBMS level are the only privileges guaranteed in effect via ODBC connections. Database account passwords shall not be stored in unencrypted format within ODBC connection definitions or data set names (DSN).

    1. The SecSpec shall ensure that unencrypted passwords are not stored in ODBC connection definitions.

    2. The DBA shall ensure that when not in use the ODBC tracing executable is deleted from the system to ensure the function is unavailable.

  2. Wireless encryption key sizes shall be at least 128 bits in strength as defined by NIST SP 800-57, Recommendation for Key Management.

  3. Encryption being used shall be based on the expected security life of the data being protected. See NIST 800-57, for specific guidance on encryption algorithm selection and key length.

  4. The databases and database information stored or transmitted through a wireless network or device must be assessed to determine the sensitivity of the information and determine the necessary security controls.

  5. Wireless laptops shall encrypt sensitive database files and/or directories in accordance with IRM 10.8.26, Enterprise Laptop Security Strategy.

10.8.4.5.4.5  (02-21-2008)
Java Database Connectivity (JDBC)

  1. JDBC, another application programming interface (API), provides a method for connection to a database from a Java application. JDBC drivers may connect to a database by bridging to ODBC drivers or by using the database native SQL API such as Oracle’s Net (Net8) or Microsoft’s DB library. JDBC connection information, specifically database account passwords, shall not be stored in unencrypted format.

    1. The SecSpec shall ensure that JDBC connection data is not stored in unencrypted format.

10.8.4.5.4.6  (02-21-2008)
Web Server or Middle-Tier Connections to Databases

  1. The availability requirements for the application served by the database and the sensitivity of the data being served determine the appropriate network architecture for web or middle-tier connections to DBMSs. Systems requiring greater assurance for availability should have the DBMS located on a host server separate from the serving web or middle-tier server. This helps limit any security events to the compromised system. Encryption requirements for data transmitted between these systems are dependent on the sensitivity of the data being transmitted, the sensitivity level assigned to the network being traversed, and any differences in need-to-know between the data and the users on the network. Login credentials to the DBMS and web/middle-tier servers shall always be encrypted. Connections to the database shall be protected per IRM 10.8.1.

  2. Connection pooling is a technique for improving the response time of database applications, which is accomplished by establishing a group or "pool" of databases connections which are then shared by applications on an application server. Connection pooling between web or middle-tier servers and databases that support individual identification and authentication of database users shall be used. Individual identification and authentication shall be complied when used to enter an IRS database. Oracle databases support this by means of the Oracle Call Interface (OCI). IBM DB2 databases support connection pooling through JDBC, and Microsoft SQL Server supports connection pooling through ODBC.

10.8.4.5.4.7  (02-21-2008)
Database Session Inactivity Time Out

  1. Inactive database sessions are typically construed as an indication of unattended interactive account connections. While workstation and OS policy already require terminal lock requirements to protect unattended workstations from unauthorized access, an idle database session still uses database and host system resources and may lead to denial of service or session hijacking. Database session inactivity time outs shall be set to a system-wide (in this case, a database-wide) inactivity time out of 15 minutes. Databases requiring user session inactivity timeouts greater than 15 minutes shall be justified and documented in deviation requests.

    1. The application developer shall justify and approve database session inactivity timeouts for specific accounts that require a limit in excess of 15 minutes.

    2. The DBA shall set a default database session inactivity time out of 15 minutes or less unless a system owner-approved letter of justification to exceed this limit is available.

10.8.4.5.4.8  (02-21-2008)
Database Replication

  1. A distinct database account and password for the replication administrator and replication system database accounts shall be used to secure replication procedures and facilities (e.g., disk space). Replication account passwords shall be protected when transmitted over a network. Access to replication procedures and facilities shall be restricted to authorized DBAs and designated replication accounts.

  2. Replication data may be stored temporarily in specific OS locations for retrieval by database replication partners. This data must be securely stored and access to it restricted to the DBA and authorized replication software components. This protection is controlled by OS file and directory permissions as well as database security controls.

    1. The SA shall provide the DBA with appropriate read/write access to OS directories used for replication purposes.

    2. The DBA shall ensure that a distinct database account and password is used to secure the replication procedures and facilities.

    3. The DBA shall ensure that access to replication procedures and facilities is restricted to authorized DBAs and designated replication database accounts.

10.8.4.5.4.9  (02-21-2008)
Database Links

  1. Databases may be configured to share data across remote database systems. Such linked databases may be part of federated or distributed database architectures. Authentication between linked databases may rely upon the credentials of the requesting database session or upon a statically defined username and password. Generally, it is best to use a current user’s network-based security credentials provided by means of a directory service to authenticate to the remote system, as this is the only way to maintain a clear auditable identity across all systems. When distributed databases are required to share or transmit data through database links via network connections, the database initiating the link shall use the credentials of the current database session to connect to the remote database.

  2. Database link access shall be restricted to authorized users when possible. Applications shall not create or use public database links (with the exception of database links required for replication), unless justified and documented in a deviation request. It is possible to create a private database link and establish a public synonym to the database link. This protects the details about the database link, while providing the same capabilities as a public link.

  3. To protect sensitive production database data, database links shall not be defined between production and development databases. This restriction helps to prevent sensitive data from being accessed or downloaded by developers or other unauthorized personnel on a remote database.

    1. The DBA shall ensure that database links use the credentials of the current database session to authenticate to the remote database system except as required by replication configurations.

    2. The DBA shall ensure that PUBLIC database links (i.e., links accessible by all database users) are not used by applications unless justified and documented in approved ELC documentation, with the exception of replication database links required for system availability purposes.

    3. The DBA shall ensure that no database links are defined between production and development databases.