02-Oracle测评命令

Oracle数据库三级等级保护现场核查命令脚本(统一编号版)

适用范围:Oracle 11g/12c/19c

基础信息

show user;
select * from v$version;
select * from product_component_version;
select instance_name, instance_number from v$instance;
select name, log_mode from v$database;
  • 备注:用于确认数据库版本、实例状态、归档模式和当前连接身份。
  • 预期证据:版本截图、实例信息截图、数据库状态截图。
示例输出(节选)
SQL> show user
USER is "SYS"
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SQL> select instance_name, instance_number from v$instance;

INSTANCE_NAME     INSTANCE_NUMBER
----------------  ---------------
orcl                          1

SQL> select name, log_mode from v$database;

NAME      LOG_MODE
--------- ------------
ORCL      ARCHIVELOG

身份鉴别

A. 身份标识唯一、口令复杂度、定期更换

select username, user_id, profile, account_status from dba_users order by username;
select profile, resource_name, limit from dba_profiles

where resource_name in (‘PASSWORD_VERIFY_FUNCTION’,‘PASSWORD_LIFE_TIME’,‘PASSWORD_REUSE_TIME’,‘PASSWORD_REUSE_MAX’,‘PASSWORD_GRACE_TIME’)

order by profile, resource_name;

  • 备注:重点看用户唯一性、口令复杂度函数、口令有效期和重用限制。
  • 预期证据dba_users 查询截图、dba_profiles 口令策略截图、账号管理制度。
示例输出(节选)
SQL> select username, account_status, profile from dba_users order by username;

USERNAME          ACCOUNT_STATUS     PROFILE
----------------  -----------------  ----------
APPUSER           OPEN               DEFAULT
AUDIT_ADMIN       OPEN               C__AUDIT
SYS               OPEN               DEFAULT
SYSTEM            OPEN               DEFAULT

SQL> select profile, resource_name, limit from dba_profiles
  2  where resource_name in ('PASSWORD_VERIFY_FUNCTION','PASSWORD_LIFE_TIME');

PROFILE    RESOURCE_NAME                LIMIT
---------- ---------------------------- --------
DEFAULT    PASSWORD_LIFE_TIME           90
DEFAULT    PASSWORD_VERIFY_FUNCTION     VERIFY_FUNCTION_11G

B. 登录失败处理、会话超时退出

select profile, resource_name, limit from dba_profiles

where resource_name in (‘FAILED_LOGIN_ATTEMPTS’, ‘PASSWORD_LOCK_TIME’, ‘IDLE_TIME’)

order by profile, resource_name;

  • 备注:重点看失败登录限制、锁定时间、空闲会话超时退出设置。
  • 预期证据:相关 profile 参数截图、会话管理制度、访谈记录。
示例输出(节选)
SQL> select profile, resource_name, limit from dba_profiles
  2  where resource_name in ('FAILED_LOGIN_ATTEMPTS','PASSWORD_LOCK_TIME','IDLE_TIME')
  3  order by profile, resource_name;

PROFILE    RESOURCE_NAME                 LIMIT
---------- ----------------------------- ----------
DEFAULT    FAILED_LOGIN_ATTEMPTS         5
DEFAULT    IDLE_TIME                     30
DEFAULT    PASSWORD_LOCK_TIME            1

C. 远程管理传输保密

show parameter sqlnet.authentication_services
show parameter remote_login_passwordfile
show parameter ssl
  • 备注:应结合 sqlnet.ora、监听配置、证书与远程管理路径判断是否采用加密传输。
  • 预期证据:参数截图、sqlnet.ora 配置截图、监听与证书配置截图、堡垒机/远程管理链路说明。
示例输出(节选)
SQL> show parameter sqlnet.authentication_services

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sqlnet.authentication_services       string      NONE

SQL> show parameter ssl

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
ssl_cipher_suites                    string      ...
ssl_version                          string      TLSv1.2

D. 组合鉴别

  • 备注:Oracle 原生不一定直接体现双因素,需结合堡垒机、统一认证体系、MFA 平台综合判定。

  • 预期证据:双因素界面截图、统一认证策略截图、访谈记录。

