# 10、GaussDB（华为高斯数据库）测评

> 华为 GaussDB 三级等保现场测评：集中式与分布式形态识别、enableSeparationOfDuty 三权分立、统一审计策略、PBKDF2 认证与传输加密、gs_guc/gsql 核查命令、判定标准与证据留存要求。

---

LLMS index: [llms.txt](/wikis/llms.txt)

---

> 定位：GaussDB（华为高斯数据库）等保测评核查方法与判定口径，含 FusionSphere 内置组件库现场实测数据。
> 配套测评：[09、GaussDB测评命令单](../数据库测评命令/09-gaussdb/)（分布式/Oracle 兼容形态命令）；同为 PostgreSQL 技术路线的国产库可参照 [07、KingbaseES人大金仓数据库测评](../07kingbasees人大金仓数据库测评/)；通用命令形态见 [数据库测评命令](../数据库测评命令/)。
> 配套加固：[17、加固方案总纲](../../../reinforce/其他系统或设备/17网络设备安全设备服务器数据库和应用系统的加固方案/)；高风险口径：[22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
> 适用版本：GaussDB 集中式 V2.0-2.x/V2.0-3.x、分布式 V1.0/V2.0（openGauss 内核，`gs_*`/`pg_*` 体系）为主；另附 FusionSphere 云平台内置 GaussDB 组件库（OS 用户 `gaussdba`，`cps` 运维命令）的实测口径，两者**参数与运维入口不同，判定前必须先识别形态**。
>
> 使用说明：
>
> - 本文所有命令均为**只读取证**命令，不修改配置、不重启服务、不执行清除类操作；确需变更由被测单位运维方在授权下实施。
> - 命令回显本身即证据，须连同命令行一起截图；示例中的地址、账户、路径均为演示值，现场须替换为真实取证结果，并对个人信息与内网管理地址脱敏后再入报告。
> - 命令不存在或输出与示例差异较大时，先确认产品版本与部署形态（单机/集群/容器/云托管），再换用等效命令或转入配置文件、管理控制台取证，**不得据命令缺失直接判不符合**。
> - 文中「默认」「一般」等表述均为**初判倾向**，须经上机核查 + 访谈 + 配置/制度核对三方印证后定论，并在报告中写明取证来源。
>
> 不适用标识说明：
>
> - 使用 `【不适用】` 明确标记现场可判定为不适用的控制点，并写明判定依据。
> - 依据 GB/T 28448-2019「按测评对象实际承载功能与数据处理范围判定」原则：控制能力由上层应用、统一认证平台、前置代理、堡垒机、宿主操作系统或云托管平台承载时，应注明测评单元边界后判定不适用或转由上位组件核查，不得机械按缺失判不符合。
> - 产品版本确实不提供该能力（如社区版无审计插件）时，须核查替代措施并按替代措施的实际效果定档，不得直接判不适用。

## 一、形态识别与核查入口

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">形态识别是首要核查项</div>


「GaussDB」在测评对象清单里可能指向三款内核与运维方式都不同的产品，**用错形态的核查命令会直接得到错误结论**：

| 形态 | 典型识别特征 | 核查入口 |
| --- | --- | --- |
| **集中式/分布式（openGauss 内核）** | `select version();` 返回 `GaussDB Kernel ...`；OS 用户常为 `omm`/`Ruby`；工具为 `gs_guc`/`gs_dump`/`gs_om` | `gsql` 直连 + `gs_*` 工具 |
| **分布式 Oracle 兼容（A 模式）** | 系统表为 `adm_profiles`、`db_users`、`dv_parameters` | 见 [09 命令单](../数据库测评命令/09-gaussdb/) |
| **FusionSphere 内置组件库（本文实测来源）** | 部署在 `/opt/fusionplatform/data/gaussdb_data/data`，OS 用户 `gaussdba`，运维走 `cps template-*` 命令，审计用 `pg_query_audit` | 需先经云平台运维接口，无法直接改参 |

现场第一步记录 `select version();` 全串与安装路径，再按对应形态取命令。
</div>


### 1.1 版本与部署形态识别

```bash
# 集中式/分布式（openGauss 内核）
su - omm                                  # 或现场实际安装用户（如 Ruby、gaussdba）
gsql -d postgres -p 8000 -c "select version();"
gs_om -t status --detail                  # 实例角色（主/备/级联备）与状态
```

```bash
# FusionSphere 内置组件库（原文现场）
su - root
cps template-instance-list --service gaussdb gaussdb   # 列出部署节点，status=active 为主节点
su - gaussdba
gaussdb --version                                      # 内核版本
gsql -d postgres -U gaussdba                           # 连接数据库
```

![GaussDB 版本查询界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/2fa309f3de39b45832d0114eb445239d_MD5.jpg)

![GaussDB 部署节点查询界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/f3a91f1b549a4b78ac76521c2aef3bb1_MD5.jpg)

### 1.2 环境变量与数据目录

```bash
# 集中式/分布式：数据目录由环境变量 GAUSSDATA 或 $PGDATA 指向
echo $GAUSSDATA
ls -l $GAUSSDATA/postgresql.conf $GAUSSDATA/pg_hba.conf
ls -ld $GAUSSDATA                 # data 目录权限应为 0700（仅数据库用户可访问）

# FusionSphere 内置组件库（原文路径，按现场实际调整）
ls -l /opt/fusionplatform/data/gaussdb_data/data/postgresql.conf
ls -l /opt/fusionplatform/data/gaussdb_data/data/pg_hba.conf
ls -l /var/log/fusionsphere/component/gaussdb       # 审计日志目录
```

## 二、测评查询命令速查

### 2.1 身份鉴别与口令策略（openGauss 内核口径）

> **对应控制点**：GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)
>
> **判定要点**：账户唯一且非默认口令、鉴别信息复杂度与有效期均已配置、远程管理走加密通道、失败处理与会话超时已启用 → 符合；仅满足其中一部分（如有口令但无复杂度、无失败锁定、无空闲超时）→ 部分符合；管理入口无鉴别、存在空口令或沿用出厂口令 → 不符合（高风险）。
>
> **取证要求**：账户清单截图、口令策略参数截图、加密通道配置截图、失败锁定与会话超时参数截图、弱口令实测记录；由统一认证平台承载时补平台侧配置与对接截图。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


数据库管理端口（Oracle 1521、SQL Server 1433、MySQL/MariaDB 3306、PostgreSQL/KingbaseES/UXDB 5432、MongoDB 27017、达梦 5236、DB2 50000、Redis 6379）对全网开放且存在空口令、默认口令或弱口令账户时，按《高风险判定指引》可直接判高风险；远程管理未启用传输加密、抓包可还原明文口令时同样按高风险处理。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


```sql
-- 口令安全策略：复杂度、有效期、重用、口令存储算法
show password_policy;             -- 1=启用复杂度校验（默认），0=关闭
show password_min_length;         -- 最小长度
show password_min_uppercase;      -- 大写字母最少个数
show password_min_lowercase;      -- 小写字母最少个数
show password_min_digital;        -- 数字最少个数
show password_min_special;        -- 特殊字符最少个数
show password_reuse_time;         -- 不可重用天数，默认 60
show password_reuse_max;          -- 不可重用次数，默认 0（不检查）
show password_effect_time;        -- 口令有效期，默认 90 天
show password_notify_time;        -- 到期前提醒天数，默认 7
show password_encryption_type;    -- 0=md5 / 1=sha256+md5 / 2=sha256（默认）/ 3=sm3

-- 登录失败处理与会话超时
show failed_login_attempts;       -- 允许连续失败次数
show password_lock_time;          -- 锁定时长
show session_timeout;             -- 空闲超时（秒，0~86400，0 表示关闭）
```

