Authentifizierung und Autorisierung
Datenbanksicherheit ist essenziell – besonders wenn eine Datenbank im Netzwerk erreichbar ist. MongoDB bietet mehrere Mechanismen, um unbefugten Zugriff zu verhindern: Authentifizierung, Autorisierung über Rollen sowie eine granulare Benutzerverwaltung. In dieser Dokumentation lernst du, wie du die Sicherheit in MongoDB aktivierst und verwaltest.
Authentifizeriung und Autorisierung aktivieren
Standardmässig ist MongoDB im „offenen“ Modus – also ohne Authentifizierung. Um Sicherheit zu gewährleisten, muss man explizit die Authentifizierung aktivieren.
Ab jetzt muss sich jeder Benutzer mit einem gĂĽltigen Benutzernamen und Passwort anmelden. Wenn noch kein Benutzer vorhanden ist gilt die sogenannte Localhost Exception und du kannst einen Admin, bspw. mit der Rolle userAdminAnyDatabase
erstellen.
Rollen
MongoDB verwendet ein rollenbasiertes Zugriffskontrollsystem (RBAC). Rollen definieren, welche Aktionen ein Benutzer ausführen darf (z. B. find
, insert
, drop
).
Vordefinierte Rollen
read
: Nur Lesezugriff auf eine DatenbankreadWrite
: Lese- und Schreibrechte auf eine DatenbankdbAdmin
: Datenbank verwalten (Indexe, Validierung, etc.)dbOwner
: Kann alle administrativen Aktionen an der Datenbank durchfĂĽhrenuserAdmin
: Benutzer und Rollen verwaltenbackup
: Minimale Privilegien um ein Backup einer Datenbanken zu erstellenrestore:
Benötigte Privilegien für einen Restore einer Datenbankenroot
: Superuser
Du kannst auch eigene benutzerdefinierte Rollen erstellen.
Benutzer und Rollen verwalten
Benutzer erstellen
Um einen Benutzer zu erstellen können wir folgenden Befehl nutzen:
Anmelden
Um sich anzumelden musst du folgenden Befehl ausfĂĽhren:
Rollen vergeben und entziehen
Um Rollen nachträglich zu einem Nutzer hinzuzufügen, nutzen wir folgenden Befehl:
Um Rollen wieder zu entziehen nutzen wir folgenden Befehl:
Benutzer auflisten
Um alle Benutzer in einer Datenbank aufzulisten, nutzt du folgenden Befehl:
Passwort ändern
Um das Passwort eines Nutzers zu ändern, nutzt du folgenden Befehl:
Benutzer löschen
Um einen Benutzer zu löschen, nutzt du folgenden Befehl:
Zuletzt aktualisiert