特权动作定义用户可以对资源执行的操作。MongoDB 特权包括 资源和允许的操作。此页面列出了按通用目的分组的可用操作。
MongoDB为内置角色提供了预定义的资源对和允许的操作对。有关授予的操作的列表,请参见 内置角色。要定义自定义角色,请参阅 创建用户定义的角色。
find
¶用户可以执行以下命令及其等效的帮助程序方法:
aggregate
对于所有管道操作 (,和
除外)
。$collStats
$out
$indexStats
checkShardingIndex
count
dataSize
distinct
filemd5
find
geoSearch
getLastError
getMore
killCursors
,前提是光标与当前经过身份验证的用户相关联。listCollections
listIndexes
mapReduce
与选项。{out: inline}
resetError
输出到集合时,mapReduce
命令和
db.collection.mapReduce
辅助方法的查询部分必需。
findAndModify
命令和db.collection.findAndModify
辅助方法的查询部分必需。
和命令以及
辅助方法在源集合上是必需的。cloneCollectionAsCapped
renameCollection
db.collection.renameCollection()
listDatabases
特权操作,listDatabases
则如果命令运行时authorizedDatabases
未指定或设置选项,则用户可以运行该命令以返回该用户具有特权的数据库的列表(包括该用户对其特定集合具有特权的数据库)。
到true
。listDatabases
特权操作,则在命令未指定或设置为的情况下运行listDatabases
命令时,用户可以运行该命令以返回用户对其具有find
操作特权
的数据库的列表
。authorizedDatabases
true
listDatabases
特权操作,则用户可以运行listDatabases
命令以返回该用户对其具有find
操作特权的数据库列表
。将此操作应用于数据库或集合资源。
insert
¶用户可以执行以下命令及其等效方法:
输出到集合时,mapReduce
command and db.collection.mapReduce()
helper方法
的输出部分必需。
使用管道运算符时,aggregate
命令和
db.collection.aggregate()
帮助程序方法
必需$out
。
与和
选项一起使用时,update
以及findAndModify
命令和等效帮助程序方法所必需upsert
。
以下命令及其辅助方法在目标集合上是必需的:
将此操作应用于数据库或集合资源。
remove
¶用户可以执行delete
命令和等效的辅助方法。
findAndModify
命令和db.collection.findAndModify()
方法的写部分必需。
当您指定输出到集合时的操作时,该mapReduce
命令和
db.collection.mapReduce()
辅助方法是必需的。replace
使用管道运算符时,aggregate
命令和
db.collection.aggregate()
帮助程序方法
必需$out
。
将此操作应用于数据库或集合资源。
update
¶用户可以执行update
命令和等效的帮助程序方法。
在
不指定操作的情况下输出到集合时,mapReduce
command and db.collection.mapReduce()
helper方法必需
。replace
findAndModify
命令和
db.collection.findAndModify()
帮助程序方法必需。
将此操作应用于数据库或集合资源。
bypassDocumentValidation
¶3.2版中的新功能。
用户可以绕过支持该选项的命令和方法的文档验证bypassDocumentValidation
。以下命令及其等效方法支持绕过文档验证:
将此操作应用于数据库或集合资源。
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
¶从MongoDB 4.2开始,用户始终可以杀死自己的游标,而不管用户是否具有的权限
killCursors
。因此,该killCursors
特权在MongoDB 4.2+中无效。
在MongoDB 3.6.3到MongoDB 4.0.x中,killCursors
启用访问控制后,用户需要
特权才能杀死自己的Curor。游标创建时,游标与用户相关联。将此操作应用于收集资源。
killAnyCursor
¶版本3.6.3中的新功能。
用户可以杀死任何游标,甚至可以杀死其他用户创建的游标。将此操作应用于收集资源。
revokeRole
¶用户可以从系统中任何数据库的任何用户中删除任何角色。将此操作应用于数据库资源。
setAuthenticationRestriction
¶3.6版的新功能。
运行以下命令时,用户可以
在文档中指定
authenticationRestrictions字段user
:
运行以下命令时,用户可以authenticationRestrictions
在role
文档中指定字段
:
将此操作应用于数据库资源。
unlock
¶用户可以执行该db.fsyncUnlock()
方法。将此操作应用于cluster
资源。
viewRole
¶用户可以查看有关给定数据库中任何角色的信息。将此操作应用于数据库资源。
viewUser
¶用户可以在给定的数据库中查看任何用户的信息。将此操作应用于数据库资源。
authSchemaUpgrade
¶用户可以执行authSchemaUpgrade
命令。将此操作应用于cluster
资源。
cleanupOrphaned
¶用户可以执行cleanupOrphaned
命令。将此操作应用于cluster
资源。
cpuProfiler
¶用户可以启用和使用CPU Profiler。将此操作应用于
cluster
资源。
inprog
¶用户可以使用该db.currentOp()
方法返回有关挂起和活动操作的信息。将此操作应用于cluster
资源。
invalidateUserCache
¶提供对invalidateUserCache
命令的访问。将此操作应用于cluster
资源。
killop
¶用户可以执行该db.killOp()
方法。将此操作应用于cluster
资源。
planCacheRead
¶用户可以执行以下操作:
$planCacheStats
聚集阶段。planCacheListPlans
命令和
PlanCache.getPlansByQuery()
方法。planCacheListQueryShapes
命令和
PlanCache.listQueryShapes()
方法。将此操作应用于数据库或集合资源。
planCacheWrite
¶用户可以执行planCacheClear
命令以及
PlanCache.clear()
和PlanCache.clearPlansByQuery()
方法。将此操作应用于数据库或集合资源。
storageDetails
¶用户可以执行storageDetails
命令。将此操作应用于数据库或集合资源。
changeStream
¶拥有特定集合changeStream
并find
在其上使用的用户,system
特定数据库中的所有非system
集合或所有数据库中的所有非集合都可以为该资源打开更改流游标。
appendOplogNote
¶用户可以在操作日志中添加注释。将此操作应用于
cluster
资源。
replSetConfigure
¶用户可以配置副本集。将此操作应用于cluster
资源。
replSetGetConfig
¶用户可以查看副本集的配置。提供对replSetGetConfig
命令和rs.conf()
辅助方法的访问
。
将此操作应用于cluster
资源。
replSetGetStatus
¶用户可以执行replSetGetStatus
命令。将此操作应用于cluster
资源。
replSetHeartbeat
¶用户可以执行replSetHeartbeat
命令。将此操作应用于cluster
资源。
replSetStateChange
¶用户可以通过改变一个副本集的状态
replSetFreeze
,replSetMaintenance
,
replSetStepDown
,和replSetSyncFrom
命令。将此操作应用于cluster
资源。
resync
¶用户可以执行resync
命令。将此操作应用于cluster
资源。
clearJumboFlag
¶从4.2.3和4.0.15开始可用
使用clearJumboFlag
命令清除块的巨型标志所必需
。将此操作应用于数据库或集合资源。
包含在clusterManager
内置角色中。
enableSharding
¶资源资源 | 描述 |
---|---|
授予用户执行以下操作的权限:
|
|
从版本4.2.2、4.0.14、3.6.16开始
|
授予用户执行以下分区域操作的权限: 如果对数据库中的相应集合执行 |
flushRouterConfig
¶用户可以执行flushRouterConfig
命令。将此操作应用于cluster
资源。
getShardMap
¶用户可以执行getShardMap
命令。将此操作应用于cluster
资源。
getShardVersion
¶用户可以执行getShardVersion
命令。将此操作应用于数据库资源。
listShards
¶用户可以执行listShards
命令。将此操作应用于cluster
资源。
moveChunk
¶用户可以执行moveChunk
命令。此外,movePrimary
如果将特权应用于适当的数据库资源,则用户可以执行命令。将此操作应用于数据库或集合资源。
removeShard
¶用户可以执行removeShard
命令。将此操作应用于cluster
资源。
用户可以执行shardingState
命令。将此操作应用于cluster
资源。
splitChunk
¶用户可以执行splitChunk
命令和
mergeChunks
命令。将此操作应用于数据库或集合资源。
splitVector
¶用户可以执行splitVector
命令。将此操作应用于数据库或集合资源。
applicationMessage
¶用户可以执行logApplicationMessage
命令。将此操作应用于cluster
资源。
closeAllDatabases
¶用户可以执行closeAllDatabases
命令。将此操作应用于cluster
资源。
connPoolSync
¶用户可以执行connPoolSync
命令。将此操作应用于cluster
资源。
convertToCapped
¶用户可以执行convertToCapped
命令。将此操作应用于数据库或集合资源。
dropConnections
¶用户可以执行dropConnections
命令。将此操作应用于cluster
资源。
dropDatabase
¶用户可以执行dropDatabase
命令。将此操作应用于数据库资源。
dropIndex
¶用户可以执行dropIndexes
逗号