```bash
# 官方推荐的参数核查/设置方式（集群级）
gs_guc reload -N all -I all -c "password_effect_time = 90"
gs_guc reload -N all -I all -c "session_timeout = 1800"
```

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">password_encryption_type = 0/1 的判据提示</div>


`password_encryption_type` 为 0（MD5）或 1（SHA256+MD5）时含 MD5 环节，属已被攻破的弱哈希。数据保密性 b) 宜按「部分符合 + 整改建议（置 2 或 3 后重设全部口令）」表述，并结合 [22 号高风险对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)判断是否触发高风险。
</div>


<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">failed_login_attempts 与 password_lock_time 必须成对设置</div>


官方口径明确：**锁定与解锁功能仅在 `failed_login_attempts` 与 `password_lock_time` 均有取值时才生效**。只配其中一个，现场怎么试都不会锁定，容易被误判为「产品不具备登录失败处理功能」。
</div>


### 2.2 账户与权限

> **对应控制点**：GB/T 22239-2019 8.1.4.2 访问控制 a)~g)
>
> **判定要点**：账户与权限一一对应、默认账户已处置、无多余与共享账户、管理权限已分离、有书面授权策略、授权粒度达到用户级与表级 → 符合；有权限划分但存在越权高权限账户或粒度仅到角色级 → 部分符合；统一使用超级账户或应用账户持最高权限 → 不符合。
>
> **取证要求**：账户与角色对照表、权限清单查询输出、默认账户处置记录、访问控制策略文件与授权审批记录、粒度核查（对象级/列级/行级）输出。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


应用账户或运维账户直接持有最高权限（`DBA`/`sysadmin`/`superuser`/`SYSDBA`/`root`），或系统、安全、审计三类管理职责未分离由同一账户兼任，属高风险线索；默认示例账户（`SCOTT`、`HR`、`test` 等）处于可用状态且沿用出厂口令时按高风险处理。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


```sql
select usename, usesysid, usesuper, usecreatedb, valuntil from pg_user;   -- 账户清单与口令有效期
select rolname, rolsuper, rolcreatedb, rolcreaterole, rolauditadmin, rolsystemadmin
  from pg_authid order by rolname;                                        -- 角色与管理员属性
\du                                                                       -- 角色速览
select rolname from pg_authid where oid = 10;                             -- 初始用户
show enableSeparationOfDuty;                                              -- 三权分立开关，默认 off

-- 指定用户被授予的权限（用户名需大写，原文实测）
select * from information_schema.routine_privileges where grantee = 'GAUSSDBA';
```

![GaussDB 用户权限查询界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/ff8b4016eb7d339e38e64200a3468bde_MD5.jpg)

![GaussDB 角色权限速览界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/385cd31a50e9a695d82e9de6fa18d33e_MD5.jpg)

### 2.3 安全审计

> **对应控制点**：GB/T 22239-2019 8.1.4.3 安全审计 a)~d)
>
> **判定要点**：审计功能已启用且实际产生记录、记录含时间/用户/事件类型/结果四要素、覆盖特权账户、审计数据受保护并留存 ≥6 个月、非审计管理员无法变更或清除 → 符合；开关已开但无审计策略、记录要素不全、仅本地留存或留存不足 → 部分符合；审计未启用且无第三方审计措施 → 不符合（高风险）。
>
> **取证要求**：审计开关与策略配置截图、审计记录抽样（脱敏）、审计存放路径与权限核查结果、清理与转存任务配置、最早记录时间清单、第三方审计系统截图。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


审计开关未启用且无第三方数据库审计系统，或审计记录留存明显不足 6 个月，属高风险；非审计管理员账户可修改审计配置、删除或清空审计数据时，审计的不可抵赖性失效，同样按高风险处理。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


```sql
show audit_enabled;                       -- 审计总开关，默认 on（支持动态加载，无需重启）
show audit_login_logout;                  -- 登录/注销审计，默认 7（开启）
show audit_user_locked;                   -- 用户锁定/解锁审计，默认 1
show audit_grant_revoke;                  -- 授权与回收审计，默认 1
show audit_system_object;                 -- 对象 DDL 审计，默认 67121159
show audit_dml_state;                     -- DML 审计，默认 0（关闭）
show audit_dml_state_select;              -- SELECT 审计，默认 0（关闭）
show audit_user_violation;                -- 越权访问审计，默认 0（关闭）
show full_audit_users;                    -- 全量审计用户清单，默认为空
show no_audit_client;                     -- 免审计客户端黑名单，默认为空
```

```sql
-- 传统审计查询（需审计管理员权限）
select * from pg_query_audit('2026-08-30 08:00:00','2026-08-30 18:00:00');
-- 统一审计查询（分布式形态）
select * from gs_query_unified_audit(sysdate-1, sysdate+1) where type = 'audit_policy';
```

![GaussDB 审计总开关查询界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/1312441c1a955fd1fcc8b3f394efa725_MD5.jpg)

![GaussDB 审计日志查询输出界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/c8985b72c800aa7c54ece258b2aa9f10_MD5.jpg)

```bash
# 审计目录与文件权限（原文路径为 FusionSphere 内置组件库，openGauss 形态按 $GAUSSDATA 下的审计目录核查）
ls -l /var/log/fusionsphere/component/gaussdb
```

![GaussDB 审计日志文件权限界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/517824212db069934d310b28c6bf4a03_MD5.jpg)

### 2.4 传输加密与访问来源

> **对应控制点**：GB/T 22239-2019 8.1.4.7 数据完整性 a)、8.1.4.8 数据保密性 a)

```sql
show ssl;                 -- 是否启用 SSL
show ssl_ciphers;         -- 加密套件
show hba_file;            -- 直接给出 pg_hba.conf 绝对路径
```

```bash
grep -vE "^\s*#|^\s*$" $(gsql -d postgres -tAc "show hba_file;")
# hostssl  = 强制 SSL；host = 不限制；hostnossl = 强制不加密
```

![GaussDB 传输协议核查界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/5c767c8ed29b6cdcc4796c05224d118e_MD5.jpg)

![GaussDB SSL 加密套件核查界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/4344d7f468ec4f60194ddedd43a78e6a_MD5.jpg)

![GaussDB pg_hba.conf 来源限制界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/3ab9d08ae2b5476c7d1874105db41053_MD5.jpg)

### 2.5 备份与高可用

> **对应控制点**：GB/T 22239-2019 8.1.4.9 数据备份恢复 a)~c)
>
> **判定要点**：有本地备份任务与近期备份产物且有恢复演练记录、有异地实时或定时备份链路、具备热冗余（集群/主备）并可演示切换 → 符合；有备份产物但仅做过校验从未真实恢复、异地周期过长、有冗余架构无切换演练 → 部分符合；无备份措施或单实例且无异地副本 → 不符合。
>
> **取证要求**：备份脚本或作业配置截图、备份产物清单（含时间戳）、恢复演练记录、异地备份拓扑与同步状态输出、集群或主备状态输出、切换演练记录。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


无任何本地备份措施，或备份与数据库同机同磁盘存放（主机故障即备份同时失效），属高风险；仅有备份产物但从未做过恢复演练时按部分符合并记为高风险线索。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


