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

Erstellen Sie eine sichere Datenbank in Mongodb

Aus Mongo Java Tutorial

MongoDB kann in einem sicheren Modus ausgeführt werden, in dem der Zugriff auf Datenbanken durch Namens- und Kennwortauthentifizierung gesteuert wird. Wenn sie in diesem Modus ausgeführt wird, muss jede Client-Anwendung einen Namen und ein Kennwort angeben, bevor sie irgendwelche Vorgänge ausführen kann. Im Java-Treiber machen Sie einfach Folgendes mit dem verbundenen Mongo-Objekt:

boolean auth = db.authenticate(myUserName, myPassword);

Wenn der Name und das Passwort für die Datenbank gültig sind, ist auth wahr. Andernfalls wird es falsch sein. Weitere Informationen finden Sie im MongoDB-Protokoll, sofern verfügbar.

Die meisten Benutzer führen MongoDB ohne Authentifizierung in einer vertrauenswürdigen Umgebung aus.

Authentifizierung und Sicherheit konfigurieren

Die Authentifizierung wird in der system.users-Sammlung jeder Datenbank gespeichert. Beispiel:Auf einer Datenbank projectx enthält projectx.system.users Benutzerinformationen.

Wir sollten zuerst einen Administratorbenutzer für den gesamten DB-Serverprozess konfigurieren. Dieser Benutzer wird unter der speziellen Admin-Datenbank gespeichert.

Wenn in admin.system.users keine Benutzer konfiguriert sind, kann man ohne Authentifizierung über die localhost-Schnittstelle auf die Datenbank zugreifen. Führen Sie daher auf dem Server, auf dem die Datenbank läuft (und somit auf localhost), die Datenbank-Shell aus und konfigurieren Sie einen administrativen Benutzer:

$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")

Wir haben jetzt einen Benutzer für den Datenbankadministrator erstellt. Beachten Sie, dass wir, wenn wir uns vorher nicht authentifiziert haben, jetzt weitere Operationen durchführen möchten, da es einen Benutzer in admin.system.users gibt.

> db.auth("theadmin", "anadminpassword")

Wir können vorhandene Benutzer für die Datenbank mit dem Befehl anzeigen:

> db.system.users.find()

Lassen Sie uns nun einen "normalen" Benutzer für eine andere Datenbank konfigurieren.

> use projectx
> db.addUser("joe", "passwordForJoe")

Zum Schluss fügen wir einen schreibgeschützten Benutzer hinzu. (nur in 1.3.2+ unterstützt)

> use projectx
> db.addUser("guest", "passwordForGuest", true)