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 *集合上必需。

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

  • insert

    • 用户可以执行以下命令及其等效方法:
  • insert

  • create

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

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

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

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

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

  • remove
    • 用户可以执行delete命令和等效的帮助程序方法。

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

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

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

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

  • update
    • 用户可以执行update命令和等效的帮助器方法。

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

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

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

  • bypassDocumentValidation
    • 3.2 版中的新功能。

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

CommandMethod
aggregatedb.collection.aggregate()
applyOps
cloneCollection在“目的地”收藏集上
clone在“目的地” *
copydb在“目的地” *
findAndModifydb.collection.findAndModify()
insert
mapReducedb.collection.mapReduce()
update

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

  • useUUID
    • 3.6 版的新功能。

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

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

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

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

将此操作应用于cluster资源。

数据库 Management 操作

  • changeCustomData

    • 用户可以更改给定数据库中任何用户的自定义信息。将此操作应用于数据库资源。
  • changeOwnCustomData

  • changeOwnPassword

  • changePassword

    • 用户可以更改给定数据库中任何用户的密码。将此操作应用于数据库资源。
  • createCollection

  • createIndex

  • createRole

    • 用户可以在给定的数据库中创建新角色。将此操作应用于数据库资源。
  • createUser

    • 用户可以在给定的数据库中创建新用户。将此操作应用于数据库资源。
  • dropCollection

  • dropRole

    • 用户可以从给定的数据库中删除任何角色。将此操作应用于数据库资源。
  • dropUser

    • 用户可以从给定数据库中删除任何用户。将此操作应用于数据库资源。
  • enableProfiler

  • grantRole

    • 用户可以将数据库中的任何角色从系统中的任何数据库授予任何用户。将此操作应用于数据库资源。
  • killCursors

    • 用户可以杀死与它们关联的游标。游标与创建游标时已通过身份验证的用户相关联。将此操作应用于收集资源。
  • killAnyCursor

    • 版本 3.6.3 中的新功能。

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

  • revokeRole

    • 用户可以从系统中任何数据库的任何用户中删除任何角色。将此操作应用于数据库资源。
  • setAuthenticationRestriction

    • 3.6 版的新功能。

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

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

Note

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

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

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

  • unlock

    • 用户可以执行db.fsyncUnlock()方法。将此操作应用于cluster资源。
  • viewRole

    • 用户可以查看有关给定数据库中任何角色的信息。将此操作应用于数据库资源。
  • viewUser

    • 用户可以在给定的数据库中查看任何用户的信息。将此操作应用于数据库资源。

部署 Management 操作

  • authSchemaUpgrade

  • cleanupOrphaned

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

    • 用户可以启用和使用 CPU Profiler。将此操作应用于cluster资源。
  • inprog

    • 用户可以使用db.currentOp()方法来返回有关挂起和活动操作的信息。将此操作应用于cluster资源。

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

  • invalidateUserCache

  • killop

    • 用户可以执行db.killOp()方法。将此操作应用于cluster资源。

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

更改流操作

Replication Actions

  • appendOplogNote

    • 用户可以在操作日志中添加 Comments。将此操作应用于cluster资源。
  • replSetConfigure

    • 用户可以配置副本集。将此操作应用于cluster资源。
  • replSetGetConfig

将此操作应用于cluster资源。

  • replSetGetStatus

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

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

  • resync

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

Sharding Actions

  • addShard

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

enableSharding

Applicable Resources

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

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

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

ResourcesDescription
Database or

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

  • getShardMap

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

    • 用户可以执行getShardVersion命令。将此操作应用于数据库资源。
  • listShards

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

    • 用户可以执行moveChunk命令。此外,如果将特权应用于适当的数据库资源,则用户可以执行movePrimary命令。将此操作应用于数据库或集合资源。
  • removeShard

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

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

    • 用户可以执行splitChunk命令和mergeChunks命令。将此操作应用于数据库或集合资源。
  • splitVector

    • 用户可以执行splitVector命令。将此操作应用于数据库或集合资源。

服务器 Management 操作

  • applicationMessage

  • closeAllDatabases

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

    • 用户可以执行collMod命令。将此操作应用于数据库或集合资源。
  • compact

    • 用户可以执行compact命令。将此操作应用于数据库或集合资源。
  • connPoolSync

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

    • 用户可以执行convertToCapped命令。将此操作应用于数据库或集合资源。
  • dropDatabase

    • 用户可以执行dropDatabase命令。将此操作应用于数据库资源。
  • dropIndex

    • 用户可以执行dropIndexes命令。将此操作应用于数据库或集合资源。
  • forceUUID

    • 3.6 版的新功能。

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

将此操作应用于cluster资源。

  • fsync

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

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

    • 提供有关运行 MongoDB 实例的服务器的信息。将此操作应用于cluster资源。
  • logRotate

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

    • 用户可以执行reIndex命令。将此操作应用于数据库或集合资源。
  • renameCollectionSameDB

    • 允许用户使用renameCollection命令在当前数据库上重命名集合。将此操作应用于数据库资源。

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

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

  • repairDatabase

    • 用户可以执行repairDatabase命令。将此操作应用于数据库资源。
  • setParameter

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

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

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

Session Actions

  • impersonate
    • 3.6 版的新功能。

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

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

  • listSessions
    • 3.6 版的新功能。

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

  • killAnySession
    • 3.6 版的新功能。

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

See also

Diagnostic Actions

  • collStats

    • 用户可以执行collStats命令。将此操作应用于数据库或集合资源。
  • connPoolStats

  • cursorInfo

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

    • 用户可以执行dbHash命令。将此操作应用于数据库或集合资源。
  • dbStats

    • 用户可以执行dbStats命令。将此操作应用于数据库资源。
  • getCmdLineOpts

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

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

    • 用户可以执行indexStats命令。将此操作应用于数据库或集合资源。

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

  • listDatabases

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

    • 用户可以执行listCollections命令。将此操作应用于数据库资源。
  • listIndexes

    • 用户可以执行listIndexes命令。将此操作应用于数据库或集合资源。
  • netstat

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

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

    • 用户可以执行validate命令。将此操作应用于数据库或集合资源。
  • top

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

Internal Actions

  • anyAction

    • 允许对资源执行任何操作。 **除非绝对必要,否则请不要分配此操作。
  • internal

    • 允许内部动作。 **除非绝对必要,否则请不要分配此操作。