文档菜单
文档首页
/
MongoDB 手册
/ / /

自管理部署的权限操作

本页内容

  • 查询和写入操作
  • 数据库管理操作
  • 部署管理操作
  • 更改流操作
  • 复制操作
  • 分片操作
  • 服务器管理操作
  • 会话操作
  • Atlas 搜索索引操作
  • 诊断操作
  • 内部操作

权限操作定义了用户可以对资源执行的运算。MongoDB 的权限资源和允许的操作组成。本页列出了按常见用途分组的行为。

MongoDB提供了内置角色,这些角色具有预先定义的资源与允许的操作配对。有关授权操作列表,请参阅自托管部署中的内置角色。要定义自定义角色,请参阅创建用户定义角色

find

用户可以执行以下命令,以及它们等价的辅助方法

是执行mapReduce命令和db.collection.mapReduce()辅助方法时输出到集合部分的必需项。

是执行findAndModify命令和db.collection.findAndModify()辅助方法时的必需项。

cloneCollectionAsCappedrenameCollection命令以及db.collection.renameCollection()辅助方法在源集合上的必需项。

如果用户没有listDatabases权限操作,用户可以运行listDatabases命令以返回用户有权限的数据库列表(包括用户有特定集合权限的数据库),如果命令运行时未指定或设置为authorizedDatabases选项为true

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

insert

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

是执行mapReduce命令和db.collection.mapReduce()辅助方法时输出到集合部分的必需项。

在使用aggregate命令和db.collection.aggregate()辅助方法时,当使用$out$merge管道操作符时需要。

当与upsert选项一起使用时,需要updatefindAndModify命令及其等效辅助方法。

以下命令及其辅助方法需要在目标集合上使用:

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

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

用户可以在支持 bypassDocumentValidation 选项的命令和方法上绕过文档验证。以下命令及其等效方法支持绕过文档验证

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

useUUID

用户可以使用以下命令UUID 作为命名空间

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

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

有关集合UUID的更多信息,请参阅集合。

将此操作应用于cluster资源。

changeCustomData

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

changeOwnCustomData

用户可以更改自己的自定义信息。将此操作应用于数据库资源。另请参阅在自托管部署上更改密码和自定义数据。

changeOwnPassword

用户可以更改自己的密码。将此操作应用于数据库资源。另请参阅在自托管部署上更改密码和自定义数据。

changePassword

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

createCollection

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

createIndex

提供对 db.collection.createIndex() 方法以及 createIndexes 命令的访问权限。将此操作应用于数据库或集合资源。

createRole

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

createUser

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

dropCollection

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

dropRole

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

dropUser

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

enableProfiler

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

grantRole

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

killCursors

用户可以随时终止自己的游标,无论用户是否有killCursors的权限。

killAnyCursor

用户可以终止任何游标,包括其他用户创建的游标。将此操作应用于集合资源。

planCacheIndexFilter

用户可以运行 planCacheClearFiltersplanCacheListFiltersplanCacheSetFilter 命令。将 planCacheIndexFilter 动作应用于集合资源。

querySettings

用户可以运行 setQuerySettingsremoveQuerySettings 命令,并将 $querySettings 阶段添加到聚合管道中。

新功能版本8.0.

revokeRole

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

setAuthenticationRestriction

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

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

注意

以下内置角色授予此权限

间接地,restoreroot 角色也提供此权限。

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

setFeatureCompatibilityVersion

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

解锁

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

查看角色

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

查看用户

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

authSchemaUpgrade

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

cleanupOrphaned

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

cpuProfiler

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

inprog

用户可以使用db.currentOp()方法来返回挂起和正在进行的操作的信息。将此操作应用于cluster资源。

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

invalidateUserCache

提供对invalidateUserCache命令的访问。将此操作应用于cluster资源。

killop

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

即使在没有 killop 权限的情况下,用户在 mongod 实例上也可以终止自己的操作。

planCacheRead

用户可以运行以下操作

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

planCacheWrite

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

storageDetails

已弃用 7.0 版本: 数据库中已移除 storageDetails 操作。

changeStream

具有 changeStreamfind 的用户可以在特定集合、特定数据库中的所有非 system 集合,或所有数据库中的所有非 system 集合上打开该资源的 change stream 游标

appendOplogNote

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

replSetConfigure

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

replSetGetConfig

用户可以查看副本集的配置。提供对 replSetGetConfig 命令和 rs.conf() 辅助方法的访问权限。

将此操作应用于cluster资源。

replSetGetStatus

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

replSetHeartbeat

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

replSetStateChange

用户可以通过 replSetFreezereplSetMaintenancereplSetStepDownreplSetSyncFrom 命令来更改副本集的状态。将此操作应用于 cluster 资源。

resync

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

addShard

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

checkMetadataConsistency

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

新功能版本7.0.

clearJumboFlag

需要使用 clearJumboFlag 命令来清除数据块的大块标志。将此操作应用于数据库或集合资源。