访问控制

A. 账户、角色、权限分配

select username, profile, account_status from dba_users order by username;
select * from dba_sys_privs where grantee in (select username from dba_users where account_status='OPEN');
select * from dba_role_privs;
  • 备注:重点核查账户状态、角色划分和高权限授权情况。
  • 预期证据:账户截图、系统权限截图、角色授权截图、岗位职责分工说明。
示例输出(节选)
SQL> select grantee, privilege from dba_sys_privs where grantee='APPUSER';

GRANTEE                         PRIVILEGE
------------------------------- ----------------------------------------
APPUSER                         CREATE SESSION
APPUSER                         SELECT ANY TABLE

SQL> select grantee, granted_role from dba_role_privs where grantee='APPUSER';

GRANTEE              GRANTED_ROLE
-------------------- --------------------
APPUSER              CONNECT
APPUSER              RESOURCE

B. 默认账户、多余账户、来源与高权限账户

select * from v$pwfile_users;
  • 备注:重点看 SYSDBA、SYSOPER、DBA 等高权限账户是否最小化,是否存在共享管理账户。
  • 预期证据:高权限账户截图、管理员台账、账号审批记录。
示例输出(节选)
SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS SYSBA SYNDG SYSRAC
------------------------------ ----- ----- ----- ----- ----- ------
SYS                            TRUE  TRUE  FALSE FALSE FALSE FALSE

C. 细粒度授权与最小权限

select * from dba_tab_privs;
select * from dba_col_privs;
  • 备注:重点抽查重要对象、敏感字段权限,确认是否符合最小权限原则。
  • 预期证据:对象权限截图、字段权限截图、抽查记录。
示例输出(节选)
SQL> select grantee, owner, table_name, privilege from dba_tab_privs where rownum <= 4;

GRANTEE   OWNER     TABLE_NAME           PRIVILEGE
--------- --------- -------------------- ---------------
REPORT    APPUSER   T_ORDER              SELECT
REPORT    APPUSER   T_CUSTOMER           SELECT
APPUSER   SYS       DBMS_CRYPTO          EXECUTE

D. 角色继承与特殊角色

select * from dba_role_privs;
  • 备注:重点说明角色继承链和特殊角色的授权范围。
  • 预期证据:角色继承截图、角色设计说明。
示例输出(节选)
SQL> select grantee, granted_role, admin_option from dba_role_privs where grantee='APPUSER';

GRANTEE              GRANTED_ROLE         ADM
-------------------- -------------------- ---
APPUSER              CONNECT              NO
APPUSER              RESOURCE             NO

安全审计

A. 审计功能是否开启

show parameter audit_trail
show parameter audit_sys_operations
  • 备注:重点看数据库审计是否启用,系统级操作是否纳入审计。
  • 预期证据:参数截图、审计启用截图、制度要求。
示例输出(节选)
SQL> show parameter audit_trail

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      DB

SQL> show parameter audit_sys_operations

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_sys_operations                 boolean     TRUE

B. 审计范围与审计对象

select * from dba_stmt_audit_opts;
select * from dba_priv_audit_opts;
select * from dba_obj_audit_opts where owner in (select username from dba_users where account_status='OPEN');
  • 备注:重点看是否覆盖语句、权限、对象操作等关键事件。
  • 预期证据:审计策略截图、关键操作审计样例截图。
示例输出(节选)
SQL> select * from dba_stmt_audit_opts;

USER_NAME             AUDIT_OPTION          SUCCESS    FAILURE
--------------------- --------------------- ---------- ----------
                      CREATE SESSION        BY ACCESS  BY ACCESS
                      ALTER USER            BY ACCESS  BY ACCESS

SQL> select * from dba_priv_audit_opts where rownum <= 3;

USER_NAME             PRIVILEGE             SUCCESS    FAILURE
--------------------- --------------------- ---------- ----------
                      ALTER ANY TABLE       BY ACCESS  BY ACCESS

C. 审计日志保护与留存

