gpt4 book ai didi

node.js - 如何使用 NodeJS 以 super 用户身份连接到另一个 MongoDB 数据库?

转载 作者:可可西里 更新时间:2023-11-01 09:11:32 24 4
gpt4 key购买 nike

this problem的解决方案工作正常:

而不是做:

$ mongo my_db_name -u superuser -p 1234

我愿意

$ mongo admin -u superuser -p 1234 # connecting as super user to admin db
> use anotherDb

在外壳中。


NodeJS 中的解决方案是什么?

我尝试连接到 mongodb://superuser:1234@localhost:27017/my_db_name 但出现此错误:

{ [MongoError: auth fails] name: 'MongoError', code: 18, ok: 0, errmsg: 'auth fails' }

我的代码是:

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

MongoClient.connect("mongodb://superuser:1234@localhost:27017/my_db_name",
function(err, db) {
if (err) { return console.log(err); }
console.log("Successfully connected.");
}
);

请注意, super 用户 是可以在任何 数据库中写入读取 权限的全能用户。 p>

如果我执行 MongoClient.connect("mongodb://superuser:1234@localhost:27017/admin(将 my_db_name 替换为 admin ) 它连接成功。为什么?

如何使用 superuser 和密码 (1234) 连接到 my_db_name

最佳答案

一种解决方案是使用从 Nodejs 端执行的 shell 脚本:

mongo <<EOF
use admin
db.auth("superuser", "1234");
use another_db
db.addUser({
user: "test",
pwd: "12345",
roles: ["userAdmin"]
});
exit
EOF

然后我可以使用以下连接字符串:"mongodb://test:12345@localhost:27017/my_db_name"

此解决方案有效,但我仍在寻找 Mongo native 解决方案。

关于node.js - 如何使用 NodeJS 以 super 用户身份连接到另一个 MongoDB 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com