Privilege Actions

2.6 版的新功能。

在本页面

特权动作定义了用户可以对resource执行的操作。 MongoDB privilege包含resource和允许的操作。此页面列出了按通用目的分组的可用操作。

MongoDB 为内置角色提供了 sched 义的资源对和允许的操作对。有关授予的操作的列表,请参见Built-In Roles。要定义自定义角色,请参见创建用户定义的角色

查询和写入操作

输出到集合时,对于mapReduce命令和db.collection.mapReduce helper 方法的查询部分是必需的。

findAndModify命令和db.collection.findAndModify helper 方法的查询部分必需。

cloneCollectionAsCappedrenameCollection命令以及db.collection.renameCollection() helper 方法的* source *集合上必需。

将此操作应用于数据库或集合资源。

输出到集合时,对于mapReduce命令和db.collection.mapReduce() helper 方法的输出部分是必需的。

使用$out管道运算符时,aggregate命令和db.collection.aggregate()帮助器方法必需。

upsert选项一起使用时,updatefindAndModify命令以及等效的帮助程序方法必需。

以下命令及其辅助方法在* destination *集合上是必需的:

将此操作应用于数据库或集合资源。

findAndModify命令和db.collection.findAndModify()方法的写部分必需。

输出到集合时指定replace动作时,mapReduce命令和db.collection.mapReduce()帮助器方法必需。

使用$out管道运算符时,aggregate命令和db.collection.aggregate()帮助器方法必需。

将此操作应用于数据库或集合资源。

输出到集合时,如果不指定replace操作,则mapReduce命令和db.collection.mapReduce()帮助器方法必需。

findAndModify命令和db.collection.findAndModify()帮助器方法必需。

将此操作应用于数据库或集合资源。

用户可以在支持bypassDocumentValidation选项的命令和方法上绕过document validation

Command Method
aggregate db.collection.aggregate()
applyOps
cloneCollection在“目的地”收藏集上
clone在“目的地” *
copydb在“目的地” *
findAndModify db.collection.findAndModify()
insert
mapReduce db.collection.mapReduce()
update

将此操作应用于数据库或集合资源。

用户可以使用 UUID 来执行以下命令,就像它是名称空间一样:

例如,此特权授权用户运行以下命令,该命令对具有给定 UUID 的集合执行find命令。为了获得成功,此操作还需要授权用户在与给定 UUID 对应的集合名称空间上执行find命令。

db.runCommand({find: UUID("123e4567-e89b-12d3-a456-426655440000")})

有关集合 UUID 的更多信息,请参见Collections

将此操作应用于cluster资源。

数据库 Management 操作

用户可以杀死任何游标,而无论其与游标的关联如何。将此操作应用于收集资源。

运行以下命令时,用户可以在user文档中指定authenticationRestrictions字段:

运行以下命令时,用户可以在role文档中指定authenticationRestrictions字段:

Note

以下内置角色授予此特权:

可传递地,restoreroot角色也提供此特权。

将此操作应用于数据库资源。

部署 Management 操作

在版本 3.2.9 中更改:即使没有inprog特权,在mongod实例上,用户也可以通过运行db.currentOp( { "$ownOps": true } )来查看自己的操作。

在版本 3.2.9 中更改:即使没有killop特权,在mongod实例上,用户也可以终止自己的操作。

更改流操作

Replication Actions

将此操作应用于cluster资源。

Sharding Actions

enableSharding

Applicable Resources

该操作可以应用于以下任一情况:

  • Databasecollection资源以为数据库启用分片或对集合进行分片。

  • Cluster资源以执行各种分片区操作(从版本 3.6.16 开始)。

Resources Description
Database or

Collection
授予用户执行以下操作的权限:
使用enableSharding命令在数据库上启用分片,然后
使用shardCollection命令对集合进行分片。
Cluster
从版本 3.6.16 开始
授予用户执行以下分片区操作的权限:
addShardToZone
updateZoneKeyRange
removeShardFromZone
如果对config数据库中的适当集合具有find/update操作,则也可以执行这些分片区操作。有关详细信息,请参见具体操作。

服务器 Management 操作

用户可以使用applyOps命令使用用户定义的collection UUID创建集合。

将此操作应用于cluster资源。

此外,用户必须在源集合上具有 find或在目标集合上没有 find

如果已经存在使用新名称的集合,则用户还必须对目标集合执行dropCollection操作。

Session Actions

用户可以使用usersroles模式执行killAllSessionsByPattern命令。将此操作应用于cluster资源。

要运行killAllSessionsByPattern命令,用户还必须对群集资源具有killAnySession特权。

用户可以对所有用户或指定用户执行$listSessions操作或$listLocalSessions操作。将此操作应用于cluster资源。

用户可以执行killAllSessionskillAllSessionsByPattern命令。将此操作应用于cluster资源。

See also

impersonate

Diagnostic Actions

在版本 3.0 中进行了更改:MongoDB 3.0 删除了indexStats命令。

Internal Actions

首页