Built-In Roles

在本页面

MongoDB 提供了内置角色,可提供数据库系统中通常所需的不同访问级别。 每个数据库中都存在内置的数据库用户角色数据库 Management 角色角色。 admin数据库包含其他角色。

此页面简要介绍了内置角色。有关每个角色授予的特定特权,请参见Built-In Roles参考页。

数据库用户角色

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

RoleShort Description
read提供读取所有* non *系统集合以及以下系统集合上的数据的能力:system.indexessystem.jssystem.namespaces集合。


有关角色授予的特定特权,请参见read
| readWrite |提供read角色的所有特权以及修改所有* non *系统集合和system.js集合上的数据的能力。
有关角色授予的特定特权,请参见readWrite

数据库 Management 角色

每个数据库都包含以下数据库 Management 角色:

RoleShort Description
dbAdmin提供执行 Management 任务的能力,例如与架构相关的任务,构建索引,收集统计信息。该角色不授予用户和角色 Management 特权。


有关角色授予的特定特权,请参见dbAdmin
| dbOwner |提供了对数据库执行任何 Management 操作的能力。该角色结合了readWritedbAdminuserAdmin角色授予的特权。
| userAdmin |提供了在当前数据库上创建和修改角色和用户的能力。由于userAdmin角色允许用户向任何用户(包括他们自己)授予任何特权,因此该角色还间接提供对数据库或群集(如果作用域为admin数据库)的superuser访问。
有关角色授予的特定特权,请参见userAdmin

群集 Management 角色

admin数据库包括以下角色,用于 Management 整个系统而不是特定的数据库。这些角色包括但不限于replica setsharded clusterManagement 职能。

RoleShort Description
clusterAdmin提供最大的群集 Management 访问。该角色结合了clusterManagerclusterMonitorhostManager角色授予的特权。此外,该角色提供dropDatabase动作。
clusterManager提供对集群的 Management 和监视操作。具有此角色的用户可以访问分别用于分片和复制的configlocal数据库。


有关角色授予的特定特权,请参见clusterManager
| clusterMonitor |提供对监视工具(例如MongoDB 云 Management 器Ops Manager监视代理程序)的只读访问权限。
有关角色授予的特定特权,请参见clusterMonitor
| hostManager |提供监视和 Management 服务器的能力。
有关角色授予的特定特权,请参见hostManager

备份和还原角色

admin数据库包括以下角色,用于备份和还原数据:

RoleShort Description
backup提供备份数据所需的特权。此角色提供足够的特权来使用MongoDB 云 Management 器备份代理,Ops Manager备份代理或使用mongodump


有关角色授予的特定特权,请参见backup
| restore |提供使用mongorestore而不使用--oplogReplay选项或不使用system.profile收集数据来恢复数据所需的特权。
有关角色授予的特定特权,请参见restore

All-Database Roles

在版本 3.4 中更改。

admin数据库中的这些角色适用于mongod实例中除localconfig数据库之外的所有数据库:

RoleShort Description
readAnyDatabase提供与read相同的只读权限,除了它适用于群集中localconfig以外的所有数据库。该角色还对整个群集提供listDatabases操作。


有关角色授予的特定特权,请参见readAnyDatabase
在版本 3.4 中更改:在 3.4 之前,readAnyDatabase包括localconfig数据库。要在local数据库上提供read特权,请在admin数据库中创建一个用户,该用户在local数据库中具有read角色。另请参见clusterManager角色以访问configlocal数据库。
| readWriteAnyDatabase |提供与readWrite相同的读写权限,除了它适用于群集中localconfig以外的所有数据库。该角色还对整个群集提供listDatabases操作。
有关角色授予的特定特权,请参见readWriteAnyDatabase
在版本 3.4 中更改:在 3.4 之前,readWriteAnyDatabase包括localconfig数据库。要在local数据库上提供readWrite特权,请在admin数据库中创建一个用户,该用户在local数据库中具有readWrite角色。另请参见clusterManager角色以访问configlocal数据库。
| userAdminAnyDatabase |提供与userAdmin相同的用户 Management 操作访问权限,但它适用于集群中localconfig数据库以外的所有数据库。
由于userAdminAnyDatabase角色允许用户向任何用户(包括他们自己)授予任何特权,因此该角色还间接提供superuser访问权限。
有关角色授予的特定特权,请参见userAdminAnyDatabase
在版本 3.4 中进行了更改:在 3.4 之前,userAdminAnyDatabase包括localconfig数据库。
| dbAdminAnyDatabase |提供与dbAdmin相同的数据库 Management 操作访问权限,但它适用于群集中除localconfig以外的所有数据库。该角色还对整个群集提供listDatabases操作。
有关角色授予的特定特权,请参见dbAdminAnyDatabase
在版本 3.4 中更改:在 3.4 之前,dbAdminAnyDatabase包括localconfig数据库。要在local数据库上提供dbAdmin特权,请在admin数据库中创建一个用户,该用户在local数据库中具有dbAdmin角色。另请参见clusterManager角色以访问configlocal数据库。

Superuser Roles

以下角色提供对所有资源的完整特权:

RoleShort Description
root提供对readWriteAnyDatabasedbAdminAnyDatabaseuserAdminAnyDatabaseclusterAdminrestorebackup * combined *的操作和所有资源的访问。


有关角色授予的特定特权,请参见root

Internal Role

RoleShort Description
__system提供特权以对数据库中的任何对象执行任何操作。


**除非特殊情况,否则请勿将此角色分配给代表应用程序或人工 Management 员的用户对象。
有关更多信息,请参见root