type
Post
status
Published
date
May 21, 2026
slug
summary
数据库基线核查checklist
tags
数据库
等保
category
技术分享
icon
password
一、身份鉴别
1.1 账号管理
MongoDB 中每个角色(role)名称在集群内必须是唯一的,这是由系统强制保证的。

你可以通过以下 语句查询确认当前数据库下可用以登录的角色,并从响应结果中获得每一个角色的权限划分。

1.2 密码复杂度
- MongoDB 本身在社区版中并不原生提供可配置的密码复杂度策略(如最小长度、必须包含大小写字母/数字/特殊字符等)。
- MongoDB 企业版,在
mongod.conf中进行密码复杂的静态配置。

1.3 登录失败处理
纯 MongoDB 原生无法实现“输错 5 次密码就锁定账户”,除非集成外部认证系统(如 LDAP + Active Directory), 应通过访谈形式确认是否存在第三方的安全控制。
1.5 双因素认证
MongoDB 默认支持以下认证方式:
- SCRAM(Salted Challenge Response Authentication Mechanism):社区版和企业版都支持(如 SCRAM-SHA-1、SCRAM-SHA-256)
- x.509 证书认证:基于 TLS 客户端证书
- LDAP / Kerberos:仅限 MongoDB Enterprise 或 Atlas
❗ 所有这些方式都是单因素认证(你知道的密码 / 你拥有的证书 / 你在目录中的身份),不包含第二因素(如手机验证码、TOTP、FIDO2 等),应通过访谈形式确认是否存在第三方的安全控制。
二、访问控制
2.1 账户权限划分
MongoDB 的权限划分基于 基于角色的访问控制(RBAC, Role-Based Access Control),通过 用户(User) + 角色(Role) + 权限(Privilege) 三层模型实现精细化权限管理。需要结合 1.1账号管理 的内容可以进行可登录账号的权限查看是否存在多种类型的可登录账户用以划分权限。
2.2 默认账户/口令
MongoDB安装后的默认账户为admin,默认是没有口令的。
2.3 共享账户
最佳判断方式是通过日志进行分析👇:

2.4 最小权限原则
MongoDB 使用 基于角色的访问控制(RBAC) 来落实最小权限,因此需要结合 1.1 账号管理 的调查内容进行权限分析。
2.5 授权主体配置访问控制策略
在 MongoDB 8.2.5 中,用户是否具备访问策略配置(如角色管理、权限分配、安全策略设置等)的能力,取决于其被授予的角色和权限。
普通用户(即没有被赋予管理类角色的用户):
- 不具备 配置访问策略的能力。
- 通常只拥有对特定数据库的 读写权限(如
readWrite角色),仅限于业务数据操作。
- 无法创建/删除用户、修改角色、配置审计日志、启用认证等管理操作。
admin 用户 通常是指在
admin 数据库中创建,并被赋予了管理角色(如 userAdminAnyDatabase、dbAdminAnyDatabase、root 等)的用户。这类用户具备访问策略配置能力,具体取决于所分配的角色:
角色 | 能力说明 |
userAdminAnyDatabase | 可以在任意数据库中创建/删除用户、分配角色(但不能读写业务数据)。 |
dbAdminAnyDatabase | 可管理任意数据库的结构(如索引、集合),但不一定能管理用户。 |
root | 超级用户角色,拥有所有权限,包括安全策略、审计、备份、集群管理等。 |
2.6 访问控制的粒度
结合2.4 最小权限原则 中角色权限查看的信息进行判断,MongoDB 的访问控制(Access Control)基于 基于角色的访问控制(RBAC, Role-Based Access Control),其权限颗粒度设计较为精细,支持从 数据库级别 到 集合/操作级别 的多种粒度控制。
三、安全审计
3.1 安全审计功能

3.2 审计记录信息
3.1 审计功能中的 log_line_prefix 参数提供了审计日志中提供的审计信息,也可以通过命令行进行查看。

3.3 审计记录保护
日志是否防篡改:日志文件权限为
600,仅特定权限用户可读可写。
四、入侵防范
4.1 限制终端接入

4.2 补丁更新

MongoDB 使用 语义化版本格式:
截至 2026年2月,MongoDB 8.2 系列的最新补丁是 8.2.5。
五、可信验证
5.1 数据传输过程中的保密性与完整性
mongoDB支持设置TLS来保证数据传输过程中的安全,相关配置可以从
mongod.conf进行查看。配置示例(
mongod.conf):5.2 数据存储过程中的保密性与完整性
MongoDB 提供两种静态加密方案:
(1)WiredTiger 存储引擎原生加密(Enterprise Only)
- 自动加密 数据文件、日志、备份。
- 使用 AES-256 加密算法。
- 密钥管理支持:
- 本地密钥文件(不推荐生产)
- KMIP 兼容的 KMS(如 HashiCorp Vault、AWS KMS、Azure Key Vault)
- 所有数据页(data pages)和日志记录(journal entries)均包含 CRC32 校验和
🟡 社区版不支持此功能。
(2)客户端字段级加密(Client-Side Field Level Encryption, CSFLE)
- 社区版和企业版均支持(从 4.2 起)。
- 敏感字段(如身份证、手机号、银行卡号)在应用层加密后写入数据库。
- 即使 DBA 或攻击者直接读取磁盘文件,也无法解密明文。
- 支持自动加密/解密(通过
mongocryptd或本地库)。
Mongodb的功能 | 社区版 | 企业版 | Atlas |
TLS/SSL 传输加密 | ✅ | ✅ | ✅(默认启用) |
静态加密(WiredTiger) | ❌ | ✅ | ✅(默认启用) |
客户端字段加密(CSFLE) | ✅ | ✅ | ✅ |
审计日志 | ❌ | ✅ | ✅(M10+) |
校验和(完整性) | ✅ | ✅ | ✅ |
六、数据备份恢复
6.1 本地备份
MongoDB 本身不内置自动备份策略管理界面。备份通常由以下方式实现:
- 手动使用
mongodump
- 脚本 + cron 定时任务
- 使用 MongoDB Ops Manager / Cloud Manager(企业级工具)
配合访谈进行判断。
6.2 异地备份
访谈,是否存在异地备份,且备份是否符合异地备份要求。
6.3 冗余配置
访谈,是否存在冗余配置,且配置是否符合冗余配置要求。