温馨提示×

MongoDB配置中的权限管理

小樊
42
2025-09-03 10:44:31
栏目: 云计算

MongoDB权限管理通过**角色(Role)用户(User)**实现,核心操作如下:

  1. 内置角色

    • 数据库级read(只读)、readWrite(可编辑)、dbAdmin(管理索引、统计等)、userAdmin(管理用户权限)。
    • 集群级clusterAdmin(集群管理)、backup/restore(备份恢复)。
    • 超级权限root(拥有所有数据库的最高权限)。
  2. 创建用户并分配权限

    • 普通用户:在目标数据库下创建,指定角色(如readWrite):
      use myDatabase; db.createUser({ user: "myUser", pwd: "password", roles: [{ role: "readWrite", db: "myDatabase" }] }); 
    • 管理员用户:需在admin库创建,角色为rootuserAdminAnyDatabase
  3. 自定义角色

    • 通过db.createRole()定义特定权限(如仅允许对某集合的findinsert操作),再分配给用户。
  4. 权限管理命令

    • 查看用户权限:db.getUser("用户名")
    • 修改权限:db.grantRolesToUser()(添加角色)、db.revokeRolesFromUser()(移除角色)。
  5. 安全最佳实践

    • 最小权限原则:仅授予用户完成任务所需的最低权限。
    • 启用认证:在配置文件中设置security.authorization: enabled,并重启服务。
    • 定期审计:定期检查用户权限,删除冗余账户。
    • 加密连接:使用SSL/TLS保护数据传输。

参考来源

0