MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB:Server hat Startwarnungen „Zugriffskontrolle ist für die Datenbank nicht aktiviert“

Mongodb v3.4

Sie müssen Folgendes tun, um eine sichere Datenbank zu erstellen:

Stellen Sie sicher, dass der Benutzer, der den Prozess startet, Berechtigungen hat und dass die Verzeichnisse vorhanden sind (/data/db in diesem Fall).

1) Starten Sie MongoDB ohne Zugriffskontrolle.

mongod --port 27017 --dbpath /data/db

2) Verbinden Sie sich mit der Instanz.

mongo --port 27017

3) Erstellen Sie den Benutzeradministrator (in der Admin-Authentifizierungsdatenbank) .

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

4) Starten Sie die MongoDB-Instanz mit Zugriffskontrolle neu.

mongod --auth --port 27017 --dbpath /data/db

5) Verbinden und als Benutzeradministrator authentifizieren.

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

6) Erstellen Sie nach Bedarf weitere Benutzer für Ihre Bereitstellung (z. B. in der Testauthentifizierungsdatenbank) .

use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

7) Verbinden und als myTester authentifizieren.

mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"

Ich habe im Grunde nur die Kurzversion der offiziellen Dokumentation hier erklärt:https://docs.mongodb.com/master/tutorial/enable-authentication/