权限操作

在本页面

权限操作定义了用户可以对资源arrow-up-right执行的操作。MongoDB 权限arrow-up-right包括 资源arrow-up-right和允许的操作。此页面列出了按通用目的分组的可用操作。

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

查询和写操作arrow-up-right

  • find

用户可以执行以下命令及其等效的帮助方法:

输出到集合arrow-up-right时,mapReducearrow-up-right命令和 db.collection.mapReducearrow-up-right辅助方法的查询部分是必需的。

findAndModifyarrow-up-right命令行和db.collection.findAndModifyarrow-up-right辅助方法的查询部分是必需的。

cloneCollectionAsCappedarrow-up-rightrenameCollectionarrow-up-right命令行以及db.collection.renameCollection()arrow-up-right辅助方法要求有源集合。

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

用户可以执行updatearrow-up-right命令和等效的帮助方法。

在不指定replace操作的情况下输出到集合arrow-up-right时,mapReducearrow-up-right命令和 db.collection.mapReduce()arrow-up-right辅助方法是必需的 。

findAndModifyarrow-up-right命令和 db.collection.findAndModify()arrow-up-right辅助方法是必需的。

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

  • bypassDocumentValidation

3.2版中的新功能。

用户可以绕过支持bypassDocumentValidation选项的命令和方法的文档验证arrow-up-right。以下命令及其等效方法支持绕过文档验证:

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

  • useUUID

3.6版的新功能。

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

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

复制

有关集合UUID的更多信息,请参见 集合arrow-up-right

将此操作应用于cluster资源。

数据库管理操作arrow-up-right

  • changeCustomData

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

  • changeOwnCustomData

    用户可以更改自己的自定义信息。将此操作应用于数据库资源。另请参阅 更改密码和自定义数据arrow-up-right

  • changeOwnPassword

    用户可以更改自己的密码。将此操作应用于数据库资源。另请参阅 更改密码和自定义数据arrow-up-right

  • changePassword

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

  • createCollection

    用户可以执行db.createCollection()arrow-up-right方法。将此操作应用于数据库或集合资源。

  • createIndex

提供对db.collection.createIndex()arrow-up-right方法和createIndexesarrow-up-right命令的访问。将此操作应用于数据库或集合资源。

  • createRole

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

  • createUser

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

  • dropCollection

用户可以执行该db.collection.drop()arrow-up-right方法。将此操作应用于数据库或集合资源。

  • dropRole

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

  • dropUser

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

  • enableProfiler

用户可以执行db.setProfilingLevel()arrow-up-right方法。将此操作应用于数据库资源。

  • grantRole

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

  • killCursors

    从MongoDB 4.2开始,用户始终可以关闭自己的游标,而不管用户是否具有 killCursorsarrow-up-right的权限。因此,该killCursorsarrow-up-right 权限在MongoDB 4.2+中无效。

    在MongoDB 3.6.3到MongoDB 4.0.x中,killCursorsarrow-up-right启用访问控制后,用户需要权限来关闭自己的游标。游标创建时,游标与用户相关联。将此操作应用于收集资源。

  • killAnyCursor

    版本3.6.3中的新功能。

    用户可以关闭任何游标,甚至可以关闭其他用户创建的游标。将此操作应用于收集资源。

  • revokeRole

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

  • setAuthenticationRestriction

3.6版的新功能。

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

部署管理操作arrow-up-right

  • authSchemaUpgrade

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

  • cleanupOrphaned

    用户可以执行cleanupOrphanedarrow-up-right命令。将此操作应用于cluster资源。

  • cpuProfiler

    用户可以启用和使用CPU分析器。将此操作应用于 cluster资源。

  • inprog

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

    _在版本3.2.9中进行了更改:_即使没有inprogarrow-up-right权限,用户也可以在mongodarrow-up-right实例上通过运行db.currentOp( { "$ownOps": true } )来查看自己的操作。

  • invalidateUserCache

    提供对invalidateUserCachearrow-up-right命令的访问。将此操作应用于cluster资源。

  • killop

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