```bash
# 集中式/分布式（openGauss 内核）
gs_dump    -U <user> -d <dbname> -Fc -f /backup/<dbname>_$(date +%F).dump   # 归档格式
gs_dumpall -U <user> -f /backup/all_$(date +%F).sql                          # 全库
gs_restore -U <user> -d <dbname> /backup/<dbname>_2026-08-30.dump
gs_basebackup -D /backup/base_$(date +%F) -p 8000                            # 物理全备（集中式）
gs_om -t status --detail                                                     # 主备状态
```

```bash
# FusionSphere 内置组件库（原文现场）
backup policy-get                        # 查看备份策略
backup package-get --service gaussdb      # 查看备份结果
```

![GaussDB 备份策略与结果界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/cf9877bc7f38b135b76d87c9c6acce52_MD5.jpg)

![GaussDB 主备部署状态界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/78588368fb875733ef603eacd7e8f88a_MD5.jpg)

## 三、等保测评

### 身份鉴别

> **对应控制点**：GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)
>
> **判定要点**：账户唯一且非默认口令、鉴别信息复杂度与有效期均已配置、远程管理走加密通道、失败处理与会话超时已启用 → 符合；仅满足其中一部分（如有口令但无复杂度、无失败锁定、无空闲超时）→ 部分符合；管理入口无鉴别、存在空口令或沿用出厂口令 → 不符合（高风险）。
>
> **取证要求**：账户清单截图、口令策略参数截图、加密通道配置截图、失败锁定与会话超时参数截图、弱口令实测记录；由统一认证平台承载时补平台侧配置与对接截图。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


数据库管理端口（Oracle 1521、SQL Server 1433、MySQL/MariaDB 3306、PostgreSQL/KingbaseES/UXDB 5432、MongoDB 27017、达梦 5236、DB2 50000、Redis 6379）对全网开放且存在空口令、默认口令或弱口令账户时，按《高风险判定指引》可直接判高风险；远程管理未启用传输加密、抓包可还原明文口令时同样按高风险处理。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


#### a) 应对登录的用户进行身份标识和鉴别，身份标识具有唯一性，身份鉴别信息具有复杂度要求并定期更换

**核查方法**

1. 用错误口令连接，确认存在身份鉴别环节（`Invalid username/password,login denied.`）；
2. 核查账户标识唯一性与口令有效期；
3. 尝试改为弱口令，观察是否被拒绝；
4. 核查口令有效期参数与复杂度参数。

```sql
select usename, usesysid, valuntil from pg_user;
show password_policy;
show password_min_length;
show password_effect_time;          -- 默认 90 天
show password_notify_time;          -- 默认 7 天
```

![GaussDB 身份鉴别失败提示界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/e38d3dc86b3a76ca6b50cbe0d1c17649_MD5.jpg)

- 预期现象：口令错误被拒绝；`usesysid` 唯一；弱口令（如 `123456`）被复杂度校验拒绝；`password_effect_time` 有值。

**判定标准**

| 结论 | 条件 |
| --- | --- |
| 符合 | `password_policy=1` 且长度/字符类别参数合理，`password_effect_time` ≤90 天并在 `valuntil` 中体现，`usesysid` 唯一且无空口令账户 |
| 部分符合 | 启用复杂度但未设有效期（或反之）；或有效期 >90 天 |
| 不符合 | `password_policy=0`（仅校验非空）、存在空口令/同名账户，或可免鉴别直接登录 |

> 原文「机机账户口令永不过期，建议保持默认密码」是**厂商运维建议，不能作为等保判定依据**。测评按 22239 条款判定：定期更换要求对管理用户与人工账户成立；机机账户确实无法周期性改密的，应提供「账户用途说明 + 随机长口令 + 变更机制」等补偿材料，多数测评机构仍会判为部分符合。

**证据留存**：错误口令登录提示截图、`pg_user` 输出（含 `usesysid`/`valuntil`）、弱口令被拒截图、口令策略参数截图、口令周期制度文件。

#### b) 应具有登录失败处理功能，应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施

**核查方法**

```sql
show failed_login_attempts;
show password_lock_time;
show session_timeout;
```

![GaussDB 登录失败锁定参数界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/093c7477f2af638b0ffed5019850736f_MD5.jpg)

![GaussDB 会话超时参数界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/856b51247820b39dbc877ae994095f50_MD5.jpg)

- 预期现象：`failed_login_attempts` 与 `password_lock_time` **均有值**（官方：两者需同时设置才生效），现场可复现「连续失败 N 次锁定 M 秒」；`session_timeout` 不为 0，空闲到点自动断开。

**判定标准**

- **符合**：失败次数与锁定时长成对配置且可复现，同时 `session_timeout` 已配置；
- **部分符合**：仅配失败锁定，或仅配会话超时；
- **不符合**：三项均未配置，或 `session_timeout=0`（关闭超时）。

> 原文实测值（FusionSphere 环境）：连续错误 3 次锁定 300 秒、空闲 1800 秒自动断开。该组数值属**该环境的部署配置值**，不是产品通用的默认下限，其他形态现场须按上述命令重新取证。

**证据留存**：三项参数截图、锁定提示截图、空闲超时断开截图、配置文件参数行。

#### c) 当进行远程管理时，应采取必要措施防止鉴别信息在网络传输过程中被窃听

**核查方法**

```sql
show ssl;
show ssl_ciphers;
select usename, client_addr, state, backend_start from pg_stat_activity;   -- 确认是否存在远程管理连接
```

```bash
grep -vE "^\s*#|^\s*$" $(gsql -d postgres -tAc "show hba_file;")
```

**判定标准**

- **不适用**：`pg_stat_activity.client_addr` 全部为空或 127.0.0.1（纯本地管理）；
- **符合**：`ssl=on` 且 `pg_hba.conf` 对管理来源使用 `hostssl` 条目，客户端实际以 SSL 接入；
- **不符合**：远程管理但 `ssl=off`，或虽 `ssl=on` 但 `pg_hba.conf` 允许 `host`/`hostnossl`（可抓包佐证明文口令字段）。

**证据留存**：`ssl`/`ssl_ciphers` 截图、`pg_hba.conf` 条目、`pg_stat_activity` 输出、必要时附抓包截图。

#### d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别，且其中一种鉴别技术至少应使用密码技术来实现

**核查方法**：访谈并验证远程管理入口是否采用双因子鉴别。GaussDB 原生为用户名+口令单因素；实现双因素需依赖堡垒机、统一身份认证（Kerberos/LDAP/RADIUS）或 USB Key 网关，须实际走一遍完整登录链路而非仅看配置。

**判定标准**：数据库自身未实现且无外围双因子措施 → **不符合**；经堡垒机/统一认证实现且其中一环使用密码技术（证书、动态口令）且可演示链路 → 符合；仅部分入口具备双因素 → 部分符合。

**证据留存**：双因素登录链路演示截图、堡垒机/统一认证策略截图、访谈纪要。

### 访问控制

> **对应控制点**：GB/T 22239-2019 8.1.4.2 访问控制 a)~g)
>
> **判定要点**：账户与权限一一对应、默认账户已处置、无多余与共享账户、管理权限已分离、有书面授权策略、授权粒度达到用户级与表级 → 符合；有权限划分但存在越权高权限账户或粒度仅到角色级 → 部分符合；统一使用超级账户或应用账户持最高权限 → 不符合。
>
> **取证要求**：账户与角色对照表、权限清单查询输出、默认账户处置记录、访问控制策略文件与授权审批记录、粒度核查（对象级/列级/行级）输出。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


