Ich habe eine Mongo-Datenbank eingerichtet, die mit Authentifizierung arbeitet.MongoError: listCollections fehlgeschlagen
Ich versuche, eine Datenbank mit mongodb native driver zu kopieren.
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" }
Hier ist, wie ich meine Datenbank ausführen:
Das Problem ist mein Befehl als erhalten abgelehnt
/usr/bin/mongod --quiet
--setParameter authenticationMechanisms=SCRAM-SHA-1
--auth
--port 27017
--dbpath /database
Hier ist der Benutzer I‘ m zum Verbinden verwenden
db.createUser({
"user": "USER",
"pwd": "PASS",
"roles": [ "root" ]
});
Ich habe auch versucht mit:
db.createUser({
"user": "USER",
"pwd": "PASS",
"roles": [ { "role": "root", "db": "admin" } ]
});
Hier ist, wie ich eine Verbindung (die Verbindung erfolgreich):
const url = "mongodb://USER:[email protected]:27017/SESSION?authSource=admin";
MongoClient.connect(url, ...
Hier ist, wie ich die Kopie anfordern:
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) {
Ich verwende:
Mongodb (database) v3.4.7
Mongodb (node package) v2.2.31
Thanks :)
Einige Beiträge, die mich durch diese:
mongodb-not-authorized-for-query-admin-system-users
how-can-i-execute-db-copydatabase-through-nodejss-mongodb-native-driver
Keiner dieser Benutzer hat Zugriff auf die Datenbank "SESSION" erhalten. Es gibt tatsächlich eine Eigenschaft dafür. Tatsächlich hast du es benutzt und es ist 'db'. Sie haben nur die Berechtigung für "admin" erteilt. –
Der erste Benutzer hat '" roles ": [" root "]' was 'root' Rechte für jedes Sammelrecht gewähren soll? –