02-Oracle测评命令
Categories:
5 分钟阅读
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;
主流版本分档
Oracle 11gR2
Oracle 12c(12.1/12.2)
Oracle 19c
重点差异
A. 架构差异
11g 以传统单库思路为主
12c/19c 常涉及 Multitenant(CDB/PDB)
推荐命令:
show con_name;
select name, cdb from v$database;
兼容提示:
11g 现场若执行 CDB/PDB 相关命令,可能无结果或报错。
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’);
版本提示:
- 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;
版本提示:
- 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;
版本提示:
11g/12c/19c 均可用传统审计思路取证。
19c 现场常需额外关注统一审计或更细粒度审计部署情况。
E. 备份恢复与高可用
推荐命令:
select * from v$archive_dest;
select * from v$archive_gap;
select * from v$parameter where name like 'log_archive%';
版本提示:
11g 现场常见 Data Guard、双机。
12c/19c 现场可能叠加多租户、RAC、Data Guard 共同存在。
现场编制建议
11g 文档重点写传统实例核查逻辑。
12c 文档重点补充 CDB/PDB 区分。
19c 文档重点补充多租户、统一审计、高可用组合架构。
取证注意事项
先判断是否 CDB/PDB,再决定是否分别采集容器级证据。
Oracle 很多控制点不能只靠 SQL,需要
sqlnet.ora、监听配置、OS 日志和堡垒机共同取证。