应用账户或运维账户直接持有最高权限（`DBA`/`sysadmin`/`superuser`/`SYSDBA`/`root`），或系统、安全、审计三类管理职责未分离由同一账户兼任，属高风险线索；默认示例账户（`SCOTT`、`HR`、`test` 等）处于可用状态且沿用出厂口令时按高风险处理。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


#### a) 应对登录的用户分配账户和权限

**核查方法**：核对 `pg_user`/`\du` 账户清单与角色属性（`usesuper`/`rolauditadmin`/`rolsystemadmin`），确认是否已建立独立的安全管理员与审计管理员账户；`show enableSeparationOfDuty;` 核查三权分立开关状态（默认 off）。

```sql
select usename, usesysid, usesuper, usecreatedb from pg_user;
\du
show enableSeparationOfDuty;      -- 三权分立开关，默认 off
```

**判定标准**：已建立相互独立、相互制约的管理员账户（系统管理员/安全管理员/审计管理员）且各自独立登录、权限不交叉 → 符合；仅存在单一超级管理员统管（`enableSeparationOfDuty=off` 且未建三员） → 不符合（三级系统此项为高风险，见 [22 号对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)）。

> openGauss 内核的三权分立由 `enableSeparationOfDuty` 控制，**默认关闭**：系统管理员（sysadmin）兼有建用户与审计权限。现场须核查该参数是否为 `on` 并已建立三类管理员。

**证据留存**：`pg_user`/`\du` 输出、`enableSeparationOfDuty` 参数截图、账户—角色—人员对应表、授权审批单。

#### b) 应重命名或删除默认账户，修改默认账户的默认口令

```sql
select rolname from pg_authid where oid = 10;     -- 初始用户，不可删除
```

**核查方法**：核对初始用户（自定义名称或 `gaussdba` 类默认名）的口令强度与是否已改名；核对安装时创建的业务账户（原文为 `openstack`、`select_user`）口令是否已由初始口令修改。

**判定标准**：初始账户已重命名或口令已改为强口令 → 符合；沿用初始口令 → 不符合（并存弱口令高风险）。

**证据留存**：初始用户核查输出（`select rolname from pg_authid where oid = 10;`）、口令强度与更换记录、访谈纪要。

#### c) 应及时删除或停用多余的、过期的账户，避免共享账户的存在

**核查方法**：访谈账户用途，逐一核对 `pg_user` 清单；结合登录审计（`audit_login_logout` 记录）识别长期未使用的账户；检查三员是否使用不同账户登录。

**判定标准**：无多余/过期/共享账户 → 符合；存在无法说明用途的账户或一个账户多人共用 → 不符合。

> 原文「机机账户永不过期，故不存在过期账户」不成立——等保语境下的「过期账户」指人员离职、业务下线后未清理的账户，与口令有效期无关，须按账户台账逐条核对。

**证据留存**：账户清单与用途说明、登录审计记录、账户生命周期管理制度。

#### d) 应授予管理用户所需的最小权限，实现管理用户的权限分离

**核查方法**：结合 a) 项核查三权分离落地情况，并抽查业务账户的授权输出，确认业务账户仅具备业务所需权限。

```sql
select * from information_schema.routine_privileges where grantee = 'GAUSSDBA';   -- 用户名需大写
```

**判定标准**：管理员权限分离且业务账户遵循最小权限 → 符合；权限集中在单一超级用户 → 不符合。

**证据留存**：三权分立账户对照表、业务账户授权明细输出、越权抽查记录。

#### e) 应由授权主体配置访问控制策略，访问控制策略规定主体对客体的访问规则

**核查方法**：访谈是否制定访问控制策略文件，抽查权限变更（`GRANT`/`REVOKE`）是否由授权主体审批并留痕。

**判定标准**：已启用身份鉴别、具备权限分离且有书面授权记录 → 符合；仅有技术配置无授权主体 → 部分符合。

**证据留存**：访问控制策略文件、授权审批单、`audit_grant_revoke` 审计输出。

#### f) 访问控制的粒度应达到主体为用户级或进程级，客体为文件、数据库表级

**核查方法**：抽查一条业务授权，确认客体粒度到表/列级；`ls -ld $GAUSSDATA` 核查 `data` 目录权限（应为 0700，仅数据库用户可访问）。

```bash
ls -ld $GAUSSDATA            # 期望 drwx------（0700）
```

**判定标准**：控制粒度可到用户/表级且 `data` 目录权限受限 → 符合；`data` 目录被其他 OS 账户可读 → 部分符合（同时构成主机侧访问控制缺陷）。

**证据留存**：授权明细截图、`ls -ld $GAUSSDATA` 输出、权限矩阵。

#### g) 应对重要主体和客体设置安全标记，并控制主体对有安全标记信息资源的访问

**核查方法**：核查是否已配置资源标签（`CREATE RESOURCE LABEL`）与动态数据脱敏/行级访问控制策略，并抽查带标记资源的访问是否受控。GaussDB/openGauss 提供**资源标签 + 动态数据脱敏 + 行级访问控制**机制，可用于实现主体/客体标记与访问限制；但默认未配置任何标签与策略（原文此处仅写「无」）。

**判定标准**：已建立资源标签与访问/脱敏策略并定义密级 → 符合；具备能力但未配置（多数单位现状） → 不符合。

**证据留存**：资源标签与脱敏/行级策略配置截图、越权访问测试记录。

### 安全审计

> **对应控制点**：GB/T 22239-2019 8.1.4.3 安全审计 a)~d)
>
> **判定要点**：审计功能已启用且实际产生记录、记录含时间/用户/事件类型/结果四要素、覆盖特权账户、审计数据受保护并留存 ≥6 个月、非审计管理员无法变更或清除 → 符合；开关已开但无审计策略、记录要素不全、仅本地留存或留存不足 → 部分符合；审计未启用且无第三方审计措施 → 不符合（高风险）。
>
> **取证要求**：审计开关与策略配置截图、审计记录抽样（脱敏）、审计存放路径与权限核查结果、清理与转存任务配置、最早记录时间清单、第三方审计系统截图。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


审计开关未启用且无第三方数据库审计系统，或审计记录留存明显不足 6 个月，属高风险；非审计管理员账户可修改审计配置、删除或清空审计数据时，审计的不可抵赖性失效，同样按高风险处理。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


#### a) 应启用安全审计功能，审计覆盖到每个用户，对重要的用户行为和重要安全事件进行审计

**核查方法**

```sql
show audit_enabled;              -- 默认 on
show audit_login_logout;         -- 默认 7
show audit_dml_state;            -- 默认 0
show audit_dml_state_select;     -- 默认 0
show full_audit_users;
select * from pg_query_audit('2026-08-30 08:00:00','2026-08-30 18:00:00');
```

**判定标准**

| 结论 | 条件 |
| --- | --- |
| 符合 | `audit_enabled=on`，且审计项开关覆盖了全部用户与重要安全事件（登录注销、用户锁定、授权回收、对象 DDL、DML/SELECT 按需） |
| 部分符合 | 总开关已开，但 `audit_dml_state`/`audit_dml_state_select` 为 0 且重要业务表操作无审计；或依赖第三方数据库审计系统覆盖 |
| 不符合 | `audit_enabled=off` 且无第三方审计 |

> 审计总开关默认 `on` 是**有利基线**，但默认审计项并不涵盖 DML/SELECT 与越权访问。等保要求「对重要的用户行为和重要安全事件进行审计」，现场需结合业务判断并按需开启 `audit_dml_state`、`audit_dml_state_select`、`audit_user_violation`，或对重要用户配置 `full_audit_users`。