select * from sys.aud$;
  • 备注:需结合操作系统、日志平台和制度,核查审计日志目录权限、留存周期和备份情况。
  • 预期证据:审计记录截图、日志目录权限截图、日志留存制度、备份策略。
示例输出(节选)
SQL> select sessionid, userid, action#, timestamp# from sys.aud$ where rownum <= 3;

 SESSIONID USER_ID   ACTION# TIMESTAMP#
---------- ------- ---------- ---------
   1024561       88        100 24-AUG-26
   1024562       88        100 24-AUG-26
   1024601        6        103 23-AUG-26

D. 审计失效告警

  • 备注:应补查监控、告警、审计员独立管理和审计失败告警机制。

  • 预期证据:告警规则截图、告警消息样例、审计员管理制度。

数据完整性

A. 传输过程完整性

show parameter ssl
  • 备注:结合监听、sqlnet.ora、证书配置判断传输完整性保护是否到位。
  • 预期证据:SSL/TLS 配置截图、链路说明、连接加密截图。
示例输出(节选)
SQL> show parameter ssl

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
ssl_wallet                           string      /opt/app/oracle/wallet
ssl_cipher_suites                    string      ...

B. 存储过程完整性

show parameter encryption
  • 备注:重要配置数据、审计数据和备份数据应有防篡改或一致性保护说明。
  • 预期证据:参数截图、备份校验记录、配置文件权限截图、制度材料。
示例输出(节选)
SQL> show parameter encryption

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
tablespace_encryption                string      ...
encrypt_new_tablespaces              string      CLOUD_ONLY

数据保密性

A. 传输过程保密性

show parameter ssl
  • 备注:应证明远程管理和重要业务传输采用了密码技术保护。
  • 预期证据:SSL/TLS 参数截图、远程管理加密链路说明。
示例输出(节选)
SQL> show parameter ssl

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
ssl_wallet                           string      /opt/app/oracle/wallet

B. 存储过程保密性

select * from v$encrypted_tablespaces;
  • 备注:重点核查 TDE、磁盘加密、应用层加密等静态数据保护措施。
  • 预期证据:加密表空间截图、磁盘加密截图、加密方案说明。
示例输出(节选)
SQL> select name, encrypted from v$encrypted_tablespaces;

NAME                            ENC
------------------------------- ---
APP_TS                          YES

备份恢复

A. 本地数据备份与恢复

select * from v$archive_dest;
  • 备注:本地备份应结合 RMAN 计划、备份结果和恢复演练记录综合判断。
  • 预期证据:备份任务截图、备份结果、恢复演练报告。
示例输出(节选)
SQL> select dest_id, status, destination from v$archive_dest where status='VALID';

   DEST_ID STATUS    DESTINATION
---------- --------- ------------------------------
         1 VALID     /opt/app/oracle/arch

B. 异地实时备份

select * from v$archive_gap;
select * from v$parameter where name like 'log_archive%';
  • 备注:应说明是否通过 Data Guard、日志归档或其他方式实现异地实时备份。
  • 预期证据:归档参数截图、异地备份架构图、备机状态截图。
示例输出(节选)
SQL> select * from v$archive_gap;

no rows selected

SQL> select name, value from v$parameter where name like 'log_archive_dest_1';

NAME                              VALUE
--------------------------------- -------------------------------------------------
log_archive_dest_1                LOCATION=/opt/app/oracle/arch VALID_FOR=(ALL_LOGFILES)

C. 热冗余与高可用

  • 备注:结合 RMAN、Data Guard、RAC、双机热备和演练记录判定。

  • 预期证据:高可用架构图、切换截图、演练记录。

剩余信息保护

A. 鉴别信息所在存储空间释放前清除

  • 备注:通常需结合介质清除、存储加密、销毁记录和平台策略综合判定。

  • 预期证据:介质清除制度、销毁记录、存储平台策略说明。

B. 敏感数据所在存储空间释放前清除

  • 备注:结合存储介质管理、销毁和加密策略判定。

  • 预期证据:磁盘加密截图、销毁记录、设备回收制度。

个人信息保护

A. 个人信息访问控制与审计

  • 备注:抽查敏感字段权限、访问审计、导出控制情况。

  • 预期证据:权限截图、审计样例截图、导出控制说明。