_在版本3.2.9中进行了更改:_即使没有killoparrow-up-right权限,在 mongodarrow-up-right实例上,用户也可以关闭自己的操作。

  • planCacheRead

用户可以执行以下操作:

用户可以执行planCacheCleararrow-up-right命令以及 PlanCache.clear()arrow-up-rightPlanCache.clearPlansByQuery()arrow-up-right 方法。将此操作应用于数据库或集合资源。

  • storageDetails

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

变更流操作arrow-up-right

  • changeStream

用户在指定集合上使用changeStreamarrow-up-rightfindarrow-up-right上,在指定数据库中的所有非system集合或所有数据库中的所有非system集合都可以为这些资源打开变更流游标arrow-up-right

复制操作arrow-up-right

  • appendOplogNote

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

  • replSetConfigure

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

  • replSetGetConfig

用户可以查看副本集的配置。提供对replSetGetConfigarrow-up-right命令和rs.conf()arrow-up-right辅助方法的访问 。

将此操作应用于cluster资源。

  • replSetGetStatus

    用户可以执行replSetGetStatusarrow-up-right命令。将此操作应用于cluster资源。

  • replSetHeartbeat

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

  • replSetStateChange

用户可以通过 replSetFreezearrow-up-rightreplSetMaintenancearrow-up-rightreplSetStepDownarrow-up-right,和replSetSyncFromarrow-up-right 命令改变一个副本集的状态。将此操作应用于cluster资源。

  • resync

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

分片操作arrow-up-right

  • addShard

用户可以执行addShardarrow-up-right命令。将此操作应用于cluster资源。

  • clearJumboFlag

从4.2.3和4.0.15开始可用

使用clearJumboFlagarrow-up-right命令清除块的巨型标志所必需 。将此操作应用于数据库或集合资源。

包含在clusterManagerarrow-up-right内置角色中。

  • enableSharding

适用资源

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

资源
描述

授予用户执行以下操作的权限:使用以下enableShardingarrow-up-right命令在数据库上启用分片 ,然后使用shardCollectionarrow-up-right 命令对集合进行分片。

群集arrow-up-right从版本4.2.2、4.0.14、3.6.16开始

授予用户执行以下分区域操作的权限:- addShardToZonearrow-up-right - updateZoneKeyRangearrow-up-right - removeShardFromZonearrow-up-right 如果对数据库中的相应集合执行findarrow-up-right/ updatearrow-up-right操作,则还可以执行这些分片区 config操作。有关详细信息,请参见具体操作。

  • flushRouterConfig

用户可以执行flushRouterConfigarrow-up-right命令。将此操作应用于cluster资源。

  • getShardMap

用户可以执行getShardMaparrow-up-right命令。将此操作应用于cluster资源。

用户可以执行moveChunkarrow-up-right命令。此外,如果将权限应用于适当的数据库资源,则用户可以执行movePrimaryarrow-up-right命令。将此操作应用于数据库或集合资源。

  • removeShard

用户可以执行removeShardarrow-up-right命令。将此操作应用于cluster资源。

  • shardingState

用户可以执行shardingStatearrow-up-right命令。将此操作应用于cluster资源。

  • splitChunk

用户可以执行splitChunkarrow-up-right命令和 mergeChunksarrow-up-right命令。将此操作应用于数据库或集合资源。

  • splitVector

用户可以执行splitVectorarrow-up-right命令。将此操作应用于数据库或集合资源。

服务器管理操作arrow-up-right

  • applicationMessage

用户可以执行logApplicationMessagearrow-up-right命令。将此操作应用于cluster资源。

  • closeAllDatabases

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

  • collMod

用户可以执行collModarrow-up-right命令。将此操作应用于数据库或集合资源。

  • compact

用户可以执行compactarrow-up-right命令。将此操作应用于数据库或集合资源。

  • connPoolSync

用户可以执行connPoolSyncarrow-up-right命令。将此操作应用于cluster资源。

  • convertToCapped