**证据留存**：`audit_enabled` 及各审计项参数截图、`pg_query_audit` 查询输出、第三方审计部署说明。

#### b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

**核查方法**：执行 `select * from pg_query_audit(...)` 抽查一条审计记录，逐项核对字段；并用 `select now();` 与服务器时间比对，确认时间同步。

`pg_query_audit` 返回字段含 `time`（时间）、`type`（类型）、`result`（结果）、`userid`/`username`（用户）、`database`、`client_conninfo`（客户端信息）、`object_name`（审计对象）、`detail_info`（详细语句），分布式形态另有 `node_name`、`thread_id`、`local_port`、`remote_port`。

**判定标准**：上述要素齐全 → 符合；缺事件结果或用户标识 → 部分符合；仅记录连接不记录操作 → 不符合。

**证据留存**：`pg_query_audit` 输出截图（含字段）、时间同步核查记录。

#### c) 应对审计记录进行保护，定期备份，避免受到未预期的删除、修改或覆盖等

**核查方法**

1. 核查审计目录与文件权限（应仅审计管理员可访问）；
2. 用非审计管理员账户执行 `pg_query_audit`，验证权限受限；
3. 核查备份策略与留存期限（≥6 个月）。

![GaussDB 非审计用户查询审计被拒界面对照](/wikis/_resources/10%E3%80%81GaussDB%EF%BC%88%E5%8D%8E%E4%B8%BA%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93%EF%BC%89%E6%B5%8B%E8%AF%84/6050db3e4cc62c0e27bb785c8e14040b_MD5.jpg)

- 预期现象：非审计管理员执行查询返回 `ERROR: permission denied to query audit`。

**判定标准**：权限受限 + 定期备份 + 留存 ≥6 个月 → 符合；缺备份或留存不足 → 部分符合；普通用户可删改审计记录 → 不符合（并触发高风险）。

**证据留存**：审计目录权限截图、非审计用户查询被拒截图、备份任务与留存策略截图。

#### d) 应对审计进程进行保护，防止未经授权的中断

**核查方法**：审计为数据库内核线程，随主进程拉起。**禁止**在生产环境用 `kill -9` 实测（原文做法），改用权限矩阵与进程属主核查替代：核查非审计管理员是否具备关闭审计（`gs_guc` 改 `audit_enabled`）的权限。

**判定标准**：已建立独立审计管理员且三权分离，非授权账户无法关闭审计 → 符合；任何 DBA 均可关闭审计 → 不符合。

**证据留存**：审计管理员权限矩阵、`audit_enabled` 参数截图、三权分离配置截图。

### 入侵防范

> **对应控制点**：GB/T 22239-2019 8.1.4.4 入侵防范 a)~f)
>
> **判定要点**：最小安装、非必要服务与高危端口已关闭、管理终端来源受限、有数据有效性检验、版本无已知高危漏洞且定期漏扫修补、上位部署入侵检测并能出示本对象告警 → 符合；部分措施到位（如有防火墙限制但库层未配来源校验、有漏扫无修补记录）→ 部分符合；管理端口无限制开放或存在已知高危漏洞未修补 → 不符合（高风险）。
>
> **取证要求**：已安装组件/选件清单、监听与端口核查输出、来源限制配置截图与拒绝实测、约束或校验配置输出、版本与补丁记录、漏扫报告、上位 IDS/IPS 告警与处置工单。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


当前版本存在已知高危漏洞且无修补记录（含已停止官方支持的版本，如 Oracle 11g、MySQL 5.6、PostgreSQL 12 及更早），或数据库管理端口未经边界限制直接暴露，属高风险；从未开展漏洞扫描或渗透测试亦按高风险线索记录。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


#### a) 应遵循最小安装的原则，仅安装需要的组件和应用程序

**核查方法**：核查数据库安装形态与组件清单（`gsql --version`、数据目录下的扩展库列表），确认未启用与业务无关的组件与扩展（如未使用的 `oracle_fdw`、`plpython`、示例数据库）。

**判定标准**：仅安装业务所需的组件与扩展 → 符合；存在额外扩展但均有用途说明与审批 → 部分符合；存在无法说明用途的组件/扩展 → 不符合。

**证据留存**：安装组件与扩展清单、与安装基线的比对结论。

#### b) 应关闭不需要的系统服务、默认共享和高危端口

**核查方法**：`show port;` 与 `show listen_addresses;` 核查监听端口与监听地址；结合主机侧 `ss -ntlp` 核查数据库端口来源限制；openGauss 系无默认共享概念，核查数据目录 `$GAUSSDATA` 权限为 0700。数据库层不承载的服务由承载它的操作系统测评，须取回主机侧服务与端口清单证据。

**判定标准**：监听端口为业务必需且来源受限、数据目录权限 0700 → 符合；端口对全网开放但已由网络层限制来源 → 部分符合；端口全网开放且无任何限制 → 不符合。

**证据留存**：`show port;`/`listen_addresses` 截图、主机侧端口监听输出、数据目录权限截图。

#### c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

**核查方法**：登录地址限制在 `pg_hba.conf` 中配置（按 数据库/用户/来源地址/认证方法 逐条匹配），用 `show hba_file;` 定位后核查管理条目限定的来源网段。

```bash
gsql -d postgres -tAc "show hba_file;"    # 定位绝对路径
grep -vE "^\s*#|^\s*$" $(gsql -d postgres -tAc "show hba_file;")
```

**判定标准**：`pg_hba.conf` 中管理条目限定具体管理终端 IP/网段、无 `0.0.0.0/0` 全放通 → 符合；仅依赖主机防火墙或网络 ACL、数据库侧放通任意地址 → 部分符合；全放通且无外围限制 → 不符合。

**证据留存**：`pg_hba.conf` 有效条目截图、非授权来源访问被拒的实测记录。

#### d) 应提供数据有效性检验功能，保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求

**核查方法**：用 `gsql` 构造超长/非法 SQL 与特殊字符输入，观察是否被校验拒绝；核查该版本是否存在与参数解析相关的已披露 CVE。

**判定标准**：对非法/越界输入能正确拒绝且无相关未修补漏洞 → 符合；存在相关 CVE 但已修补并记录 → 部分符合；可构造非法输入导致服务异常 → 不符合。

**证据留存**：非法输入实测记录、版本与 CVE 检索结论、补丁记录。

#### e) 应能发现可能存在的已知漏洞，并在经过充分测试评估后，及时修补漏洞

**核查方法**：访谈漏洞扫描周期，用 `select version();` 核对版本全串并比对厂商安全公告与补丁记录。

**判定标准**：有定期漏洞扫描，当前版本无未修补的高危及以上漏洞且补丁有评估—测试—上线记录 → 符合；有扫描报告但补丁更新滞后，滞后项有风险接受记录与补偿措施 → 部分符合；无扫描机制，或存在已披露高危漏洞未处置 → 不符合。

**证据留存**：漏洞扫描报告、补丁更新与变更单、版本截图。

#### f) 应能够检测到对重要节点进行入侵的行为，并在发生严重入侵事件时提供报警

**核查方法**：数据库层不承载入侵检测能力，核查上位措施：主机侧 EDR/IDS、数据库审计告警（`audit_user_violation` 越权审计、登录失败审计）是否触发告警并送达安全管理中心。

**判定标准**：通过主机侧 EDR/IDS 或集中日志平台实现对数据库行为的检测与告警，且告警可达责任人并有处置记录 → 符合；有检测能力但告警未与责任人绑定 → 部分符合；无任何检测与告警 → 不符合。

