以下是CentOS上MongoDB权限管理的最佳实践:
- 启用身份验证
编辑/etc/mongod.conf,设置security.authorization: enabled,重启服务生效。 - 创建管理员账户
切换至admin数据库,使用db.createUser()创建具有root角色的超级管理员,设置强密码。 - 最小权限原则分配角色
- 普通用户按需分配
read、readWrite、dbAdmin等内置角色,限定数据库范围。 - 避免直接使用
root角色,优先通过组合内置角色满足需求。
- 普通用户按需分配
- 自定义角色(高级场景)
通过db.createRole()定义包含特定权限(如集合级操作)的角色,支持继承和权限组合。 - 权限验证与维护
- 使用
db.getUser()查看用户权限,db.grantRolesToUser()/db.revokeRolesFromUser()动态调整权限。 - 定期审计用户权限,删除冗余账户,更新密码策略。
- 使用
- 安全增强措施
- 启用SSL/TLS加密通信,配置防火墙限制端口访问(默认27017)。
- 禁止默认空密码账户,删除非必要的默认用户(如
__system)。
参考来源: