MongoDB内置角色详解(自官方文档)

1 数据库用户角色

每个数据库都包含下列的角色:

read : 提供读取所有的非系统集合的能力,也能读取以下系统集合:system.indexes,system.js,system.namespaces
readWrite:提供所有读权限另外还能修改非系统集合和system.js集合

2 数据库管理角色

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

dbAdmin:提供执行管理任务的能力,比如schema相关的任务,索引和聚合分析。这个角色不能对用户和角色做授权管理
dbOwner:数据库拥有者可以在数据库上执行任何管理动作,这个角色组合了readWrite,dbAdmin,userAdmin角色的特权
userAdmin:在当前数据库中创建和修改角色和用户的能力,userAdmin角色允许用户授予任何特权给任何用户,包括他们自己,此角色还可以直接提供superuser 访问任何数据库,甚至是admin数据库,集群。
 

3  集群管理角色

admin数据库包括下列角色来管理整个系统而不仅仅是单个数据库,这些角色包括但不限于副本集和分片集群管理功能

clusterAdmin:提供最大的机器管理访问权限,此角色组合了clusterManager,clusterMonitor和hostManager角色,另外此角色还提供dropDatabase动作
clusterManager:在机器上能进行管理和监控动作。拥有此角色的用户可以访问config和local数据库,它们分别用于分片和副本集
clusterMonitor:为监控工具提供只读权限,比如MongoDB cloud manager 和ops manager 监控代理
hostManager:提供监控和管理服务器的能力
 

4 备份和恢复角色

admin数据库包含下列角色用来备份和恢复数据

backup:提供最小的备份数据的权限,该角色提供了足够的权限用于:MongoDB cloud manager 备份代理、ops manager 备份代理或者用于mongodump备份整个mongod实例
restore:提供权限用来从备份恢复数据,但是不包括system.profile集合数据。此角色提供了足够的权限用于使用不带--oplogReplay选项的mongorestore恢复数据
 

5 所有数据库角色

下列角色在admin数据库上都可获取到,并能应用于所有数据库除了local和config

readAnyDatabase:在所有的数据库上提供和read特权一样只读的权限,除了local和config
readWriteAnyDatabase:在所有的数据库桑提供和readWrite一样的权限,除了local和config
userAdminAnyDatabase:在所有的数据库桑提供和userAdmin一样的权限,除了local和config
dbAdminAnyDatabase:在所有的数据库桑提供和dbAdmin一样的权限,除了local和config,此角色还能在集群上执行listDatabases命令
 

6 超级用户角色

root:提供readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, restore, backup角色的组合权限
 

7 内部角色

__system:提供对数据库中任何对象采取任何操作的特权。

参考 官方文档
 

posted @ 2018-12-28 13:41  DBA社区  阅读(352)  评论(0编辑  收藏  举报