B. 个人信息存储与传输保护

  • 备注:抽查加密、脱敏、专门保护和分类分级措施。

  • 预期证据:脱敏策略截图、加密设计说明、分类分级文件。

入侵防范

A. 访问来源限制/白名单

  • 备注:结合数据库监听/配置与防火墙策略,确认仅允许授权来源访问。

  • 预期证据:数据库访问控制或监听配置截图、主机/网络防火墙策略、堡垒机访问策略截图。

B. 异常访问与爆破防护

  • 备注:结合登录失败处理、连接限制、WAF/堡垒机/防暴力破解策略,确认具备阻断或告警能力。

  • 预期证据:失败登录限制参数截图、策略截图、告警样例、访谈记录。

C. 漏洞扫描与补丁管理

  • 备注:确认数据库漏洞扫描周期、补丁评估与修复流程。

  • 预期证据:漏洞扫描报告、补丁更新记录、变更单。

D. 恶意代码/工具防护

  • 备注:确认主机侧安全防护软件或EDR对数据库进程的防护与告警能力。

  • 预期证据:安全软件截图、策略配置截图、告警样例。

时间同步与日志一致性

  • 备注:确认数据库服务器时间同步(NTP/chrony),保证审计日志时间一致、可溯源。

  • 预期证据:NTP/chrony 配置截图、时间同步状态截图、运维制度或巡检记录。

主流版本差异说明

Oracle主流版本核查差异说明

版本识别

select * from v$version;
select * from product_component_version;

主流版本分档

  1. Oracle 11gR2

  2. Oracle 12c(12.1/12.2)

  3. Oracle 19c

重点差异

A. 架构差异

  1. 11g 以传统单库思路为主

  2. 12c/19c 常涉及 Multitenant(CDB/PDB)

推荐命令:

show con_name;
select name, cdb from v$database;

兼容提示:

  1. 11g 现场若执行 CDB/PDB 相关命令,可能无结果或报错。

  2. 12c/19c 测评要注意是否需要分别在 CDB 与 PDB 维度取证。

B. 身份鉴别

推荐命令:

select username, profile, account_status from dba_users;
select profile, resource_name, limit from dba_profiles

where resource_name in (‘PASSWORD_VERIFY_FUNCTION’,‘PASSWORD_LIFE_TIME’,‘FAILED_LOGIN_ATTEMPTS’,‘PASSWORD_LOCK_TIME’,‘IDLE_TIME’);

版本提示:

  1. 11g/12c/19c 这类口令策略命令整体兼容性较好。

C. 访问控制

推荐命令:

select * from dba_sys_privs;
select * from dba_role_privs;
select * from dba_tab_privs;
select * from dba_col_privs;
select * from v$pwfile_users;

版本提示:

  1. 12c/19c 需额外注意公共用户、本地用户、多租户角色授权边界。

D. 安全审计

推荐命令:

show parameter audit_trail
show parameter audit_sys_operations
select * from dba_stmt_audit_opts;
select * from dba_priv_audit_opts;
select * from dba_obj_audit_opts;

版本提示:

  1. 11g/12c/19c 均可用传统审计思路取证。

  2. 19c 现场常需额外关注统一审计或更细粒度审计部署情况。

E. 备份恢复与高可用

推荐命令:

select * from v$archive_dest;
select * from v$archive_gap;
select * from v$parameter where name like 'log_archive%';

版本提示:

  1. 11g 现场常见 Data Guard、双机。

  2. 12c/19c 现场可能叠加多租户、RAC、Data Guard 共同存在。

现场编制建议

  1. 11g 文档重点写传统实例核查逻辑。

  2. 12c 文档重点补充 CDB/PDB 区分。

  3. 19c 文档重点补充多租户、统一审计、高可用组合架构。

取证注意事项

  1. 先判断是否 CDB/PDB,再决定是否分别采集容器级证据。

  2. Oracle 很多控制点不能只靠 SQL,需要 sqlnet.ora、监听配置、OS 日志和堡垒机共同取证。