**证据留存**：EDR/IDS 或日志平台告警规则与样例、`audit_user_violation` 配置、责任人与通知链路说明。

### 恶意代码防范

> **对应控制点**：GB/T 22239-2019 8.1.4.5 恶意代码防范 a)b)
>
> **判定要点**：宿主 OS 已部署恶意代码防范且规则库更新正常（含数据目录未排除），库内可执行载体（JVM/外部过程/脚本扩展）已按需关闭或受限 → 符合；OS 侧已部署但排除数据目录，或可执行载体已启用未加限制 → 部分符合；宿主无任何防范措施 → 不符合。仅当测评单元不含宿主 OS 时方可判不适用，并写明测评单元边界。
>
> **取证要求**：宿主 OS 防范措施截图、规则库版本与更新时间、库内可执行载体启用状态查询输出、访谈纪要。

**核查方法**：数据库层不承载恶意代码防范能力，核查主机侧 EDR/防病毒白名单是否覆盖数据库进程与数据目录，网络层是否有防病毒网关。

**判定标准**：主机侧 EDR/防病毒覆盖数据库进程且策略生效 → 符合；仅网络层有防病毒网关、主机侧无 → 部分符合；各层均无措施 → 不符合。

**证据留存**：主机 EDR/防病毒部署与进程白名单截图、网络层防病毒网关部署说明。

### 可信验证

> **对应控制点**：GB/T 22239-2019 8.1.4.6 可信验证
>
> **判定要点**：宿主服务器配备可信根（TCM/TPM）并启用引导与关键执行环节动态验证、验证结果送安全管理中心 → 符合；具备可信根但未启用动态验证或未送安全管理中心 → 部分符合；无可信验证措施 → 不符合（多数现场属此档，须由宿主机构侧取证）。
>
> **取证要求**：可信计算配置截图、动态验证与报警记录、送安全管理中心的对接证据、访谈纪要。

**核查方法**：访谈并索取厂商白皮书或第三方测评证书，确认数据库是否提供基于可信根（TCM/TPM）的完整性度量；核查宿主固件层 Secure Boot 与 TPM 状态（数据库依赖宿主提供可信根）。

**判定标准**：宿主已启用可信根且数据库关键组件纳入完整性度量、验证结果送安全管理中心 → 符合；已启用可信根但未覆盖数据库或结果未送达中心 → 部分符合；无任何可信验证措施 → 不符合。

**证据留存**：厂商白皮书或第三方测评证书、宿主 Secure Boot/TPM 状态截图、安全管理中心验证记录。

### 数据完整性

> **对应控制点**：GB/T 22239-2019 8.1.4.7 数据完整性 a)b)
>
> **判定要点**：传输侧启用密码技术保护并强制校验（不可降级），存储侧有哈希基线或校验字段并定期比对 → 符合；仅传输侧保护或仅配置文件有基线、校验参数可降级 → 部分符合；传输与存储均无完整性保护 → 不符合。管理全在本机时传输项可判不适用，须写明依据。
>
> **取证要求**：传输加密与校验参数截图、抓包结果（脱敏）、哈希基线清单与比对记录、第三方完整性监控说明。

#### a) 应采用校验技术或密码技术保证重要数据在传输过程中的完整性

**核查方法**：与身份鉴别 c) 同源：核查 `ssl=on`、`ssl_ciphers` 算法强度与 `pg_hba.conf` 的 `hostssl` 条目；核查主备流复制与备份传输链路是否走 SSL。

**判定标准**：本地管理 → 写明「无远程传输通道」依据后判不适用；远程管理启用 TLS1.2 及以上且算法合规（禁用 `NULL`/`EXPORT`/RC4 等弱套件） → 符合；明文传输 → 不符合。

**证据留存**：`ssl`/`ssl_ciphers` 截图、`pg_hba.conf` 条目、复制/备份链路协议核查结论。

#### b) 应采用校验技术或密码技术保证重要数据在存储过程中的完整性

**核查方法**：核查重要表是否存在校验字段（HMAC/哈希列），或是否部署第三方完整性校验工具；openGauss 系另提供**账本数据库**（`ledger`）机制可作完整性佐证。

**判定标准**：数据库自身未配置且无第三方校验机制 → 一般判定**不符合**；业务表存在完整性校验字段并有定期校验记录（或启用账本表） → 符合；仅对部分表有校验 → 部分符合。

**证据留存**：完整性校验字段或账本表配置截图、第三方校验工具配置与比对记录。

### 数据保密性

> **对应控制点**：GB/T 22239-2019 8.1.4.8 数据保密性 a)b)
>
> **判定要点**：鉴别数据以强算法加盐存储（不含已废弃的弱哈希），重要业务数据与个人信息字段采用透明加密或应用侧加密，密钥管理可控 → 符合；仅鉴别数据非明文而业务数据明文，或加密算法强度不足 → 部分符合；鉴别数据使用弱哈希或重要数据明文且无加密措施 → 不符合。
>
> **取证要求**：口令存储格式查询输出、加密配置与密钥（钱包/证书）管理截图、敏感字段抽样结果、算法清单与选型说明、抓包结果（脱敏）。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


鉴别数据仍以已废弃的弱哈希形式存储（如 Oracle `PASSWORD_VERSIONS` 含 `10G`、PostgreSQL 仍用 `md5`），或重要业务数据与个人信息字段明文存储且无任何加密措施，属高风险线索。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


#### a) 应采用密码技术保证重要数据在传输过程中的保密性

**核查方法**：核查方式同身份鉴别 c)，最直接有效的验证是抓包确认鉴别数据、业务数据、个人信息是否明文传输；核查 `ssl_ciphers` 是否存在弱套件。

**判定标准**：`ssl=off` 且远程传输鉴别数据 → 不符合；`ssl=on` 但存在弱套件未禁用 → 部分符合；加密传输且算法合规 → 符合。

**证据留存**：抓包截图或 TLS 会话核查结论、`ssl`/`ssl_ciphers` 截图、`pg_hba.conf` 条目。

#### b) 应采用密码技术保证重要数据在存储过程中的保密性

```sql
show password_encryption_type;    -- 0=md5 / 1=sha256+md5 / 2=sha256（默认）/ 3=sm3
```

**核查方法**：核查鉴别数据散列算法；核查重要业务数据/个人信息是否采用列级加密（密态等值查询）或透明数据加密（TDE）。

**判定标准**

| 结论 | 条件 |
| --- | --- |
| 符合 | 重要业务数据/个人信息经列加密或 TDE（国密优先），且 `password_encryption_type` 为 2 或 3 |
| 部分符合 | 鉴别数据仅做散列存储但算法含 MD5（`password_encryption_type` 为 0/1），业务数据未加密 |
| 不符合 | 鉴别数据或重要业务数据明文存储 |

**证据留存**：`password_encryption_type` 截图、列加密/TDE 配置截图、加密算法与密钥管理说明。

### 数据备份恢复

> **对应控制点**：GB/T 22239-2019 8.1.4.9 数据备份恢复 a)~c)
>
> **判定要点**：有本地备份任务与近期备份产物且有恢复演练记录、有异地实时或定时备份链路、具备热冗余（集群/主备）并可演示切换 → 符合；有备份产物但仅做过校验从未真实恢复、异地周期过长、有冗余架构无切换演练 → 部分符合；无备份措施或单实例且无异地副本 → 不符合。
>
> **取证要求**：备份脚本或作业配置截图、备份产物清单（含时间戳）、恢复演练记录、异地备份拓扑与同步状态输出、集群或主备状态输出、切换演练记录。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


