MongoDB安全最佳实践
配置认证、授权、加密和审计来保护你的MongoDB数据库。 · 难度:入门 · +15XP
MongoDB 安全
安全性是数据库运维的核心。MongoDB 提供了多层安全机制:传输加密、访问控制、审计日志和字段级加密。
1. 启用认证
// 创建管理员用户
use admin;
db.createUser({
user: 'admin',
pwd: 'securePassword',
roles: ['root']
});
// 启动时开启认证
mongod --auth --port 270172. 角色与权限
| 角色 | 权限 |
|---|---|
| read | 读取数据库 |
| readWrite | 读写数据库 |
| dbAdmin | 管理索引、模式 |
| clusterAdmin | 集群管理 |
3. 网络与加密
- 使用 TLS/SSL 加密传输
- 绑定 IP 限制访问来源
- 使用防火墙限制端口(默认 27017)
4. 审计
// 启动审计日志
mongod --auditDestination file --auditPath /var/log/mongodb/audit.log --auditFilter '{ "atype": { "$in": ["authCheck", "createCollection"] } }'5. 字段级加密(CSFLE)
MongoDB 4.2+ 支持客户端字段级加密,敏感数据在客户端加密后存储。
练习提示: 创建一个只读用户,然后尝试使用该用户执行写入操作,观察权限错误。