type
Post
status
Published
date
May 21, 2026
slug
summary
数据库基线核查checklist
tags
数据库
等保
category
技术分享
icon
password
一、身份鉴别
1.1 账号管理

1.2 密码复杂度
用户->属性->DDL也能看见当前用户使用的密码策略。

创建用户语句中的 PASSWORD_POLICY 子句用来指定该用户的口令策略,口令策略可以设置为 15 或 31,含义如下:
- 15 口令禁止与用户名相同,口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值,口令最长为 48 字节,至少包含一个大写字母(A-Z)和一个小写字母(a-z),至少包含一个数字(0-9)
- 31 口令禁止与用户名相同,口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值,口令最长为 48 字节,至少包含一个大写字母(A-Z)和一个小写字母(a-z),至少包含一个数字(0-9),至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
命令行查询如下:👇

双击用户下的账户名,也可确定当前账户使用的密码复杂度策略。

也可以通过命令行查询当前数据库所有用户的密码复杂度配置:

密码长度查询:

1.3 登陆失败处理
可以使用命令行进行查看:
用户
TEST_USER(50331748):- 失败累计10此后锁定
- 目前已失败1次
- 失败后锁定时常10min
- 当前账户状态未锁定
- 最新锁定状态——从未被锁定
- 密码过期后,有 10 天宽限期可登录
- 密码复杂度策略15
- 仅允许
192.168.42网段的 IP 登录,其他 IP 拒绝
- 仅允许每周一凌晨 1 点到早上 8 点登录,其他时间拒绝

也可以通过用户属性查看确定用户的登陆失败处理方式

1.4 远程登陆管理

1.5 双因素认证
需根据实际情况通过访谈+实际检查确定的方式确认该项存在。

二、访问控制
2.1 账户权限划分
在安装过程中,
DM 数据库会预设数据库管理员账号 SYSDBA、数据库安全员账号 SYSSSO、数据库审计员账号 SYSAUDITOR。用户需要基于 DM 默认口令策略自行设置各个管理用户的口令。此外,需要说明的是,在
DM 数据库中有一个特殊的预定义用户“SYS”,此用户仅用于保存系统内部对象,并非数据库管理员,也无法进行登录。注:TEST_USER是我个人主动添加的。

2.2 默认账户口令
相较于老版本的达梦数据库,新版本用户在数据库初始化实例时,就需设置数据库系统用户的密码,并保证密码强度,以保障数据安全性,因此不存在默认口令。

老版本则可能会存在默认口令,SYSDBA 默认口令为
SYSDBA,SYSSSO 为 SYSSSO,SYSAUDITOR 为 SYSAUDITOR——三者均为明文、强固定值,属高危默认配置。
2.3 共享账户
首先查看:
- FAST_LOGIN(快速登录开关):
- 功能——控制是否启用数据库快速登录功能,减少登录时的密码加密验证开销
- 取值——0:关闭(默认);1:开启
- AUDIT_IP_STYLE(审计 IP 格式):
- 功能——控制审计日志中记录的客户端 IP 地址格式
- 取值——0:仅记录
IPv4地址(默认);1:仅记录IPv6地址;2:同时记录IPv4+IPv6地址

接着以
SYSAUDITOR的账户登录DM审计分析工具
添加审计文件路径下的日志文件(一般是在C:\dmdbms\data\DAMENG\audit)

即可审计各个账户的请登录情况,从而分析是否存在账户共享的情况。

2.4 最小权限原则
在三权分立的基础上,右击用户属性查看用户权限是否符合最小权限原则。

角色是权限的核心载体,先查用户所属角色,才能快速判断权限范围:

2.5 授权主体配置访问策略规则
在 达梦数据库中,用户是否具备访问策略配置(如角色管理、权限分配、安全策略设置等)的能力,取决于其被授予的角色和权限。
普通用户的角色为public,不具备配置访问策略的权限。DBA则具备相应的权限。
角色名称 | 角色简单说明 |
DBA | DM 数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权,只有 DBA 才可以创建数据库结构 |
RESOURCE | 可以创建数据库对象,对有权限的数据库对象进行数据操纵,不可以创建数据库结构 |
PUBLIC | 不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵。常规情况下,不建议回收用户的 PUBLIC 角色,一旦用户的 PUBLIC 角色被回收,将导致很多功能因权限不够无法使用 |
VTI | 具有系统动态视图的查询权限。VTI 默认授权给 DBA 角色且可转授,不支持从 DBA 中回收 VTI。可以为 SYSDBA 授予和回收 VTI |
SOI | 具有非审计/安全系统表的查询权限。SOI 默认授权给 SYSDBA 用户且可转授,不支持从 SYSDBA 回收 SOI |
SVI | 具有基础 V 视图的查询权限。SVI 默认授权给 PUBLIC 且可转授,不支持从 PUBLIC 中回收 SVI。可以为 SYSDBA 授予和回收 SVI |
DB_AUDIT_ADMIN | 数据库审计的最高权限集合,可以对数据库进行各种审计操作,并创建新的审计用户 |
DB_AUDIT_OPER | 可以对数据库进行各种审计操作,但不能创建新的审计用户 |
DB_AUDIT_PUBLIC | 无实际权限 |
DB_AUDIT_VTI | 具有系统动态视图的查询权限,DB_AUDIT_VTI 默认授权给 DB_AUDIT_ADMIN 且可转授 |
DB_AUDIT_SOI | 具有基础类系统表和与审计操作相关的系统表的查询权限 |
DB_AUDIT_SVI | 具有基础 V 视图和审计 V 视图的查询权限。DB_AUDIT_SVI 默认授权给 DB_AUDIT_PUBLIC 且可转授 |
DB_POLICY_ADMIN | 数据库强制访问控制的最高权限集合,可以对数据库进行强制访问控制管理,并创建新的安全管理用户 |
DB_POLICY_OPER | 可以对数据库进行强制访问控制管理,但不能创建新的安全管理用户 |
DB_POLICY_PUBLIC | 无实际权限 |
DB_POLICY_VTI | 具有系统动态视图的查询权限,DB_POLICY_VTI 默认授权给 DB_POLICY_ADMIN 且可转授 |
DB_POLICY_SOI | 具有基础类系统表和与安全操作相关的系统表的查询权限 |
DB_POLICY_SVI | 具有基础 V 视图和安全 V 视图的查询权限 |
SYS_ADMIN | 系统预留角色 ,暂未启用 |
SELECT_CATALOG_ROLE | METADATA.GET_DDL 专用,查询相同类型其他用户的对象、或 SYSDBO 用户(包含创建的用户)下的对象、或 SYS 模式下的对象。此处的相同类型其他用户是指 SYSDBA 或 SYSDBA 创建的用户。SELECT_CATALOG_ROLE 默认授权给 DBA 角色且可转授 |
DB_AUDIT_SELECT_CATALOG_ROLE | METADATA.GET_DDL 专用,查询相同类型其他用户或不同类型用户的对象(包含 SYS 模式)。DB_AUDIT_SELECT_CATALOG_ROLE 默认授权给 DB_AUDIT_ADMIN 角色且可转授 |
DB_POLICY_SELECT_CATALOG_ROLE | METADATA.GET_DDL 专用,查询相同类型其他用户或不同类型用户的对象(包含 SYS 模式)。DB_POLICY_SELECT_CATALOG_ROLE 默认授权给 DB_POLICY_ADMIN 角色且可转授 |
2.6 访问控制的颗粒度
DM支持从数据库级到行级、列级的五级权限管控,其中列级与行级权限是其核心优势 —— 列级权限实现了敏感字段的纵向隔离,行级权限实现了同表数据的横向隔离,两者结合可满足绝大多数高敏感场景的权限管控需求;
2.7 强访问控制
DM 利用策略和标记来实现 DM 数据库的强制访问控制。执行强制访问控制的用户必须具有 LABEL DATABASE 数据库权限,在新初始化的数据库中,只有 SYSSSO 具有这个权限。
强制访问控制功能仅在 DM 安全版中提供。只有初始化库时指定 ENABLE_MAC=1 或启动 DM 实例时指定过 ENABLE_MAC 参数的情况下才支持强制访问控制。

DM 数据共享集群 DMDSC、DM 数据守护和读写分离集群都支持强制访问控制,但 DM 大规模并行处理集群 MPP 暂不支持强制访问控制。
三、安全审计
3.1 安全审计功能
在 DM 系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。审计开关由过程 VOID SP_SET_ENABLE_AUDIT(param int);控制,过程执行完后会立即生效,param 有三种取值:
- 0:关闭审计
- 1:打开普通审计
- 2:打开普通审计和实时审计

3.2 审计记录信息
审计记录的信息存储在(C:\dmdbms\data\DAMENG\audit)

打开DM审计工具就可以看到包含的审计内容如下:

3.3 审计记录保护
审计记录的log文件无法使用普通记事本打开修改,只能使用
SYSAUDITOR进行查看。
四、入侵防范
4.1 限制终端接入
DM数据库提供用户资源限制、IP地址限制和用户时间段限制功能。
可以通过以下命令来确定是否对终端的访问进行了限制:

4.2 补丁更新
版本查看(通过DM控制台工具):

命令行查看:

根据以上信息对比官网最新版本是否更新。
五、可信验证
5.1 数据传输过程中的保密性与完整性
DM 提供两种通信加密方式:一基于传输层的 SSL 协议加密;二基于应用层的消息包加密。两个层次的加密互不影响,可以同时使用。因为任何一种加密方式都足够安全,而且双重加密会占用更多的数据库资源,所以通常情况下,没必要同时开启这两种加密。
5.1.1 基于传输层的 SSL 协议加密
ENABLE_ENCRYPT 取值 0、1、2、4 或 5。
- 0:不开启 SSL 加密和 SSL 认证;
- 1:开启 SSL 加密和 SSL 认证;
- 2:开启 SSL 认证但不开启 SSL 加密;
- 4:开启 SSL 加密不开启 SSL 认证;
- 5:开启 SSL 加密和对服务端的 SSL 单向认证。缺省值为 0。
不论设置为 1、2、4 或 5,它内部所使用的密码套件是 SSL 协议自动协商的,达梦未进行任何干涉。

另外,DM.INI 中的 MIN_SSL_VERSION 参数指定了允许连接的 SSL 最低版本,此参数设置仅当 ENABLE_ENCRYPT 不为 0 时有效。
MIN_SSL_VERSION 的可取值包括:
- 0:所有版本
- 0x0301:TLSv1
- 0x0302:TLSv1.1
- 0x0303:TLSv1.2
- 0x0304:TLSv1.3
MIN_SSL_VERSION 缺省为 0,为静态 INI 参数,修改后需要重启 DM 数据库服务器才能生效。

字段名 | 当前值 | 说明 |
PARA_NAME | MIN_SSL_VERSION | 参数名称,用于指定数据库支持的最小 SSL/TLS 协议版本 |
PARA_VALUE / FILE_VALUE / DEFAULT_VALUE | 771 | 数值形式的协议版本,对应十六进制 0x0303,即 TLS 1.2 |
5.1.2 基于应用层的消息包加密
选择是否使用基于应用层的消息包加密以 DM 数据库服务器端的设置为准,即通过设置服务器配置文件 DM.INI 中的 COMM_ENCRYPT_NAME 参数来指定,客户端以服务器采用的通信方式与其进行通信。
COMM_ENCRYPT_NAME 取值空串、算法名分别代表不加密、加密。缺省为空串。算法名可以通过查询动态视图 V$CIPHERS 获取。当算法名写错,则使用加密算法 AES256_CFB。应用层加密的密钥是通过 DH 密钥交换算法协商生成。
用户可通过 V$CIPHERS 动态视图查询达梦支持的 COMM_ENCRYPT_NAME 算法名。

用户可通过 V$PARAMETER 动态视图查询 COMM_ENCRYPT_NAME 的当前值。

5.2 数据存储过程中的保密性与完整性
此项需要通过先访问再检查的方式实现。
为了防止用户直接通过数据文件获取用户信息,DM 提供了全面的数据加密的功能,包括:
✔ 透明加密:在透明加密中,密钥生成、密钥管理和加解密过程由数据库管理系统自动完成,用户不可见。透明加密的目的主要是保证存储在数据文件中的敏感数据的安全,并不能保护合法用户的个人私密数据。
✔ 半透明加密:创建用户时可以指定存储加密密钥,这个密钥就是为了进行半透明加密时使用的。如果在创建用户时并没有指定存储加密密钥,系统也会自动为用户生成一个默认的存储加密密钥。
创建表或修改表时可以对表列指定半透明加密,指定后 DM 会使用用户的存储加密密钥对数据进行加密。半透明加密列的密文后追加了 4 个字节的 UID,用户查询数据时,若当前会话用户 ID 与列密文数据中存储的 UID 相同,则返回明文,否则返回 NULL。
✔ 非透明加密:DM 对非透明加密的支持是通过对用户提供加解密接口实现的。用户在使用非透明加密时,需要提供密钥并调用加解密接口。采用非透明加密可以保证个人私密数据不被包括 DBA 在内的其他人获取。
六、数据备份恢复
6.1 本地备份
访谈,是否存在本地备份,且备份是否符合本地备份要求。
6.2 异地备份
访谈,是否存在异地备份,且备份是否符合异地备份要求。
6.3 冗余配置
访谈,是否存在冗余配置,且备份是否符合冗余配置要求。