0
我已经设置了一个mongo数据库,它与身份验证一起工作。MongoError:listCollections失败
我想使用mongodb native driver复制数据库。
问题是我的命令遭到拒绝为:
MongoError: listCollections failed: { ok: 0.0, errmsg: "not authorized on SESSION to execute command { listCollections: 1, filter: { $or: [ { type: "collection" }, { type: { $exists: false } } ] }, cu...", code: 13, codeName: "Unauthorized" }
这是我如何运行我的数据库:
/usr/bin/mongod --quiet
--setParameter authenticationMechanisms=SCRAM-SHA-1
--auth
--port 27017
--dbpath /database
这里是我的用户m用于连接
db.createUser({
"user": "USER",
"pwd": "PASS",
"roles": [ "root" ]
});
我也尝试使用:
db.createUser({
"user": "USER",
"pwd": "PASS",
"roles": [ { "role": "root", "db": "admin" } ]
});
这里是我如何连接(连接成功):
const url = "mongodb://USER:[email protected]:27017/SESSION?authSource=admin";
MongoClient.connect(url, ...
这里是我如何请求副本:
const mongoCommand = {
copydb: 1,
fromhost: "172.42.0.2",
fromdb: "SESSION",
todb: "SESSION_COPY",
};
// Perform the copy
this.db.admin().command(mongoCommand, function (err, data) {
我使用:
Mongodb (database) v3.4.7
Mongodb (node package) v2.2.31
谢谢:)
一些职位,让我通过这个:
mongodb-not-authorized-for-query-admin-system-users
how-can-i-execute-db-copydatabase-through-nodejss-mongodb-native-driver
这些用户都没有被授权访问'SESSION'数据库。实际上有一个属性。实际上你使用过它,它是'db'。您只授予'admin'权限。 –
第一个用户有''角色“:[”root“]'应该授予每个收集权的'root'权限? –