Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

自管理部署的特权操作

在此页面上

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

特权操作定义用户可以对资源执行的操作。 MongoDB权限资源和允许的操作组成。 此页面列出了按常见目的分组的可用操作。

MongoDB提供内置角色以及预定义的资源和允许的操作对。 有关已授予操作的列表,请参阅自管理部署中的内置角色。 要定义自定义角色,请参阅创建用户定义的角色。

find

用户可执行以下命令和等效的辅助方法:

输出至集合时,mapReduce 命令和 db.collection.mapReduce() 辅助方法的查询部分为必填项。

findAndModify 命令和 db.collection.findAndModify() 辅助方法的查询部分为必填项。

cloneCollectionAsCappedrenameCollection 命令以及 db.collection.renameCollection() 辅助方法的集合为必填项。

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

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

insert

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

输出至集合时,mapReduce 命令和 db.collection.mapReduce() 辅助方法的输出部分为必填项。

使用 $out$merge 管道操作符时,aggregate 命令和 db.collection.aggregate() 辅助方法为必填项。

upsert 选项一起使用时,updatefindAndModify 命令以及等效辅助方法为必填项。

以下命令及其辅助方法的目标集合为必填项:

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

remove

用户可以执行 delete 命令和等效的辅助方法。

findAndModify 命令和 db.collection.findAndModify(){5} 方法的写入部分为必填项。

输出至集合时指定 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 选项的命令和方法,用户可以绕过文档验证。以下命令及其等效方法支持绕过文档验证:

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

useUUID

版本 3.6 中的新增功能

用户可以使用 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

3.6.3版本新增

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

planCacheIndexFilter

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

revokeRole

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

setAuthenticationRestriction

版本 3.6 中的新增功能

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

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

注意

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

作为可传递性,restoreroot 角色也提供此特权。

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

setFeatureCompatibilityVersion

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

unlock

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

viewRole

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

viewUser

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

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

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

changeStream

在特定集合上、特定数据库中的所有非 system 集合上或所有数据库的所有非 system 集合上拥有 changeStreamfind 的用户可以打开该资源的变更流游标

appendOplogNote

用户可以向 oplog 中追加注释。将此操作应用于 cluster 资源。

replSetConfigure

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

replSetGetConfig

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

将此操作应用于 cluster 资源。

replSetGetStatus

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

replSetHeartbeat

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

replSetStateChange

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

resync

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

addShard

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

clearJumboFlag

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

包含在 clusterManager 内置角色中。

enableSharding

注意

适用资源

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

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

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

资源
说明

授予用户执行以下操作的特权:

授予用户执行以下分片区域操作的特权:

如果您对 config 数据库中的相应集合执行 find/update 操作,也可以执行这些分片区域操作。有关详细信息,请参阅特定操作。

refineCollectionShardKey

提供优化分片集合的分片键并运行 refineCollectionShardKey 命令的特权。将此操作应用于数据库集合资源。

包含在 clusterManager 内置角色中。

reshardCollection

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

版本 5.0 中的新增功能

flushRouterConfig

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

getShardMap

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

listShards

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

moveChunk

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

removeShard

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

shardingState

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

applicationMessage

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

closeAllDatabases

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

collMod

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

compact

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

connPoolSync

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

convertToCapped

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

dropConnections

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

dropDatabase

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

dropIndex

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

forceUUID

版本 3.6 中的新增功能

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

将此操作应用于 cluster 资源。

fsync

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

getDefaultRWConcern

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

getParameter

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

hostInfo

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

oidReset

需要重置对象标识符中使用的 5 字节随机字符串。

logRotate

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

reIndex

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

renameCollectionSameDB

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

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

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

rotateCertificates

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

setDefaultRWConcern

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

setParameter

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

shutdown

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

touch

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

impersonate

版本 3.6 中的新增功能

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

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

listSessions

版本 3.6 中的新增功能

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

killAnySession

版本 3.6 中的新增功能

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

提示

另请参阅:

collStats

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

connPoolStats

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

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 命令。将此操作应用于数据库或集合资源。

serverStatus

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

validate

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

top

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

anyAction

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

internal

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

applyOps

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

后退

资源文档