无任何本地备份措施，或备份与数据库同机同磁盘存放（主机故障即备份同时失效），属高风险；仅有备份产物但从未做过恢复演练时按部分符合并记为高风险线索。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


#### a) 应提供重要数据的本地数据备份与恢复功能

`gs_dump`/`gs_dumpall` 逻辑备份、`gs_basebackup`/`gs_probackup` 物理备份三类方式齐备。

**核查方法**：访谈配置数据/审计数据/业务数据的备份策略，核对备份任务记录与恢复演练记录，必要时用 `gs_restore` 抽样验证可恢复性。

**判定标准**：具备逻辑与物理备份能力、有近期备份产物且做过恢复演练 → 符合；有备份任务但从未验证可恢复 → 部分符合；无任何备份 → 不符合。

**证据留存**：备份任务截图、备份文件清单、恢复演练记录。

#### b) 应提供异地实时备份功能，利用通信网络将重要数据实时备份至备份场地

**核查方法**：核查是否部署异地备份机房/备份服务器并按策略定期传输，确认同步周期与异地侧数据可验证性。

**判定标准**：具备异地备份场地与定期备份链路、异地侧数据可验证 → 符合；有异地备份但周期过长或链路不可验证 → 部分符合；仅本地备份 → 不符合。

**证据留存**：异地备份拓扑与策略、同步状态输出、异地侧备份文件清单。

#### c) 应提供重要数据处理系统的热冗余，保证系统的高可用性

**核查方法**：用 `gs_om -t status --detail` 核查主/备角色与同步状态（openGauss 系）；FusionSphere 内置组件库用 `cps template-instance-list --service gaussdb gaussdb` 核查部署节点；另核查切换演练记录。

```bash
gs_om -t status --detail         # openGauss 系：主/备角色与同步状态
cps template-instance-list --service gaussdb gaussdb    # FusionSphere 内置组件库
```

**判定标准**：主备/一主多备集群部署、双机热备均可判定为符合；有冗余但无切换演练记录 → 部分符合；单机部署且无冗余 → 不符合（此项与数据备份 b) 需分别取证）。

**证据留存**：`gs_om`/`cps` 输出截图、切换演练记录。

### 剩余信息保护

> **对应控制点**：GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)
>
> **判定要点**：鉴别信息与敏感数据所在存储空间在释放或重分配前有可验证的清除机制（客体重用参数、存储层安全擦除、加密后销毁密钥），且备份介质纳入清除范围 → 符合；仅有逻辑删除（DROP/DELETE）未做清除验证，或备份介质未纳入 → 部分符合；无任何清除机制 → 不符合。
>
> **取证要求**：客体重用或擦除相关参数截图、擦除验证记录、密钥销毁流程说明、备份介质销毁与清除记录、敏感数据分布清单。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


删除账户或表后未做任何清除验证，且存储介质报废、外送维修前无擦除或销毁记录时，鉴别信息与敏感数据存在可恢复风险，按高风险线索记录。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


> 数据库内核层不直接提供剩余信息保护能力，需依赖存储加密/覆写策略或第三方工具实现（原文「删除时会进行格式化清除」无证据支撑）。

#### a) 应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除

**核查方法**：核查账户删除后口令哈希是否从系统表移除（删除前后 `select rolname from pg_authid` 对比）；核查鉴别信息所在存储空间释放/重新分配前是否有覆写或加密措施。

**判定标准**：账户删除后鉴别信息清除，且存储空间具备擦除或加密措施 → 符合；账户层已清除但存储依赖手工流程且无记录 → 部分符合；无任何清除措施 → 不符合。

**证据留存**：账户删除前后系统表对比、存储擦除/加密策略说明。

#### b) 应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除

**核查方法**：核查删除表/表空间后数据文件是否被覆写（openGauss 内核不自动擦除数据页）；核查退役存储是否走 TDE 密钥销毁或第三方覆写工具。

**判定标准**：退役空间有擦除或密钥销毁记录、残留数据不可恢复 → 符合；有流程但缺执行记录 → 部分符合；无任何措施 → 不符合。

> 原文「存储空间删除时会进行格式化清除」属厂商口头答复，现场应索取产品文档或实测记录作为证据，仅有访谈记录不足以支撑符合结论。

**证据留存**：存储销毁流程与执行记录、TDE/密钥销毁说明。

### 个人信息保护

> **对应控制点**：GB/T 22239-2019 8.1.4.11 个人信息保护 a)b)
>
> **判定要点**：仅采集与保存业务必需字段且有清单与制度支撑、个人信息所在对象有独立授权且实测非授权账户无法访问 → 符合；存在非必要字段但有清理计划，或有授权控制但备份文件未纳入管控 → 部分符合；超范围采集无制度，或非授权账户可直接读取 → 不符合。对象确实不承载个人信息时可判不适用，须先访谈确认并留存反向证据。
>
> **取证要求**：个人信息字段清单、采集必要性说明与管理制度、权限清单、非授权访问实测记录、访谈纪要。

<div class="alert alert-warning" role="alert"><div class="h4 alert-heading" role="heading">高风险提示</div>


非授权账户或低权限账户实测可直接读取存储个人信息的表、表空间与备份文件，属高风险；超范围采集个人信息且无字段清单与保护制度时同样按高风险处理。

判定口径详见 [22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)。
</div>


#### a) 应仅采集和保存业务必需的用户个人信息

**核查方法**：核查数据库中个人信息表的字段与采集范围，与业务必要性比对；核查备份包、导出文件中是否夹带个人信息。

**判定标准**：仅采集业务必需字段并有台账 → 符合；存在超范围采集但已制定清理计划 → 部分符合；明显超范围且无整改计划 → 不符合。

**证据留存**：数据分类分级文件、个人信息表清单与台账、访谈纪要。

#### b) 应禁止未授权访问和非法使用用户个人信息

**核查方法**：验证非授权人员能否访问承载个人信息的表/列（结合动态数据脱敏、行级访问控制与列加密核查）；核查 `audit_grant_revoke` 与 `audit_dml_state_select` 是否覆盖个人信息访问。

**判定标准**：访问受角色/脱敏控制且有审计 → 符合；权限受控但审计未完全覆盖 → 部分符合；存在未授权访问或外发行为且无管控 → 不符合。

**证据留存**：脱敏/行级访问控制策略截图、授权与访问审计记录。

## 四、版本与形态适用性对照

| 核查项 | 集中式/分布式（openGauss 内核，V2.0-2.x/3.x） | FusionSphere 内置组件库（原文本次实测） |
| --- | --- | --- |
| 版本查询 | `gsql -c "select version();"` 返回 `GaussDB Kernel ...` | `gaussdb --version`；`cps template-instance-list --service gaussdb gaussdb` |
| 口令策略 | `password_policy` 系列参数，`gs_guc reload` 设置 | 云平台运维接口配置，DBA 不可直接改参 |
| 失败锁定 | `failed_login_attempts` + `password_lock_time`（须成对） | 实测 3 次 / 300 秒（部署配置值） |
| 会话超时 | `session_timeout`（秒，0~86400，0=关闭） | 实测 1800 秒 |
| 三权分立 | `enableSeparationOfDuty`，默认 `off` | 账户体系由云平台预置（gaussdba/openstack/select_user） |
| 审计 | `audit_enabled` 默认 `on`；`pg_query_audit` / `gs_query_unified_audit` | `audit_enabled` + `pg_query_audit`；日志在 `/var/log/fusionsphere/component/gaussdb` |
| 备份 | `gs_dump`/`gs_basebackup`/`gs_probackup` | `backup policy-get` / `backup package-get --service gaussdb` |
| 高可用 | `gs_om -t status --detail` | `cps template-instance-list`（active=主，standby=备） |

