MongoDB自定义用户权限
前言
最近接手运维公司的mongo数据库,虽然之前对mongo有一点点的使用,但真正能够cover公司的mongo,还是有一定的挑战,平时也是边学习边运维。前一阵子对于mongo做了两件事,第一个是实现一个冷备系统,第二个是对mongo权限的收敛,本章主要介绍一下mongo权限(mongo版本3.2),以及如何实现自定义的用户权限。
mongodb用户权限介绍
mongodb用户权限分为内置权限和自定义权限,一般我们使用的read、readWrite、root等,都是系统内置的权限;mongo的用户权限,主要由角色名、适用范围、行为集合构成;下面简单介绍一下:
系统内置权限
类型 | 权限 | 适用库 | 官方简单说明 |
---|---|---|---|
database user roles | read | - | 当前库的只读权限,不包括system集合 |
database user roles | readWrite | - | 读权限之上,加入了modify data的权限,不包括system集合 |
database admin roles | dbAdmin | - | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计,但不会有用户和权限管理的功能 |
database admin roles | dbOwner | - | 在库中可以做任何操作,包括readWrite,dbAdmin,userAdmin |
database admin roles | userAdmin | - | 可以给当前库添加用户和权限 |
cluster admin roles | clusteradmin | admin | 最大的集群管理权限,包括clustermanager、clustermonitor、hostmanager权限以及删除库的权限 |
cluster admin roles | clustermanager | admin | 提供管理和监控集群的权限,包括config、local库 |
cluster admin roles | clustermonitor | admin | 提供只读情况下使用集群监控工具的权限 |
cluster admin roles | hostmanager | admin | 监控和管理servers |
all database roles | readAnyDatab |