《本文档主要翻译自mongodb官方文档Built-In Roles》

https://docs.mongodb.com/manual/core/security-built-in-roles/

 

Mongodb根据数据库的需要,提供了一些不同访问级别的内置角色。在每一个数据库中都存在 database user roles和database administration roles两种角色。admin 数据库包含具有新增用户权限的角色

Database user rolse

每一个数据库都包含以下两种角色

角色

简要描述

read

提供了读取所有非系统集合和system.indexes,system.js,system.namespaces集合的权限

readWrite

包含read的所有权限,并且具有修改非系统集合的权限

Database Administrator Roles

每一个数据库都包含以下数据库管理角色

角色

简要描述

dbAdmin

提供一些创建schema,index等管理型任务的权限,这个角色不能给用户或者角色分配特殊权限

userAdmin

提供给当前数据库创建用户,分配用户权限的功能。由于它有这种特殊的功能,他也能给自己分配一些特殊权限,如果所在的库是admin数据库,此种用户角色就成了超级角色

dbOwner

提供一些管理数据库的功能。这种角色综合了readWrite,dbAdmin和user Admin这些角色的权限

Cluster Administration Roles(集群管理员角色)

admin数据库提供了是一个特殊的数据库,它存储了整个系统管理的信息和功能。这些角色包括但不限于复制和分片集群管理功能。

角色

简要描述

clusterAdmin

具有最大的集群访问权限。这个角色综合 clusterManager,clusterMonitor 和hostManager的功能,并且额外的增加了删除数据库的功能

clusterManager

集群管理角色,能够管理和监视集群中的一些操作,具有这个角色的用户可以访问config和local数据库,分别用于分别和集群复制集的配置

clusterMonitor

集群监控角色,只能访问一些类似MongoDB CloudManager和OpsManager 之类的监控工具

hostManager

管理和监控各个服务实例

Backup and Restoration Roles(备份和恢复角色)

admin数据库提供了备份和恢复数据库的两种角色

角色

简要描述

backup

提供了足够的权限备份数据库,可以运行MongoDB Cloud Manager 备份客户端和Ops Manager备份客户端,或者可以使用mongodump程式

restore

在没有oplogReplay甚至没有system.profile的情况下使用mongorestore恢复数据库

All-Database Roles

admin数据库提供了不管是是单机环境还是集群环境下的针对mongod实例的一些权限

角色

简要描述

readAnyDatabase

提供读取读取权限,或者是集群中所有机器的读取权限。并且提供了列出集群中所有机器的权限

readWriteAnyDatabase

提供了集群中所有机器的读写权限,并且有列出集群所有数据库的权限

userAdminAnyDatabase

在单机环境下,和userAdmin角色的权限一样,但是它可以用在集群中

dbAdminAnyDatabase

单机中和dbAdmin角色功能一样,但是它可以用在集群中,并且增加了列出所有数据库(listDatabases)的功能

Superuser Roles(超级用户角色)

下面角色属于超级用户,对所有资源均有访问权限,具有最高权限

角色

简要描述

root

具有访问数据库所有资源的权限,超级用户