我知道这个问题类似于这个问题:
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();
});
非常感谢每一个答案,评论和有用的信。
答案 0 :(得分:0)
我找到了解决方案:我在规则中添加了“ dbAdmin”,现在可以使用了:
我如何创建工作用户:
db.createUser({user: "nodejs", pwd: "1234", roles: ["readWrite", "dbAdmin"]});