【问题标题】:UserNotFound: Could not find user nodejs@sDatabaseUserNotFound:找不到用户 nodejs@sDatabase
【发布时间】:2018-11-27 16:30:22
【问题描述】:

我知道这个问题类似于这个问题:

UserNotFound: Could not find user admin@automation

PyMongo - UserNotFound: Could not find user authenticated@admin

,但答案对我没有帮助,我现在非常绝望:(

我的后端异常:

来自客户端的 sDatabase 上的 nodejs 的 SCRAM-SHA-1 身份验证失败 20.345.145.12; UserNotFound: 找不到用户 nodejs@sDatabase

Mongo DB 版本:3.2.20

我的前端异常:

MongoError:身份验证失败。

NodeJS 版本:8.9.4

NodeJS mongodb 依赖版本:~3.0.10

我的用户:

> db.getUsers()
[
        {
                "_id" : "sDatabase.nodejs",
                "user" : "nodejs",
                "db" : "sDatabase",
                "roles" : [
                        {
                                "role" : "readWrite",
                                "db" : "sDatabase"
                        }
                ]
        }
]
>

我的 nodeJS 代码 [与其他 mongoDB 数据库一起使用]:

var MongoClient = require('mongodb').MongoClient;

var pwd = "1234", //also tried with encodeURIComponent
    username = "nodejs",
    host = "1234.567.898.765",
    database = "sDatabase";

var url = "mongodb://" + username + ":" + pwd + "@" + host + ":27017/" + database; //also tried: ?authMechanism=SCRAM-SHA-1 //?authSource=sDatabase&w=1

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log("Database created!");
    db.close();
});

非常感谢您的每一个回答、评论和有用的信。

【问题讨论】:

  • 那么用户nodejs不存在,你需要创建它
  • 我以为我创建了它,因为当我在数据库中编写 db.getUsers() 时,他来了。
  • 你先use sDatabase了吗?
  • 是的。 :/。 . . .
  • 20.345.145.12 不是有效的 IP 地址。有什么东西看起来弯曲了。

标签: node.js linux database mongodb ubuntu


【解决方案1】:

我找到了解决方案:我在规则中添加了“dbAdmin”,现在它可以工作了:

我是如何创建我的工作用户的:

db.createUser({user: "nodejs", pwd: "1234", roles: ["readWrite", "dbAdmin"]});

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 2018-08-23
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2017-12-16
    • 2014-01-29
    相关资源
    最近更新 更多