> 形态差异大于版本差异：现场应记录产品全称、版本全串与安装路径，再取用对应命令。

## 测评项对照表

| 控制点 | 判定要点 |
| --- | --- |
| 形态识别 | `select version();` 全串 + 安装路径；决定后续所有命令集 |
| 身份鉴别 a) | `password_policy=1` + `password_min_*` + `password_effect_time` ≤90 天，`valuntil` 可查 |
| 身份鉴别 b) | `failed_login_attempts` 与 `password_lock_time` **成对配置** + `session_timeout` ≠ 0 |
| 身份鉴别 c) | `ssl` + `ssl_ciphers` + `pg_hba.conf` 的 `hostssl` 条目 |
| 访问控制 a)/d) | `enableSeparationOfDuty=on` + 系统/安全/审计管理员齐备、独立登录 |
| 访问控制 f) | 用户/表级授权 + `$GAUSSDATA` 目录 0700 |
| 访问控制 g) | 资源标签 + 行级访问控制/动态脱敏是否配置 |
| 安全审计 a) | `audit_enabled=on`，并按业务开启 `audit_dml_state`/`audit_dml_state_select`/`audit_user_violation` |
| 安全审计 c) | 审计目录权限 + 非审计用户查询被拒（`permission denied to query audit`）+ 留存 ≥6 个月 |
| 入侵防范 c) | `show hba_file;` 定位 `pg_hba.conf`，管理条目限定具体网段 |
| 数据完整性/保密性 a) | TLS1.2 及以上、弱套件禁用 |
| 数据保密性 b) | `password_encryption_type` 为 2 或 3；重要数据列加密/TDE |
| 备份恢复 a)/c) | `gs_dump`/`gs_restore` 演练记录、`gs_om -t status --detail` 主备形态 |

## 参考依据

- GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》（8.1.4 安全计算环境各控制点）：[http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF](http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF)
- GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》（测评对象边界认定、单元测评实施与结果判定：符合/部分符合/不符合/不适用）：[http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C](http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C)
- GB/T 25070-2019《信息安全技术 网络安全等级保护安全设计技术要求》，可在全国标准信息公共服务平台检索：[http://openstd.samr.gov.cn/bzgk/gb/](http://openstd.samr.gov.cn/bzgk/gb/)
- GB/T 28449-2018《信息安全技术 网络安全等级保护测评过程指南》（现场测评活动与证据留存要求），可在全国标准信息公共服务平台检索：[http://openstd.samr.gov.cn/bzgk/gb/](http://openstd.samr.gov.cn/bzgk/gb/)
- GaussDB 数据库安全（华为企业支持）：[https://support.huawei.com/enterprise/zh/doc/EDOC1100521883/4bd0aa81](https://support.huawei.com/enterprise/zh/doc/EDOC1100521883/4bd0aa81)
- 权限配置最佳实践（含三权分立机制）：[https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1713.html](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1713.html)
- GaussDB 帮助中心入口：[https://support.huaweicloud.com/gaussdb/index.html](https://support.huaweicloud.com/gaussdb/index.html)
- gsql 客户端工具：[https://support.huaweicloud.com/tg-gaussdb/gaussdb-04-0060.html](https://support.huaweicloud.com/tg-gaussdb/gaussdb-04-0060.html)
- 《网络安全等级保护测评高风险判定指引》（中关村信息安全测评联盟团体标准）——高风险情形判定口径，站内对照表：[22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)
- 命令核验说明：GaussDB 相关命令已对照华为官方支持文档与 GaussDB 帮助中心核验（核验日期 2026-09-02）。要点：① 三权分立由 GUC 参数 `enableSeparationOfDuty` 控制，属 POSTMASTER 类型参数，**修改后必须重启数据库**；集中式用 `gs_guc set -Z datanode -N all -I all -c "enableSeparationOfDuty=on"`，分布式追加 `-Z coordinator`，随后 `gs_om -t stop && gs_om -t start`（或 `cm_ctl stop && cm_ctl start`）。② 开启后 `SYSADMIN` 不再具有创建/修改/删除用户与查看维护审计日志的权限，须分别建 `CREATEROLE`（安全管理员）与 `AUDITADMIN`（审计管理员）账户；**同一用户或角色只能具有 SYSADMIN、CREATEROLE、AUDITADMIN 三者之一**。另有 `MONADMIN`（监控）、`OPRADMIN`（运维备份）、`POLADMIN`（安全策略，可创建资源标签、动态脱敏策略与统一审计策略）。③ 认证采用 PBKDF2 单向哈希，自 V500R001C20 起引入，口令加密存储与传输。④ 现场须先区分 GaussDB（集中式/分布式）、GaussDB(DWS) 与 openGauss 三种形态，管理工具与参数命名不完全一致（如 DWS 控制台创建集群时直接设置安全管理员与审计管理员账户），不得混用命令口径。

## 关联文章

- 同板块·数据库测评篇：[01、Oracle数据库测评](../01oracle数据库测评/)、[05、SQL Server数据库测评](../05sql-server数据库测评/)、[37、MySQL数据库测评](../37mysql数据库测评/)、[28、MariaDB数据库测评](../28mariadb数据库测评/)、[29、MongoDB测评](../29mongodb测评/)、[31、Redis数据库测评](../31redis数据库测评/)、[30、达梦数据库测评](../30达梦数据库测评/)、[07、KingbaseES人大金仓数据库测评](../07kingbasees人大金仓数据库测评/)、[06、优炫数据库（UXDB）测评](../06优炫数据库uxdb测评/)
- 同板块·数据库命令速查：[12、MySQL测评命令](../12mysql测评命令/)、[25、PostgreSQL数据库配置核查命令](../25postgresql数据库配置核查命令/)、[33、DB2数据库命令](../33db2数据库命令/)
- 同板块·中间件测评：[02、TAS应用中间件测评](../02tas应用中间件测评/)、[13、Linux（Tomcat）中间件命令](../13linuxtomcat中间件命令/)
- 同板块·控制点解读：[22、应用访问控制测评解读（MySQL 示例）](../22应用访问控制测评解读mysql-示例/)
- 业务应用参照：[21、应用系统访问控制测评解读](../../业务应用系统平台/21应用系统访问控制测评解读/)、[11、新员工网络培训考核系统测评](../../业务应用系统平台/11新员工网络培训考核系统测评/)
- 配套命令单：[09、GaussDB 测评命令单](../数据库测评命令/09-gaussdb/)（[数据库测评命令目录](../数据库测评命令/)）
- 板块目录：[系统管理软件·平台](/wikis/docs/gradeprotection/%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6%E5%B9%B3%E5%8F%B0/)
- 通用加固方案：[17、加固方案总纲](../../../reinforce/其他系统或设备/17网络设备安全设备服务器数据库和应用系统的加固方案/)
- 取证记录模板：[16、安全评估加固记录表3.0](../../../reinforce/其他系统或设备/16安全评估加固记录表3.0/)
- 高风险口径：[22、高风险判定指引与加固对照表](../../../reinforce/其他系统或设备/22高风险判定指引与加固对照表/)
