Der Begriff User in MongoDB bezeichnet eine Entität, die für den Zugriff auf die Datenbank autorisiert ist. MongoDB verwendet ein rollenbasiertes Zugriffskontrollmodell (Role-Based Access Control, RBAC), um den Zugriff von Benutzern auf Daten und Befehle zu steuern.
Ein Benutzer wird mit dem Befehl createUser erstellt.
Beispiel:
use admin
db.createUser({
user: "myUser",
pwd: "myPassword",
roles: [
{ role: "readWrite", db: "shopDB" },
{ role: "read", db: "analyticsDB" }
]
})user: Benutzername.pwd: Passwort.roles: Zuweisung von Rollen, die
Zugriff auf spezifische Aktionen und Datenbanken erlauben.Rollen definieren die Berechtigungen eines Benutzers. Es gibt zwei
Kategorien: - Vordefinierte Rollen: -
read: Nur-Lese-Zugriff auf eine Datenbank. -
readWrite: Lese- und Schreibzugriff. -
dbAdmin: Verwaltung der Datenbankstruktur (Indizes,
Statistiken etc.). - clusterAdmin: Verwaltung des gesamten
Clusters. - Benutzerdefinierte Rollen: Benutzer können
eigene Rollen mit spezifischen Berechtigungen erstellen.
Mit folgendem Befehl kannst du Benutzer einer Datenbank auflisten:
use admin
db.getUsers()use admin
db.dropUser("myUser")Beispiel für die Anmeldung eines Benutzers:
mongo --username myUser --password myPassword --authenticationDatabase adminMinimale Rechtevergabe: Benutzerrollen sollten nur die Berechtigungen enthalten, die für ihre Aufgaben erforderlich sind (Prinzip der geringsten Privilegien).
Separate Benutzer für Anwendungen: Erstelle separate Benutzer für verschiedene Anwendungen, um den Zugriff besser kontrollieren zu können.
Starke Passwörter verwenden: Nutze komplexe Passwörter und ändere sie regelmäßig.
Überwachung und Protokollierung: Aktiviere das MongoDB Audit Log, um Änderungen an Benutzern und Zugriffsversuchen zu protokollieren.
Sichere Authentifizierung: Verwende SCRAM-SHA-256 oder x.509-Zertifikate für höhere Sicherheit.