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

MongoDB执行grantRolesToUser报错Could not find role: root问题问询

报错原因
  • MongoDB的root内置角色仅定义在系统admin库中,不存在于业务库test_db下,你分配角色时指定db: "test_db"会强制MongoDB在test_db中查找不存在的root角色,因此抛出could not find role: root@test_db错误。
  • 你创建用户时配置了roles: []空权限数组,该用户没有任何数据库操作权限,因此执行聚合操作时会触发未授权报错。
解决方法

方案1:分配root权限(不推荐,权限过大)

root属于全实例超级管理员权限,仅需指定角色归属admin库即可,根据你的用户归属test_db的情况,执行以下命令即可:

# 切换到用户所属的test_db库
use test_db
# 授予root角色,角色所属库指定为admin
db.grantRolesToUser(
    "some_user",
    [
      { role: "root", db: "admin" }
    ]
)

方案2:分配最小够用权限(推荐)

如果你仅需要操作test_db的读写、聚合等常规业务操作,直接授予readWrite角色即可满足需求,避免权限溢出:

use test_db
db.grantRolesToUser(
    "some_user",
    [ "readWrite" ]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:57:01