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 RolleuserAdminAnyDatabase 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
Benutzer und Rollen verwalten
Benutzer erstellen
Um einen Benutzer zu erstellen können wir folgenden Befehl nutzen:Die angegebene Datenbank in der der Benutzer definiert wird (im Beispiel
admin), wird für die Authentifizierung verwendet und muss bei der Anmeldung mit angegeben werden. Obwohl der Benutzer sich bei dieser Datenbank authentifiziert, kann er Berechtigungen auch auf anderen Datenbanken haben.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:Verwende immer dieselbe Datenbank (hier
admin) für die Authentifizierung.