You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB是否可以限制用户资源?具体配置方法是什么?

MongoDB 5.0 单用户资源使用限制方案

MongoDB 5.0完全支持对用户级别的资源使用做阈值限制,和MySQL的单用户资源限制能力对应,核心是通过createUser/updateUser命令的restrictions参数配置实现,适配你当前使用的5.0.2版本以及mongosh操作环境。


支持的限制类型

  • 每小时查询次数限制:对应配置项maxQueriesPerHour,限制单用户每小时可执行的查询类操作总数
  • 每小时写入次数限制:对应配置项maxWritesPerHour,限制单用户每小时可执行的写入类操作总数
  • 每小时连接次数限制:对应配置项maxConnectionsPerHour,限制单用户每小时可新建的连接总数
  • 可选扩展限制:maxConcurrentConnections,限制单用户可同时持有的活跃连接数

配置操作步骤(mongosh 环境)

首先切换到对应用户所属的数据库,全局用户切换到admin库,单库专属用户切换到对应业务库即可:
use admin

1. 新建用户时配置资源限制

示例:创建名为app_user的用户,配置每小时最多查询1000次、每小时最多新建连接200次、最多同时持有50个活跃连接:

db.createUser({
  user: "app_user",
  pwd: "your_secure_password",
  roles: [{role: "readWrite", db: "target_business_db"}],
  restrictions: {
    maxQueriesPerHour: 1000,
    maxConnectionsPerHour: 200,
    maxConcurrentConnections: 50
  }
})

2. 已有用户修改资源限制

示例:给app_user新增每小时最多500次写入的限制,注意restrictions是全量覆盖字段,修改时需要把原有保留的限制项一并填写,避免旧配置被清空:

db.updateUser("app_user", {
  restrictions: {
    maxQueriesPerHour: 1000,
    maxWritesPerHour: 500,
    maxConnectionsPerHour: 200,
    maxConcurrentConnections: 50
  }
})

3. 查看已有用户的资源限制配置

db.getUser("app_user")

返回结果中会明确展示restrictions字段下所有已配置的阈值参数。


注意事项

  • 资源限制统计为单节点维度,如果是分片集群,每个分片会单独统计用户的资源使用量,不会跨节点汇总计算阈值
  • 用户触发阈值后,后续请求会被直接拒绝,返回OperationFailed错误码,提示资源配额不足,需等待下一个小时统计周期重置后恢复使用
  • 5.0.2版本完全兼容上述所有配置项,无需额外开启特殊参数或安装插件

内容的提问来源于stack exchange,提问作者Unsel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:00:01