mongodb权限有哪些?

MongoDB权限管理基于角色分配,常见角色包括:read(读取)、readWrite(读写)、dbAdmin(数据库管理)、userAdmin(用户管理)、dbOwner(数据库所有者)、root(超级管理员)、clusterAdmin(集群管理)、backup、restore和monitoring等,均通过角色间接赋权,遵循最小权限原则以保障安全。

MongoDB 的权限管理基于角色,通过为用户分配不同角色来控制其对数据库的操作权限。权限不是直接赋予用户的,而是通过角色间接授予。以下是 MongoDB 常见的权限分类和内置角色说明。

数据库级别权限

这些角色适用于特定数据库,控制用户在该数据库中的操作能力:

  • read:允许读取非系统集合的数据,包括查询操作,但不能修改或创建集合。
  • readWrite:在 read 基础上增加写入权限,可执行插入、更新、删除、创建集合等操作。

集群管理权限

用于管理整个 MongoDB 集群或服务器实例:

  • dbAdmin:管理数据库相关操作,如创建集合、索引,查看统计信息等,但不包含用户权限管理。
  • userAdmin:可管理当前数据库的用户和角色,适合用于配置访问控制。
  • dbOwner:数据库所有者角色,组合了 readWrite、dbAdmin 和 userAdmin,拥有该数据库的全部权限。

超级管理员与系统级角色

这些角色权限较高,通常用于运维管理:

  • root:最高权限角色,等同于超级管理员,拥有所有数据库和集群的完整控制权,包括创建用户、备份恢复、关闭服务等。
  • clusterAdmin:管理整个集群,支持分片、副本集操作,以及清理和重配置等高级命令。

备份与监控专用权限

针对运维工具和监控系统设计的角色:

  • backup:允许使用备份工具(如 mongodump)获取数据库快照。
  • restore:用于恢复数据,需配合 --repair 或 mongorestore 使用。
  • monitoring:允许访问性能指标和诊断信息,如 serverStatus、top 等命令。

基本上就这些常见权限类型。实际使用中应遵循最小权限原则,避免随意赋予 root 权限。可以通过自定义角色进一步细化控制,确保系统安全。