On this page
Privilege Actions
2.6 版的新功能。
在本页面
特权动作定义了用户可以对resource执行的操作。 MongoDB privilege包含resource和允许的操作。此页面列出了按通用目的分组的可用操作。
MongoDB 为内置角色提供了 sched 义的资源对和允许的操作对。有关授予的操作的列表,请参见Built-In Roles。要定义自定义角色,请参见创建用户定义的角色。
查询和写入操作
find
- 用户可以执行以下命令及其等效的帮助程序方法:
aggregate代表所有pipeline operations **** $collStats,$out和$indexStats除外。
killCursors,前提是光标与当前经过身份验证的用户相关联。
mapReduce和
{out: inline}
选项。
输出到集合时,对于mapReduce命令和db.collection.mapReduce helper 方法的查询部分是必需的。
findAndModify命令和db.collection.findAndModify helper 方法的查询部分必需。
cloneCollectionAsCapped和renameCollection命令以及db.collection.renameCollection() helper 方法的* source *集合上必需。
将此操作应用于数据库或集合资源。
输出到集合时,对于mapReduce命令和db.collection.mapReduce() helper 方法的输出部分是必需的。
使用$out管道运算符时,aggregate命令和db.collection.aggregate()帮助器方法必需。
与upsert
选项一起使用时,update和findAndModify命令以及等效的帮助程序方法必需。
以下命令及其辅助方法在* 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:
Command | Method |
---|---|
aggregate | db.collection.aggregate() |
applyOps | |
cloneCollection在“目的地”收藏集上 | |
clone在“目的地” * | |
copydb在“目的地” * | |
findAndModify | db.collection.findAndModify() |
insert | |
mapReduce | db.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
- 用户可以执行db.createCollection()方法。将此操作应用于数据库或集合资源。
createIndex
- 提供对db.collection.createIndex()方法和createIndexes命令的访问。将此操作应用于数据库或集合资源。
createRole
- 用户可以在给定的数据库中创建新角色。将此操作应用于数据库资源。
createUser
- 用户可以在给定的数据库中创建新用户。将此操作应用于数据库资源。
dropCollection
- 用户可以执行db.collection.drop()方法。将此操作应用于数据库或集合资源。
dropRole
- 用户可以从给定的数据库中删除任何角色。将此操作应用于数据库资源。
dropUser
- 用户可以从给定数据库中删除任何用户。将此操作应用于数据库资源。
enableProfiler
- 用户可以执行db.setProfilingLevel()方法。将此操作应用于数据库资源。
grantRole
- 用户可以将数据库中的任何角色从系统中的任何数据库授予任何用户。将此操作应用于数据库资源。
killCursors
- 用户可以杀死与它们关联的游标。游标与创建游标时已通过身份验证的用户相关联。将此操作应用于收集资源。
killAnyCursor
- 版本 3.6.3 中的新功能。
用户可以杀死任何游标,而无论其与游标的关联如何。将此操作应用于收集资源。
revokeRole
- 用户可以从系统中任何数据库的任何用户中删除任何角色。将此操作应用于数据库资源。
setAuthenticationRestriction
- 3.6 版的新功能。
运行以下命令时,用户可以在user
文档中指定authenticationRestrictions字段:
运行以下命令时,用户可以在role
文档中指定authenticationRestrictions
字段:
Note
以下内置角色授予此特权:
userAdmin角色在分配了该角色的数据库上提供此特权。
userAdminAnyDatabase角色在所有数据库上提供此特权。
将此操作应用于数据库资源。
unlock
- 用户可以执行db.fsyncUnlock()方法。将此操作应用于
cluster
资源。
- 用户可以执行db.fsyncUnlock()方法。将此操作应用于
viewRole
- 用户可以查看有关给定数据库中任何角色的信息。将此操作应用于数据库资源。
viewUser
- 用户可以在给定的数据库中查看任何用户的信息。将此操作应用于数据库资源。
部署 Management 操作
authSchemaUpgrade
- 用户可以执行authSchemaUpgrade命令。将此操作应用于
cluster
资源。
- 用户可以执行authSchemaUpgrade命令。将此操作应用于
cleanupOrphaned
- 用户可以执行cleanupOrphaned命令。将此操作应用于
cluster
资源。
- 用户可以执行cleanupOrphaned命令。将此操作应用于
cpuProfiler
- 用户可以启用和使用 CPU Profiler。将此操作应用于
cluster
资源。
- 用户可以启用和使用 CPU Profiler。将此操作应用于
inprog
- 用户可以使用db.currentOp()方法来返回有关挂起和活动操作的信息。将此操作应用于
cluster
资源。
- 用户可以使用db.currentOp()方法来返回有关挂起和活动操作的信息。将此操作应用于
在版本 3.2.9 中更改:即使没有inprog特权,在mongod实例上,用户也可以通过运行db.currentOp( { "$ownOps": true } )
来查看自己的操作。
invalidateUserCache
- 提供对invalidateUserCache命令的访问权限。将此操作应用于
cluster
资源。
- 提供对invalidateUserCache命令的访问权限。将此操作应用于
killop
- 用户可以执行db.killOp()方法。将此操作应用于
cluster
资源。
- 用户可以执行db.killOp()方法。将此操作应用于
在版本 3.2.9 中更改:即使没有killop特权,在mongod实例上,用户也可以终止自己的操作。
planCacheRead
- 用户可以执行planCacheListPlans和planCacheListQueryShapes命令以及PlanCache.getPlansByQuery()和PlanCache.listQueryShapes()方法。将此操作应用于数据库或集合资源。
planCacheWrite
- 用户可以执行planCacheClear命令以及PlanCache.clear()和PlanCache.clearPlansByQuery()方法。将此操作应用于数据库或集合资源。
storageDetails
- 用户可以执行
storageDetails
命令。将此操作应用于数据库或集合资源。
- 用户可以执行
更改流操作
changeStream
- 在特定集合上具有changeStream和find的用户可以为该资源打开更改流光标。
Replication Actions
appendOplogNote
- 用户可以在操作日志中添加 Comments。将此操作应用于
cluster
资源。
- 用户可以在操作日志中添加 Comments。将此操作应用于
replSetConfigure
- 用户可以配置副本集。将此操作应用于
cluster
资源。
- 用户可以配置副本集。将此操作应用于
replSetGetConfig
- 用户可以查看副本集的配置。提供对replSetGetConfig命令和rs.conf()帮助方法的访问。
将此操作应用于cluster
资源。
replSetGetStatus
- 用户可以执行replSetGetStatus命令。将此操作应用于
cluster
资源。
- 用户可以执行replSetGetStatus命令。将此操作应用于
replSetHeartbeat
- 用户可以执行
replSetHeartbeat
命令。将此操作应用于cluster
资源。
- 用户可以执行
replSetStateChange
- 用户可以通过replSetFreeze,replSetMaintenance,replSetStepDown和replSetSyncFrom命令更改副本集的状态。将此操作应用于
cluster
资源。
- 用户可以通过replSetFreeze,replSetMaintenance,replSetStepDown和replSetSyncFrom命令更改副本集的状态。将此操作应用于
resync
- 用户可以执行resync命令。将此操作应用于
cluster
资源。
- 用户可以执行resync命令。将此操作应用于
Sharding Actions
addShard
- 用户可以执行addShard命令。将此操作应用于
cluster
资源。
- 用户可以执行addShard命令。将此操作应用于
enableSharding
Applicable Resources
该操作可以应用于以下任一情况:
Database或collection资源以为数据库启用分片或对集合进行分片。
Cluster资源以执行各种分片区操作(从版本 3.6.16 开始)。
Resources | Description |
---|---|
Database or | |
Collection |
授予用户执行以下操作的权限: 使用enableSharding命令在数据库上启用分片,然后 使用shardCollection命令对集合进行分片。 |
Cluster 从版本 3.6.16 开始 |
授予用户执行以下分片区操作的权限: addShardToZone updateZoneKeyRange removeShardFromZone 如果对 config 数据库中的适当集合具有find/update操作,则也可以执行这些分片区操作。有关详细信息,请参见具体操作。 |
服务器 Management 操作
applicationMessage
- 用户可以执行logApplicationMessage命令。将此操作应用于
cluster
资源。
- 用户可以执行logApplicationMessage命令。将此操作应用于
closeAllDatabases
- 用户可以执行
closeAllDatabases
命令。将此操作应用于cluster
资源。
- 用户可以执行
collMod
- 用户可以执行collMod命令。将此操作应用于数据库或集合资源。
compact
- 用户可以执行compact命令。将此操作应用于数据库或集合资源。
connPoolSync
- 用户可以执行connPoolSync命令。将此操作应用于
cluster
资源。
- 用户可以执行connPoolSync命令。将此操作应用于
convertToCapped
- 用户可以执行convertToCapped命令。将此操作应用于数据库或集合资源。
dropDatabase
- 用户可以执行dropDatabase命令。将此操作应用于数据库资源。
dropIndex
- 用户可以执行dropIndexes命令。将此操作应用于数据库或集合资源。
forceUUID
- 3.6 版的新功能。
用户可以使用applyOps命令使用用户定义的collection UUID创建集合。
将此操作应用于cluster
资源。
fsync
- 用户可以执行fsync命令。将此操作应用于
cluster
资源。
- 用户可以执行fsync命令。将此操作应用于
getParameter
- 用户可以执行getParameter命令。将此操作应用于
cluster
资源。
- 用户可以执行getParameter命令。将此操作应用于
hostInfo
- 提供有关运行 MongoDB 实例的服务器的信息。将此操作应用于
cluster
资源。
- 提供有关运行 MongoDB 实例的服务器的信息。将此操作应用于
logRotate
- 用户可以执行logRotate命令。将此操作应用于
cluster
资源。
- 用户可以执行logRotate命令。将此操作应用于
reIndex
- 用户可以执行reIndex命令。将此操作应用于数据库或集合资源。
renameCollectionSameDB
- 允许用户使用renameCollection命令在当前数据库上重命名集合。将此操作应用于数据库资源。
此外,用户必须在源集合上具有 find或在目标集合上没有 find。
如果已经存在使用新名称的集合,则用户还必须对目标集合执行dropCollection操作。
repairDatabase
- 用户可以执行repairDatabase命令。将此操作应用于数据库资源。
setParameter
- 用户可以执行setParameter命令。将此操作应用于
cluster
资源。
- 用户可以执行setParameter命令。将此操作应用于
shutdown
- 用户可以执行shutdown命令。将此操作应用于
cluster
资源。
- 用户可以执行shutdown命令。将此操作应用于
touch
- 用户可以执行touch命令。将此操作应用于
cluster
资源。
- 用户可以执行touch命令。将此操作应用于
Session Actions
impersonate
- 3.6 版的新功能。
用户可以使用users
和roles
模式执行killAllSessionsByPattern命令。将此操作应用于cluster
资源。
要运行killAllSessionsByPattern命令,用户还必须对群集资源具有killAnySession特权。
listSessions
- 3.6 版的新功能。
用户可以对所有用户或指定用户执行$listSessions操作或$listLocalSessions操作。将此操作应用于cluster
资源。
killAnySession
- 3.6 版的新功能。
用户可以执行killAllSessions和killAllSessionsByPattern命令。将此操作应用于cluster
资源。
See also
Diagnostic Actions
collStats
- 用户可以执行collStats命令。将此操作应用于数据库或集合资源。
connPoolStats
- 用户可以执行connPoolStats和shardConnPoolStats命令。将此操作应用于
cluster
资源。
- 用户可以执行connPoolStats和shardConnPoolStats命令。将此操作应用于
cursorInfo
- 用户可以执行cursorInfo命令。将此操作应用于
cluster
资源。
- 用户可以执行cursorInfo命令。将此操作应用于
dbHash
- 用户可以执行dbHash命令。将此操作应用于数据库或集合资源。
dbStats
- 用户可以执行dbStats命令。将此操作应用于数据库资源。
getCmdLineOpts
- 用户可以执行getCmdLineOpts命令。将此操作应用于
cluster
资源。
- 用户可以执行getCmdLineOpts命令。将此操作应用于
getLog
- 用户可以执行getLog命令。将此操作应用于
cluster
资源。
- 用户可以执行getLog命令。将此操作应用于
indexStats
- 用户可以执行
indexStats
命令。将此操作应用于数据库或集合资源。
- 用户可以执行
在版本 3.0 中进行了更改:MongoDB 3.0 删除了indexStats
命令。
listDatabases
- 用户可以执行listDatabases命令。将此操作应用于
cluster
资源。
- 用户可以执行listDatabases命令。将此操作应用于
listCollections
- 用户可以执行listCollections命令。将此操作应用于数据库资源。
listIndexes
- 用户可以执行listIndexes命令。将此操作应用于数据库或集合资源。
netstat
- 用户可以执行netstat命令。将此操作应用于
cluster
资源。
- 用户可以执行netstat命令。将此操作应用于
serverStatus
- 用户可以执行serverStatus命令。将此操作应用于
cluster
资源。
- 用户可以执行serverStatus命令。将此操作应用于
validate
- 用户可以执行validate命令。将此操作应用于数据库或集合资源。
top
- 用户可以执行top命令。将此操作应用于
cluster
资源。
- 用户可以执行top命令。将此操作应用于
Internal Actions
anyAction
- 允许对资源执行任何操作。 **除非绝对必要,否则请不要分配此操作。
internal
- 允许内部动作。 **除非绝对必要,否则请不要分配此操作。