特权动作定义用户可以对资源执行的操作。MongoDB 特权包括 资源和允许的操作。此页面列出了按通用目的分组的可用操作。
MongoDB为内置角色提供了预定义的资源对和允许的操作对。有关授予的操作的列表,请参见 内置角色。要定义自定义角色,请参阅 创建用户定义的角色。
find¶用户可以执行以下命令及其等效的帮助程序方法:
aggregate对于所有管道操作 (,和
除外)
。$collStats$out$indexStatscheckShardingIndexcountdataSizedistinctfilemd5findgeoSearchgetLastErrorgetMorekillCursors,前提是光标与当前经过身份验证的用户相关联。listCollectionslistIndexesmapReduce与选项。{out: inline}resetError输出到集合时,mapReduce命令和
db.collection.mapReduce辅助方法的查询部分必需。
findAndModify命令和db.collection.findAndModify辅助方法的查询部分必需。
和命令以及
辅助方法在源集合上是必需的。cloneCollectionAsCappedrenameCollectiondb.collection.renameCollection()
listDatabases
特权操作,listDatabases
则如果命令运行时authorizedDatabases未指定或设置选项,则用户可以运行该命令以返回该用户具有特权的数据库的列表(包括该用户对其特定集合具有特权的数据库)。
到true。listDatabases
特权操作,则在命令未指定或设置为的情况下运行listDatabases
命令时,用户可以运行该命令以返回用户对其具有find操作特权
的数据库的列表
。authorizedDatabasestruelistDatabases
特权操作,则用户可以运行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命令和等效的帮助程序方法。
在
不指定操作的情况下输出到集合时,mapReducecommand 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逗号