To ensure the security of an Oracle database, it's crucial to perform various checks and validations. Below is an outline of a comprehensive checklist that generates an HTML report containing essential security information about the database. This checklist covers aspects like database details, patch status, parameter settings, redo log configurations, user grants, auditing policies, schema accounts, database links, and special privileges.
Checklist Overview

-
Database Details:
- Database name
- Hostname
- Database role (Primary or Standby)
- RAC (Real Application Clusters) or Single Instance
-
Latest Patch Check:
- Information about the latest applied patch
-
Parameter Checks:
-
Various critical parameters and their expected values:
audit_sys_operationsshould beTRUEglobal_namesshould beTRUE07_dictionary_accessibilityshould beFALSEos_rolesshould beFALSEremote_login_passwordfileshould beEXCLUSIVEsec_max_failed_login_attemptsshould be3sec_protocol_error_further_actionshould beDELAYtrace_files_publicshould beFALSEremote_os_authentshould beFALSEsql92_securityshould beTRUE
-
-
Instance Name and Redo Log Files:
- Ensure the instance name/SID does not contain the Oracle version
-
Verify the redo log groups and control files:
- Redo log groups should have at least two members.
- Members should be in different locations.
-
User Grants and Roles:
- Direct grants to users
- Roles assigned to users
-
Unified Auditing Policies:
-
Check if required audit options are enabled:
CREATE USER,DROP USER,ALTER USERCREATE ROLE,DROP ROLE,ALTER ROLEDROP PROFILE,CREATE PROFILE,ALTER PROFILECREATE DATABASE LINK,DROP DATABASE LINK,ALTER DATABASE LINKCREATE SYNONYM,DROP SYNONYM,ALTER SYNONYMSELECT ANY DICTIONARYCREATE INDEX,ALTER INDEX,DROP INDEXCREATE DIRECTORY,ALTER DIRECTORY,DROP DIRECTORYALTER SYSTEM,AUDIT SYSTEMCREATE PROCEDURE,ALTER PROCEDURE,DROP PROCEDURE
-
-
Schema Accounts and Privileges:
- Default schemas with no lock
-
Database Links and Public Links:
- Database links
- Public links
-
Privileges with ADMIN OPTION:
- Privileges granted with ADMIN OPTION
-
Special Privileges:
- Privileges like ANY, ALTER SYSTEM, etc.
-
- you can find the sql from my telegram channel:
- https://t.me/vahiddb_dba/27