MongoDB-Benutzerverwaltung

Die Benutzerverwaltung in MongoDB umfasst Vorgänge wie das Erstellen von Benutzern, das Zuweisen von Rollen, Authentifizierung und Anmeldung.

Im Folgenden finden Sie eine ausführliche Erklärung, einschließlich der Verwaltung von Benutzern mit MongoDB Shell (mongo) oder MongoDB Compass.

Benutzerverwaltung mit MongoDB Shell (mongo)

Im Folgenden finden Sie eine ausführliche Erklärung der Benutzerverwaltung mit MongoDB Shell (mongosh), einschließlich der konkreten Schritte zum Erstellen von Benutzern, Zuweisen von Rollen, Authentifizierung und Anmeldung.

1. Mit MongoDB verbinden

Öffnen Sie zunächst Ihr Terminal und verwenden Sie den Befehl mongosh, um eine Verbindung zum MongoDB-Server herzustellen:

mongosh --host <hostname> --port <port>

Erklärung:

  • mongosh: Startet das MongoDB Shell-Kommandozeilenwerkzeug.
  • --host <hostname>: Gibt den Hostnamen oder die IP-Adresse des MongoDB-Servers an.
    • <hostname>: Hostname des MongoDB-Servers (z. B.,localhost) oder IP-Adresse (z. B.,127.0.0.1)。
  • --port <port>: Gibt die Portnummer des MongoDB-Servers an.
    • <port>: Die Portnummer, auf der der MongoDB-Server lauscht, Standardport ist27017。

2. Zur Zieldatenbank wechseln

In MongoDB werden Benutzer für eine bestimmte Datenbank erstellt. Verwenden Sie denuseBefehl, um zur Datenbank zu wechseln, in der Sie den Benutzer erstellen möchten:

use <database_name>
  • database_name- ist die Datenbank, zu der gewechselt werden soll.

3. Benutzer erstellen

Verwenden Sie den Befehl db.createUser, um einen Benutzer zu erstellen und Rollen zuzuweisen.

Um beispielsweise einen Benutzer namens testuser mit dem Passwort password123 und den Rollen readWrite und dbAdmin zu erstellen:

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [
    { role: "readWrite", db: "<database_name>" },
    { role: "dbAdmin", db: "<database_name>" }
  ]
})

4. Benutzer verifizieren

Nach dem Erstellen des Benutzers können Sie den Befehl db.auth verwenden, um die Identität des Benutzers zu überprüfen:

db.auth("testuser", "password123")

5. Authentifizierung aktivieren

Um sicherzustellen, dass nur authentifizierte Benutzer auf MongoDB zugreifen können, müssen Sie die Authentifizierung aktivieren.

Bearbeiten Sie die MongoDB-Konfigurationsdatei mongod.conf und fügen Sie den folgenden Inhalt hinzu:

security:
  authorization: "enabled"

Starten Sie dann den MongoDB-Dienst neu, um die Änderungen anzuwenden.

6. Als Benutzer anmelden

Nachdem Sie die Authentifizierung aktiviert haben, müssen Sie sich mit den Anmeldeinformationen des erstellten Benutzers mit MongoDB verbinden:

mongosh --host <hostname> --port <port> -u "testuser" -p "password123" --authenticationDatabase "<database_name>"

7. Einen Benutzer löschen

Verwenden Sie dendb.dropUserBefehl, um den angegebenen Benutzer zu löschen.

Um beispielsweise den Benutzer namens testuser zu löschen:

db.dropUser("testuser")

Beispieloperationen

Im Folgenden finden Sie einen vollständigen Beispiel-Workflow:

Starten Sie die MongoDB Shell und stellen Sie eine Verbindung zum Server her:

mongosh --host localhost --port 27017

Wechseln Sie zur Datenbank testdb:

use testdb

Erstellen Sie den Benutzer testuser:

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [{ role: "readWrite", db: "testdb" }]
})

Authentifizierung aktivieren und die MongoDB-Instanz neu starten

Bearbeiten Sie die Datei mongod.conf und fügen Sie den folgenden Inhalt hinzu:

security:
  authorization: "enabled"

Starten Sie den MongoDB-Dienst neu:

sudo systemctl restart mongod

Stellen Sie mit Authentifizierung eine Verbindung mit dem Benutzer testuser her:

mongosh --host localhost --port 27017 -u "testuser" -p "password123" --authenticationDatabase "testdb"

Löschen Sie den Benutzer testuser:

db.dropUser("testuser")
Andere Erweiterungen