MongoDB: Server hat Startwarnungen '' Zugriffskontrolle für die Datenbank nicht aktiviert ''


86

Ich habe heute zuerst MongoDB 3.4.1 installiert. Aber als ich es startete und die MongoDB-Shell verwendete, gab es mir die folgenden Warnungen:

C:\Users\hs>"C:\Program Files\MongoDB\Server\3.4\bin\mongo.exe
MongoDB shell version v3.4.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.1
Server has startup warnings:
2017-01-12T21:19:46.941+0800 I CONTROL  [initandlisten]
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-01-12T21:19:46.942+0800 I CONTROL  [initandlisten]

Mein Computer ist Microsoft Windows [ version 10.0.14393].



6
Dies ist fast ein perfektes Duplikat einer anderen Frage. Haben Sie dies letztes Jahr bereits unter einem anderen Benutzernamen gefragt? Das einzige, was anders ist, ist der Benutzername und die Version von Windows. Siehe: stackoverflow.com/questions/36660117/…
Joseph Ferris

@JosephFerris, Ja, dies ist eine Duplizierung für stackoverflow.com/questions/36660117/… und diese Frage wurde aufgrund dieser Duplizierung geschlossen.
Lakmal Vithanage

Antworten:


133

Mongodb v3.4

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

Stellen Sie sicher, dass der Benutzer, der den Prozess startet, über Berechtigungen verfügt und dass die Verzeichnisse vorhanden sind ( /data/dbin diesem Fall).

1) Starten Sie MongoDB ohne Zugriffskontrolle.

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

2) Stellen Sie eine Verbindung zur Instanz her.

mongo --port 27017

3) Erstellen Sie den Benutzeradministrator (in der Administratorauthentifizierungsdatenbank) .

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

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

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

5) Stellen Sie eine Verbindung her und authentifizieren Sie sich als Benutzeradministrator.

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

6) Erstellen Sie nach Bedarf zusätzliche 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 authentifizieren Sie sich als myTester.

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

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


1
Ich mag, wie Sie sagten, aber nur ein Problem ist, dass dies jedes Mal oder einmal vergehen muss. wenn jedes mal dann wie mit service geben, weil auf einem server ich diesen sudo service mongoDb starten möchte?
Suresh Pareek

5
@sureshpareek Sie können dies in der Datei mongodb.conf konfigurieren, wenn Sie es nicht jedes Mal übergeben möchten. Weitere Informationen finden Sie hier: docs.mongodb.com/manual/reference/configuration-options/…
basickarl

1
@sureshpareek Kein Problem Mann! Überprüfen Sie hier, ob Sie mehr darüber erfahren möchten: möchten stackoverflow.com/a/42929869/1137669 Ich erkläre dies etwas ausführlicher.
Basickarl

Ich versage im ersten Schritt. Ich war Version v3.6.5. Die gleiche Warnung und es wird heruntergefahren
Wyx

6
Ernsthaft Leute ... Warum sagst du nicht, dass du das security.authorizationin mongod.confaktivieren sollst ??????
John

-4

Sie müssen Ihren alten Datenbankordner löschen und einen neuen erstellen. Es wird Ihr Problem beheben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.