MongoError: es gibt keine authentifizierten Benutzer

Ich versuche, ein Skript zu schreiben fügen Sie ein admin-Benutzer und einen generischen Benutzer auf die MongoDB-Datenbank mit mongodb NodeJS-Treiber - version 3.0.1

Ich bin in der Lage, erstellen Sie den Benutzer "admin", aber nicht für Allgemeine Benutzer für eine Datenbank. Ich bin immer MongoError: there are no users authenticated. Gehen Sie durch die Dokumentation, die einzige Möglichkeit, einen Benutzer zu authentifizieren, ist über die URL. Ich habe gelöscht die Datenbank komplett aus dem angegebenen Pfad, versucht mehrere Male, noch immer, ich stecken geblieben bin.

Hier ist, was ich habe, so weit,

const MongoClient = require('mongodb').MongoClient;
const format = require('util').format;
const config = require("./config.json");

var adminUser = process.argv[2],
adminPassword = process.argv[3],
url = `mongodb://${config.database.location}:${config.database.port}`,
authURL = `mongodb://%s:%s@${config.database.location}:${config.database.port}/?authMechanism=SCRAM-SHA-1&authSource=admin`;

if (!adminUser || !adminPassword) {
   throw new Error("Please enter administrator username and password!\nUsage:\tnode init.js <adminUserName> <adminPassword>\n\n");
}

MongoClient.connect(url, function (err, client) {
    if (err) throw err;
    console.log("Connected successfully to server");
    const db = client.db(config.database.name);
    var adminDb = db.admin();
    adminDb.addUser(adminUser, adminPassword, {
        roles: [{
           role: "userAdminAnyDatabase",
           db: "admin"
        }]
    }).then(function (err, result) {
            MongoClient.connect(format(authURL, encodeURIComponent(adminUser), encodeURIComponent(adminPassword)), function (err, authClient) {
                  if (err) throw err;
                  console.log('Authenticated Successfully');
                  const db = client.db(config.database.name);
                  var adminDb = db.admin();
                  db.addUser(config.database.auth.username, config.database.auth.password, {
                         roles: [{
                             role: "readWrite",
                             db: config.database.name
                         }]
               }).then(function () {
                   console.log("Setup completed!");
                   authClient.close();
                   client.close();
               }).catch(function (err) {
                   throw err.stack;
        });
      });
   });
 });

Hier ist mein mongod.cfg die Konfigurationsdatei für mongod Prozess:

systemLog:
      destination: file
      path: D:\MongoDB\logs\mongod.log
storage:
      dbPath: D:\MongoDB\database
security:
      authorization: "enabled"

Und schließlich die Konfigurationsdatei config.json:

{
  "database": {
    "location": "localhost",
    "name": "mongodb-test",
    "port": 27017,
    "auth": {
        "username": "testuser",
        "password": "welcome"
     }
   }
 }
InformationsquelleAutor Ozil | 2018-01-07
Schreibe einen Kommentar