包含在clusterManager 内置角色中。

enableSharding

注意

适用资源

此操作可以应用于以下资源

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

  • 集群 资源以执行各种分片区域操作。

资源
描述

授予用户以下操作的权限

授予用户以下分片区域操作的权限

如果您在 config 数据库中适当的集合上具有 find/update 操作,也可以执行这些分片区域操作。有关详细信息,请参阅具体操作。

refineCollectionShardKey

为分片集合精炼分片键提供权限,并运行refineCollectionShardKey命令。将此操作应用于数据库集合资源。

包含在clusterManager 内置角色中。

reshardCollection

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

新功能版本5.0.

flushRouterConfig

用户可以执行flushRouterConfig命令。将此操作应用于集群资源。

getShardMap

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

listShards

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

moveChunk

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

removeShard

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

shardedDataDistribution

用户可以执行 $shardedDataDistribution 聚合管道阶段。

新功能版本6.0.3.

shardingState

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

transitionFromDedicatedConfigServer

具有对 cluster 资源此操作的用戶可以运行 transitionFromDedicatedConfigServer 命令。

新功能版本8.0.

transitionToDedicatedConfigServer

集群 资源上拥有此操作的 transitionToDedicatedConfigServer 命令可以运行。

新功能版本8.0.

applicationMessage

用户可以执行 logApplicationMessage 命令。将此操作应用于 集群 资源。

bypassWriteBlockingMode

用户即使写入被 setUserWriteBlockMode 命令阻塞时也可以执行写入操作。将此操作应用于 cluster 资源。

bypassDefaultMaxTimeMS

用户运行的所有查询都将忽略 defaultMaxTimeMS 的值。

closeAllDatabases

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

collMod

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

compact

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

compactStructuredEncryptionData

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

connPoolSync

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

convertToCapped

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

dropConnections

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

dropDatabase

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

dropIndex

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

forceUUID

用户可以使用 applyOps 命令创建一个具有用户定义的 集合 UUID 的集合。

将此操作应用于cluster资源。

fsync

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

getDefaultRWConcern

用户可以发出管理性 getDefaultRWConcern 命令。将此操作应用于 cluster 资源。

getParameter

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

hostInfo

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

oidReset

必须重置用于ObjectID的5字节随机字符串。

logRotate

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

reIndex

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

renameCollectionSameDB

允许用户使用 renameCollection 命令重命名当前数据库中的集合。将该操作应用于数据库资源。

此外,用户必须对源集合有 查询 权限或者对目标集合没有 查询 权限。

如果新名称的集合已存在,则用户还必须在目标集合上拥有 dropCollection 操作权限。

rotateCertificates

用户可以执行 rotateCertificates 命令。将此操作应用于 集群 资源。

setDefaultRWConcern

用户可以发出管理命令 setDefaultRWConcern。将此操作应用于 集群 资源。

setParameter

用户可以执行 setParameter 命令。将此操作应用于 集群 资源。

setUserWriteBlockMode

用户可以执行 setUserWriteBlockMode 命令。将此操作应用于 集群 资源。

shutdown

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

touch

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

impersonate

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

要运行 killAllSessionsByPattern 命令,用户还必须在集群资源上拥有 killAnySession 权限。

listSessions

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

killAnySession

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

提示

另请参阅

以下操作允许用户运行 Atlas 搜索数据库命令。这些操作仅适用于托管在 MongoDB Atlas 上的部署。

createSearchIndexes

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

dropSearchIndex

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

listSearchIndexes

用户可以运行 $listSearchIndexes 聚合阶段。将此操作应用于数据库或集合资源。

updateSearchIndex

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

collStats

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

connPoolStats

用户可以执行 connPoolStats 命令。将此操作应用于 集群 资源。

dbHash

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

dbStats

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

getCmdLineOpts

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

getLog

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

indexStats

用户可以运行 $indexStats 聚合管道阶段。将此操作应用于数据库或集合资源。

要使用 $indexStats 阶段,用户必须至少具有 clusterMonitor 角色的认证。

listDatabases

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

如果用户没有 listDatabases 权限操作,则用户可以运行 listDatabases 命令以返回用户具有权限的数据库列表(包括用户具有特定集合权限的数据库),如果命令与 authorizedDatabases 选项未指定或设置为 true 运行。

listCollections

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

注意

没有所需权限的用户可以使用 listCollections 命令,并将 authorizedCollectionsnameOnly 选项都设置为 true。在这种情况下,命令仅返回用户有权限的集合的名称和类型。

listIndexes

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

queryStatsRead

用户可以运行不带 transformIdentifiers 选项的 $queryStats 聚合阶段。

queryStatsReadTransformed

用户可以使用带有或不带有 transformIdentifiers 选项的 $queryStats 聚合阶段。

serverStatus

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

validate

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

top

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

anyAction

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

内部

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

applyOps

用户可以执行 applyOps 命令。将此操作应用于 集群 资源。

返回

资源文档