权限操作
最后更新于
在本页面
权限操作定义了用户可以对执行的操作。MongoDB 包括 和允许的操作。此页面列出了按通用目的分组的可用操作。
MongoDB为内置角色提供了预定义的资源对和允许的操作对。有关授予的操作的列表,请参见 。要定义自定义角色,请参阅 。
find
用户可以执行以下命令及其等效的帮助方法:
对于MongoDB 4.0.6+:
对于MongoDB 4.0.5:
对于MongoDB 4.0.0-4.0.4:
将此操作应用于数据库或集合资源。
insert
用户可以执行以下命令及其等效方法:
以下命令及其辅助方法在_目标_集合上是必需的:
将此操作应用于数据库或集合资源。
remove
将此操作应用于数据库或集合资源。
update
将此操作应用于数据库或集合资源。
bypassDocumentValidation
3.2版中的新功能。
将此操作应用于数据库或集合资源。
useUUID
3.6版的新功能。
用户可以使用UUID来执行以下命令 ,就像它是名称空间一样:
复制
将此操作应用于cluster
资源。
changeCustomData
用户可以更改给定数据库中任何用户的自定义信息。将此操作应用于数据库资源。
changeOwnCustomData
changeOwnPassword
changePassword
用户可以更改给定数据库中任何用户的密码。将此操作应用于数据库资源。
createCollection
createIndex
createRole
用户可以在给定的数据库中创建新角色。将此操作应用于数据库资源。
createUser
用户可以在给定的数据库中创建新用户。将此操作应用于数据库资源。
dropCollection
dropRole
用户可以从给定的数据库中删除任何角色。将此操作应用于数据库资源。
dropUser
用户可以从给定的数据库中删除任何用户。将此操作应用于数据库资源。
enableProfiler
grantRole
用户可以将数据库中的任何角色从系统中的任何数据库授予任何用户。将此操作应用于数据库资源。
killCursors
killAnyCursor
版本3.6.3中的新功能。
用户可以关闭任何游标,甚至可以关闭其他用户创建的游标。将此操作应用于收集资源。
revokeRole
用户可以从系统中任何数据库的任何用户中删除任何角色。将此操作应用于数据库资源。
setAuthenticationRestriction
3.6版的新功能。
运行以下命令时,用户可以authenticationRestrictions
在role
文档中指定字段 :
注意
以下内置角色授予此权限:
将此操作应用于数据库资源。
unlock
viewRole
用户可以查看有关给定数据库中任何角色的信息。将此操作应用于数据库资源。
viewUser
用户可以在给定的数据库中查看任何用户的信息。将此操作应用于数据库资源。
authSchemaUpgrade
用户可以执行authSchemaUpgrade
命令。将此操作应用于cluster
资源。
cleanupOrphaned
cpuProfiler
用户可以启用和使用CPU分析器。将此操作应用于 cluster
资源。
inprog
invalidateUserCache
killop
planCacheRead
用户可以执行以下操作:
将此操作应用于数据库或集合资源。
planCacheWrite
storageDetails
用户可以执行storageDetails
命令。将此操作应用于数据库或集合资源。
changeStream
appendOplogNote
用户可以在操作日志中添加注释。将此操作应用于 cluster
资源。
replSetConfigure
用户可以配置副本集。将此操作应用于cluster
资源。
replSetGetConfig
将此操作应用于cluster
资源。
replSetGetStatus
replSetHeartbeat
用户可以执行replSetHeartbeat
命令。将此操作应用于cluster
资源。
replSetStateChange
resync
用户可以执行resync
命令。将此操作应用于cluster
资源。
addShard
clearJumboFlag
从4.2.3和4.0.15开始可用
enableSharding
适用资源
该操作可以应用于以下任一情况:
flushRouterConfig
getShardMap
getShardVersion
listShards
moveChunk
removeShard
shardingState
splitChunk
splitVector
applicationMessage
closeAllDatabases
用户可以执行closeAllDatabases
命令。将此操作应用于cluster
资源。
collMod
compact
connPoolSync
convertToCapped
dropConnections
dropDatabase
dropIndex
forceUUID
3.6版的新功能。
将此操作应用于cluster
资源。
fsync
getParameter
hostInfo
提供有关运行MongoDB实例的服务器的信息。将此操作应用于cluster
资源。
logRotate
reIndex
renameCollectionSameDB
setParameter
shutdown
touch
用户可以执行touch
命令。将此操作应用于cluster
资源。
impersonate
3.6版的新功能。
listSessions
3.6版的新功能。
killAnySession
3.6版的新功能。
checkFreeMonitoringStatus
4.0版本中的新功能。
setFreeMonitoring
4.0版本中的新功能。
collStats
connPoolStats
cursorInfo
dbHash
dbStats
getCmdLineOpts
getLog
indexStats
用户可以执行indexStats
命令。将此操作应用于数据库或集合资源。
在版本3.0_中进行了_更改: MongoDB 3.0删除了该indexStats
命令。
listDatabases
对于MongoDB 4.0.6+:
对于MongoDB 4.0.5:
对于MongoDB 4.0.0-4.0.4:
listCollections
注意
listIndexes
netstat
serverStatus
validate
top
anyAction
允许对资源执行任何操作。除非绝对必要,否则不要分配此操作。
internal
允许内部动作。除非绝对必要,否则不要分配此操作。
译者:谢伟成
对于所有 (,和 除外) 。
,前提是光标与当前经过身份验证的用户相关联。
与{out: inline}
选项
时,命令和 辅助方法的查询部分是必需的。
命令行和辅助方法的查询部分是必需的。
和命令行以及辅助方法要求有源集合。
如果用户没有 操作权限,用户运行 命令行时authorizedDatabases
未指定或设置选项为true
,则用户可以运行该命令以返回该用户具有权限的数据库的列表(包括该用户对特定集合具有权限的数据库)。
如果用户没有 操作权限,在authorizedDatabases
未指定选项或设置为true
的情况下运行 命令时,用户可以运行该命令以返回该用户对其具有操作权限的数据库的列表 。
如果用户没有 操作权限,则用户可以运行 命令以返回该用户对其具有操作权限的数据库列表 。
时, 命令和 方法的输出部分是必需的。
使用管道运算符时,命令和 帮助程序方法是必需的。
当使用和 命令以及等效的帮助程序方法时,upsert
是必需的 。
用户可以执行命令和等效的辅助方法。
命令和方法的write 部分是必需的。
当您指定replace
时,该命令和 辅助方法是必需的。
使用管道运算符时,命令和 辅助方法是必需的。
用户可以执行命令和等效的帮助方法。
在不指定replace
操作的情况下时,命令和 辅助方法是必需的 。
命令和 辅助方法是必需的。
用户可以绕过支持bypassDocumentValidation
选项的命令和方法的。以下命令及其等效方法支持绕过文档验证:
在_目标_集合上的
例如,此权限授权用户运行以下命令,该命令对具有给定UUID的集合执行命令。为了获得成功,此操作还需要授权用户find
在与给定UUID对应的集合名称空间上执行命令。
有关集合UUID的更多信息,请参见 。
用户可以更改自己的自定义信息。将此操作应用于数据库资源。另请参阅 。
用户可以更改自己的密码。将此操作应用于数据库资源。另请参阅 。
用户可以执行方法。将此操作应用于数据库或集合资源。
提供对方法和命令的访问。将此操作应用于数据库或集合资源。
用户可以执行该方法。将此操作应用于数据库或集合资源。
用户可以执行方法。将此操作应用于数据库资源。
从MongoDB 4.2开始,用户始终可以关闭自己的游标,而不管用户是否具有 的权限。因此,该 权限在MongoDB 4.2+中无效。
在MongoDB 3.6.3到MongoDB 4.0.x中,启用访问控制后,用户需要权限来关闭自己的游标。游标创建时,游标与用户相关联。将此操作应用于收集资源。
运行以下命令时,用户可以在user
文档中指定 字段:
该角色提供对数据库的这一权限的角色分配。
该 角色在所有数据库上提供此权限。
在传递上,和角色也提供此特权。
用户可以执行方法。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以使用方法返回有关挂起和活动操作的信息。将此操作应用于cluster
资源。
_在版本3.2.9中进行了更改:_即使没有权限,用户也可以在实例上通过运行db.currentOp( { "$ownOps": true } )
来查看自己的操作。
提供对命令的访问。将此操作应用于cluster
资源。
用户可以执行方法。将此操作应用于cluster
资源。
_在版本3.2.9中进行了更改:_即使没有权限,在 实例上,用户也可以关闭自己的操作。
聚集阶段。
命令和 方法。
命令和 方法。
用户可以执行命令以及 和 方法。将此操作应用于数据库或集合资源。
用户在指定集合上使用和上,在指定数据库中的所有非system
集合或所有数据库中的所有非system
集合都可以为这些资源打开。
用户可以查看副本集的配置。提供对命令和辅助方法的访问 。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以通过 ,, ,和 命令改变一个副本集的状态。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
使用命令清除块的巨型标志所必需 。将此操作应用于数据库或集合资源。
包含在内置角色中。
或资源,用于为数据库启用分片或对进行分片。
资源以执行各种分片区操作(从版本4.2.2、4.0.14、3.6.16开始)。
或
授予用户执行以下操作的权限:使用以下命令在数据库上启用分片 ,然后使用 命令对集合进行分片。
从版本4.2.2、4.0.14、3.6.16开始
授予用户执行以下分区域操作的权限:- - - 如果对数据库中的相应集合执行/ 操作,则还可以执行这些分片区 config
操作。有关详细信息,请参见具体操作。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于数据库资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。此外,如果将权限应用于适当的数据库资源,则用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令和 命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于数据库资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以使用 命令使用用户定义的创建集合。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
允许用户使用命令在当前数据库上重命名集合 。将此操作应用于数据库资源。
此外,用户必须_拥有_ 源集合或者_没有_ 目标集合。
如果已经存在使用新名称的集合,则用户还必须使用对目标集合执行操作。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以使用users
和roles
模式执行命令。将此操作应用于 cluster
资源。
要运行命令,用户还必须对群集资源具有权限。
用户可以为所有用户或指定用户执行一项或 多项操作。将此操作应用于cluster
资源。
SEE ALSO
用户可以执行和 命令。将此操作应用于cluster
资源。
也可以看看
对cluster
资源执行此操作的用户可以检查“ 的状态。
对cluster
资源执行此操作的用户可以启用或禁用“ 。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行和 命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于数据库资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
如果用户没有 操作权限,则如果运行 命令时authorizedDatabases
未指定或设置选项为true
,则用户可以运行该命令以返回该用户具有权限的数据库的列表(包括该用户对特定集合具有权限的数据库)。
如果用户没有 操作权限,则在authorizedDatabases
命令未指定选项或设置为true
的情况下运行 命令时,用户可以运行该命令以返回该用户对其具有操作权限的数据库的列表 。
如果用户没有 操作权限,则用户可以运行 命令以返回该用户对其具有操作权限的数据库列表 。
用户可以执行命令。将此操作应用于数据库资源。
从4.0版本开始,没有所需权限的用户可以在 authorizedCollections
和nameOnly
选项都设置为true
的情况下运行命令。在这种情况下,该命令仅返回用户具有特权的集合的名称和类型。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于cluster
资源。
用户可以执行命令。将此操作应用于数据库或集合资源。
用户可以执行命令。将此操作应用于 cluster
资源。
原文链接: