MongoDB 安全实践
配置身份验证、授权、加密和审计保障数据库安全。 · 难度:入门 · +15XP
安全基础
MongoDB 安全包括:身份验证(Authentication)、授权(Authorization)、传输加密(TLS)和静态加密。
启用身份验证
在 mongod 配置文件中添加:
security:
authorization: enabled创建管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "securePassword",
roles: ["root"]
});角色与权限
| 角色 | 权限 |
|---|---|
| read | 读取非系统集合 |
| readWrite | 读写非系统集合 |
| dbAdmin | 管理数据库(索引、模式等) |
| clusterAdmin | 管理集群(分片、复制集等) |
传输加密 (TLS)
使用自签名证书或CA证书启用 TLS:
mongod --tlsMode requireTLS --tlsCertificateKeyFile /path/to/server.pem其他安全措施
- 使用 SCRAM 或 LDAP 认证
- 启用审计日志
auditLog: { destination: 'file', format: 'JSON' } - 限制网络暴露(绑定 IP、使用防火墙)
练习提示
启动一个启用了身份验证的 MongoDB 实例,创建只读用户和读写用户,测试不同权限。