MongoDB插入操作报错:用户无nodeMongoCrud.users集合插入权限
解决MongoDB用户无insert权限问题
问题原因
你创建的第二个MongoDB用户未被授予nodeMongoCrud.users集合的insert操作权限,触发权限校验错误导致插入失败。
解决方案
方法1:通过Mongo Shell授予读写权限(通用方式)
- 使用具备管理员权限的用户(如
root或拥有userAdminAnyDatabase角色的用户)登录MongoDB Shell:mongosh "mongodb+srv://<你的集群地址>" --username <管理员用户名> - 切换到目标数据库:
use nodeMongoCrud - 为目标用户授予
readWrite角色(包含insert、update、delete等全量读写权限):db.grantRolesToUser("<你的第二个用户名>", [{ role: "readWrite", db: "nodeMongoCrud" }]) - 验证权限是否生效:
查看返回结果的db.getUser("<你的第二个用户名>")roles字段,确认包含readWrite@nodeMongoCrud。
方法2:细粒度授予仅insert权限
若无需全量读写权限,可单独配置insert权限:
db.grantPrivilegesToUser("<你的第二个用户名>", [ { resource: { db: "nodeMongoCrud", collection: "users" }, actions: ["insert"] } ])
方法3:MongoDB Atlas控制台操作(云服务场景)
- 登录MongoDB Atlas控制台,进入目标集群页面。
- 点击左侧菜单Database Access。
- 找到目标用户,点击Edit。
- 在Database User Privileges区域,点击Add Privilege。
- 选择Specific Database,输入
nodeMongoCrud,再选择readWrite权限(或自定义仅insert权限)。 - 点击Update User保存设置。
额外检查
确认应用连接字符串使用的是该用户的凭证,且指定了正确数据库:
mongodb+srv://<第二个用户名>:<密码>@<集群地址>/nodeMongoCrud?retryWrites=true&w=majority
内容的提问来源于stack exchange,提问作者Mostafizur Rahaman
相关产品推荐
相关产品推荐