用户可以执行convertToCappedarrow-up-right命令。将此操作应用于数据库或集合资源。

  • dropConnections

用户可以执行dropConnectionsarrow-up-right命令。将此操作应用于cluster资源。

  • dropDatabase

用户可以执行dropDatabasearrow-up-right命令。将此操作应用于数据库资源。

  • dropIndex

用户可以执行dropIndexesarrow-up-right命令。将此操作应用于数据库或集合资源。

  • forceUUID

3.6版的新功能。

用户可以使用 applyOpsarrow-up-right命令使用用户定义的集合UUIDarrow-up-right创建集合。

将此操作应用于cluster资源。

  • fsync

用户可以执行fsyncarrow-up-right命令。将此操作应用于cluster资源。

  • getParameter

用户可以执行getParameterarrow-up-right命令。将此操作应用于cluster资源。

  • hostInfo

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

  • logRotate

用户可以执行logRotatearrow-up-right命令。将此操作应用于cluster资源。

  • reIndex

用户可以执行reIndexarrow-up-right命令。将此操作应用于数据库或集合资源。

用户可以执行setParameterarrow-up-right命令。将此操作应用于cluster资源。

  • shutdown

用户可以执行shutdownarrow-up-right命令。将此操作应用于cluster资源。

  • touch

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

会话的操作arrow-up-right

  • impersonate

3.6版的新功能。

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

要运行killAllSessionsByPatternarrow-up-right命令,用户还必须对群集资源具有killAnySessionarrow-up-right权限。

免费的监控操作arrow-up-right

  • checkFreeMonitoringStatus

cluster资源执行此操作的用户可以检查“ 免费监控”arrow-up-right的状态。

4.0版本中的新功能。

  • setFreeMonitoring

cluster资源执行此操作的用户可以启用或禁用“ 免费监控”arrow-up-right

4.0版本中的新功能。

诊断操作arrow-up-right

  • collStats

用户可以执行collStatsarrow-up-right命令。将此操作应用于数据库或集合资源。

  • connPoolStats

用户可以执行connPoolStatsarrow-up-rightshardConnPoolStatsarrow-up-right 命令。将此操作应用于cluster资源。

  • cursorInfo

用户可以执行cursorInfoarrow-up-right命令。将此操作应用于cluster资源。

  • dbHash

用户可以执行dbHasharrow-up-right命令。将此操作应用于数据库或集合资源。

  • dbStats

用户可以执行dbStatsarrow-up-right命令。将此操作应用于数据库资源。

  • getCmdLineOpts

用户可以执行getCmdLineOptsarrow-up-right命令。将此操作应用于cluster资源。

  • getLog

用户可以执行getLogarrow-up-right命令。将此操作应用于cluster资源。

  • indexStats

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

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

  • listDatabases

用户可以执行listDatabasesarrow-up-right命令。将此操作应用于cluster资源。

用户可以执行listCollectionsarrow-up-right命令。将此操作应用于数据库资源。

注意

从4.0版本开始,没有所需权限的用户可以 authorizedCollectionsnameOnly选项都设置为true的情况下运行listCollectionsarrow-up-right命令。在这种情况下,该命令仅返回用户具有特权的集合的名称和类型。

  • listIndexes

用户可以执行listIndexesarrow-up-right命令。将此操作应用于数据库或集合资源。

  • netstat

用户可以执行netstatarrow-up-right命令。将此操作应用于cluster资源。

  • serverStatus

用户可以执行serverStatusarrow-up-right命令。将此操作应用于cluster资源。

  • validate

用户可以执行validatearrow-up-right命令。将此操作应用于数据库或集合资源。

  • top

用户可以执行toparrow-up-right命令。将此操作应用于 cluster资源。

内部操作arrow-up-right

  • anyAction

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

  • internal

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

原文链接:https://docs.mongodb.com/manual/reference/privilege-actions/arrow-up-right

译者:谢伟成

最后更新于