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

MongoServerError求助:用户无权限对genius-car.service执行find操作

解决MongoDB Atlas权限错误:user is not allowed to do action [find] on [genius-car.service]

错误信息

D:\Projects_WebDev\BackEnd\server-genius-car-service\node_modules\mongodb\lib\cmap\connection.js:207
                    callback(new error_1.MongoServerError(document));
                             ^

MongoServerError: user is not allowed to do action [find] on [genius-car.service]
    at Connection.onMessage (D:\Projects_WebDev\BackEnd\server-genius-car-service\node_modules\mongodb\lib\cmap\connection.js:207:30)
    at MessageStream.<anonymous> (D:\Projects_WebDev\BackEnd\server-genius-car-service\node_modules\mongodb\lib\cmap\connection.js:60:60)
    at MessageStream.emit (node:events:527:28)
    at processIncomingData (D:\Projects_WebDev\BackEnd\server-genius-car-service\node_modules\mongodb\lib\cmap\message_stream.js:132:20)  
    at MessageStream._write (D:\Projects_WebDev\BackEnd\server-genius-car-service\node_modules\mongodb\lib\cmap\message_stream.js:33:9)   
    at writeOrBuffer (node:internal/streams/writable:389:12)
    at _write (node:internal/streams/writable:330:10)
    at MessageStream.Writable.write (node:internal/streams/writable:334:10)
    at TLSSocket.ondata (node:internal/streams/readable:754:22)
    at TLSSocket.emit (node:events:527:28) {
  ok: 0,
  code: 8000,
  codeName: 'AtlasError',
  [Symbol(errorLabels)]: Set(0) {}
}
[nodemon] app crashed - waiting for file changes before starting...

相关代码

async function run() {
    try {
        await client.connect();
        const serviceCollection = client.db('genius-car').collection('service');

        app.get('/service', async (req, res) => {
            const query = {};
            const cursor = serviceCollection.find(query);
            const services = await cursor.toArray();
            res.send(services)
        });


    } finally {
        //
    }

}
run().catch(console.dir);

解决方案

这个错误是因为你使用的MongoDB Atlas用户账号没有对genius-car数据库下service集合执行find操作的权限,按以下步骤修复:

  • 登录MongoDB Atlas控制台,进入你的项目。
  • 点击左侧菜单栏的「Database Access」选项。
  • 在用户列表中找到你当前连接数据库使用的账号,点击账号右侧的「Edit」按钮。
  • 在「Database User Privileges」区域,添加对应权限:
    • 若需要对该数据库全量读写权限,直接勾选「Read and write to any database」(建议仅给指定数据库权限,更安全)。
    • 若要最小权限控制,点击「Add Specific Privilege」,在弹出的选项中选择find权限,指定数据库为genius-car,集合为service,确认添加。
  • 保存修改,等待1-2分钟让权限生效。
  • 重启你的Express服务器,重新访问http://localhost:5000/service即可。

注意事项

  • 确保你的数据库连接字符串中的用户名、密码和Atlas控制台中设置的账号完全一致。
  • 遵循最小权限原则,不要给用户超出业务需求的权限,避免安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:39:40