So erstellen Sie einen Benutzer und fügen eine Rolle hinzu MongoDB
⚡ Intelligente Zusammenfassung
Erstellen eines Benutzers und Hinzufügen einer Rolle in MongoDB nutzt die Methode db.createUser(), um Anmeldeinformationen zu definieren, integrierte Rollen zuzuweisen und Berechtigungen auf bestimmte Datenbanken zu beschränken, wodurch die Zugriffskontrolle über administrative Konten und Einzeldatenbankkonten hinweg gestärkt wird.
Was sind integrierte Rollen in MongoDB?
Bevor Sie ein Konto erstellen, ist es hilfreich, die integrierten Rollen zu verstehen, die MongoDB Eine Rolle ist eine benannte Sammlung von Berechtigungen, wobei jede Berechtigung eine Ressource (eine Datenbank oder Sammlung) mit den darauf zulässigen Aktionen verknüpft. Die Zuweisung einer Rolle bei der Benutzererstellung legt daher genau fest, welche Aktionen dieses Konto ausführen darf.
MongoDB Die integrierten Rollen werden in Datenbankbenutzerrollen, Datenbankadministratorrollen, Clusteradministratorrollen, Sicherungs- und Wiederherstellungsrollen sowie Superuser-Rollen unterteilt. Die folgende Tabelle fasst die am häufigsten verwendeten Rollen bei der Benutzerverwaltung zusammen:
| Funktion / Rolle (Role) * | Kategorie | Gewährte Privilegien |
|---|---|---|
| besuch | Datenbankbenutzer | Schreibgeschützter Zugriff auf alle Nicht-System-Sammlungen in einer Datenbank. |
| Lesen Schreiben | Datenbankbenutzer | Lesezugriff sowie Einfüge-, Aktualisierungs- und Löschrechte für Sammlungen. |
| dbAdmin | Datenbankadministrator | Schema-, Indexierungs- und Statistikverwaltung für eine Datenbank. |
| BenutzerAdmin | Datenbankadministrator | Benutzer und Rollen in einer einzigen Datenbank erstellen und bearbeiten. |
| userAdminAnyDatabase | Superuser | Benutzerverwaltung für alle Datenbanken der Instanz. |
| Wurzel | Superuser | Voller Zugriff auf alle Ressourcen und Abläufe. |
MongoDB Erstellen Sie einen Administratorbenutzer
Erstellen eines Benutzeradministrators in MongoDB erfolgt mithilfe der Methode createUser. Das folgende Beispiel zeigt, wie dies durchgeführt werden kann.
db.createUser(
{ user: "Guru99",
pwd: "password",
roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
Code Erläuterung:
- Der erste Schritt besteht darin, den zu erstellenden „Benutzernamen“ und das „Passwort“ anzugeben.
- Im zweiten Schritt wird dem Benutzer eine Rolle zugewiesen. Da es sich um einen Datenbankadministrator handeln muss, haben wir ihm die Rolle „userAdminAnyDatabase“ zugewiesen. Diese Rolle ermöglicht dem Benutzer administrative Berechtigungen für alle Datenbanken in MongoDB.
- Der Parameter „db“ gibt die Admin-Datenbank an, eine spezielle Meta-Datenbank innerhalb von MongoDB dort werden die Informationen für diesen Benutzer gespeichert.
Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt:
Ausgang:
Die Ausgabe zeigt, dass ein Benutzer namens „GuruDie Datenbank „99“ wurde erstellt und dieser Benutzer hat Berechtigungen für alle Datenbanken in MongoDB.
MongoDB Erstellen Sie einen Benutzer für eine einzelne Datenbank
Um einen Benutzer zu erstellen, der eine einzelne Datenbank verwaltet, können wir den gleichen Befehl wie oben verwenden, allerdings müssen wir dabei nur die Option „userAdmin“ verwenden.
Das folgende Beispiel zeigt, wie das gehen kann:
db.createUser(
{
user: "Employeeadmin",
pwd: "password",
roles:[{role: "userAdmin" , db:"Employee"}]})
Code Erläuterung:
- Der erste Schritt besteht darin, den zu erstellenden „Benutzernamen“ und das „Passwort“ anzugeben.
- Im zweiten Schritt wird dem Benutzer eine Rolle zugewiesen. Da er in diesem Fall Datenbankadministrator sein muss, erhält er die Rolle „userAdmin“. Diese Rolle gewährt dem Benutzer administrative Berechtigungen ausschließlich für die in der Option „db“ angegebene Datenbank.
- Der Parameter db gibt die Datenbank an, für die der Benutzer Administratorrechte haben soll.
Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt:
Ausgang:
Die Ausgabe zeigt, dass ein Benutzer namens „Employeeadmin“ erstellt wurde und dieser Benutzer nur über Berechtigungen für die Datenbank „Employee“ verfügt.
Benutzer verwalten
Zunächst sollten Sie die Rollen verstehen, die Sie definieren müssen. Es gibt eine ganze Liste verfügbarer Rollen in MongoDBEs gibt beispielsweise die Rolle „Lesen“, die nur Lesezugriff auf Datenbanken erlaubt, und die Rolle „Lesen/Schreiben“, die Lese- und Schreibzugriff auf die Datenbank ermöglicht. Das bedeutet, dass der Benutzer die Befehle zum Einfügen, Löschen und Aktualisieren von Daten in Sammlungen dieser Datenbank ausführen kann.
db.createUser(
{
user: "Mohan",
pwd: "password",
roles:[
{ role: "read" , db:"Marketing" },
{ role: "readWrite" , db:"Sales" }
]
})
Der obige Codeausschnitt zeigt, dass ein Benutzer namens Mohan angelegt und ihm mehrere Rollen in verschiedenen Datenbanken zugewiesen werden. Im obigen Beispiel erhält er Leseberechtigung für die Datenbank „Marketing“ und Lese-/Schreibberechtigung für die Datenbank „Sales“.
So können Sie die Anzeige und Verwaltung MongoDB Nutzer
Nachdem Konten existieren, MongoDB bietet eine Reihe von Befehlen zum Überprüfen, Aktualisieren und Entfernen dieser Dateien ohne Datenverlust.ping und jeden Benutzer neu anzulegen. Diese Befehle werden in der Datenbank ausgeführt, in der der Benutzer erstellt wurde. Wechseln Sie daher vor der Ausführung mit der USE-Anweisung zur richtigen Datenbank.
Die gebräuchlichsten Befehle zur Benutzerverwaltung sind:
- db.getUsers() — listet alle in der aktuellen Datenbank definierten Benutzer zusammen mit den Rollen auf, die jeder von ihnen innehat.
- db.getUser(“username”) — gibt die Details eines einzelnen Kontos zurück, was für die Überprüfung von Berechtigungen nützlich ist.
- db.grantRolesToUser() — fügt einem bestehenden Benutzer eine oder mehrere Rollen hinzu, ohne die aktuellen Rollen zu beeinflussen.
- db.revokeRolesFromUser() — beseitigt bestimmte Rollen und verschärft den Zugriff, wenn sich die Verantwortlichkeiten ändern.
- db.changeUserPassword() — setzt das Passwort für ein Konto zurück, während es keeping seine Rollen intakt.
- db.dropUser() — löscht einen Benutzer dauerhaft aus der Datenbank.
Das folgende Beispiel vergibt eine zusätzliche Rolle, entzieht eine andere, setzt ein Passwort zurück und löscht schließlich das Konto:
// List all users in the current database db.getUsers() // Grant an additional role to an existing user db.grantRolesToUser("Employeeadmin", [{ role: "readWrite", db: "Employee" }]) // Remove a role from a user db.revokeRolesFromUser("Employeeadmin", [{ role: "userAdmin", db: "Employee" }]) // Change a user's password db.changeUserPassword("Employeeadmin", "newPassword") // Delete a user db.dropUser("Employeeadmin")
Durch erneutes Ausführen von db.getUsers() nach diesen Operationen wird bestätigt, dass die Änderungen angewendet wurden und dass nur noch die beabsichtigten Konten und Rollen übrig bleiben.
Best Practices für MongoDB Die Benutzerverwaltung
Gut geplante Benutzerkonten gewährleisten einen reibungslosen Ablauf. MongoDB Sichere Bereitstellung und einfache Überprüfung. Die folgenden Vorgehensweisen reduzieren das Risiko versehentlicher Datenoffenlegung und Berechtigungsmissbrauchs:
- Wenden Sie die geringsten Berechtigungen an: Weisen Sie einem Konto nur die Rollen zu, die es tatsächlich benötigt, wobei Lese- und Schreibrechte für eine einzelne Datenbank gegenüber umfassenden administrativen Rollen bevorzugt werden.
- Vermeiden Sie Root-Zugriff in der Produktion: Die Rollen „root“ und „userAdminAnyDatabase“ sind für Einrichtungs- und Notfallaufgaben und nicht für den täglichen Betrieb reserviert.
- Authentifizierung aktivieren: Starten Sie den Server mit der Option –auth, damit die Anmeldeinformationen auch tatsächlich erzwungen werden.
- Verwenden Sie starke Passwörter: Kombinieren Sie Länge und Komplexität und rotieren Sie Passwörter regelmäßig mit db.changeUserPassword().
- Regelmäßige Audits: RevÜberprüfen Sie regelmäßig die Ausgabe von db.getUsers() und entfernen Sie nicht mehr benötigte Konten.
Zusammengenommen gewährleisten diese Gewohnheiten, dass jedes Konto einem tatsächlichen Bedarf entspricht und der Zugriff darauf möglich ist. tracwird immer dann durchgeführt, wenn eine Sicherheitsüberprüfung stattfindet.






