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.

  • 🔑 Kernmethode: Der Befehl db.createUser() stellt ein Konto bereit, indem er Benutzer, Passwort und ein Rollen-Array in einer einzigen Anweisung angibt.
  • 🛡️ Administratorbereich: Die Rolle „userAdminAnyDatabase“ gewährt Verwaltungsrechte für alle Datenbanken, während „userAdmin“ die Kontrolle auf eine benannte Datenbank beschränkt.
  • 🎯 Rollenzuweisung: Vorinstallierte Rollen wie read und readWrite entsprechen genau den Aktionen, die ein Benutzer an einer Sammlung durchführen kann.
  • 👥 Mehrere Datenbanken: Ein einzelnes Konto kann innerhalb eines Rollen-Arrays verschiedene Rollen in mehreren Datenbanken innehaben.
  • Überprüfung: Die Methode db.getUsers() und die zurückgegebene Ausgabe bestätigen, dass Konten und Berechtigungen korrekt bereitgestellt wurden.

Wie man einen Benutzer erstellt und eine Rolle hinzufügt MongoDB

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"}]})

MongoDB Erstellen Sie einen Administratorbenutzer

Code Erläuterung:

  1. Der erste Schritt besteht darin, den zu erstellenden „Benutzernamen“ und das „Passwort“ anzugeben.
  2. 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.
  3. 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:

MongoDB Erstellen Sie einen Administratorbenutzer

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:

MongoDB Erstellen Sie einen Benutzer für eine einzelne Datenbank

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

	roles:[{role: "userAdmin" , db:"Employee"}]})

Code Erläuterung:

  1. Der erste Schritt besteht darin, den zu erstellenden „Benutzernamen“ und das „Passwort“ anzugeben.
  2. 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.
  3. 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:

MongoDB Erstellen Sie einen Benutzer für eine einzelne Datenbank

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.

Verwalten von Benutzern

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.

Häufig gestellte Fragen

Ja. KI-Assistenten können eine einfache Beschreibung in einen gültigen `db.createUser()`-Befehl umwandeln, das richtige Rollen-Array zuweisen und den Befehl auf eine Datenbank beschränken. Testen Sie den generierten Befehl immer in einer Nicht-Produktionsdatenbank, bevor Sie ihn ausführen.

Ja. KI-gestützte Prüfwerkzeuge können die Ausgabe von `db.getUsers()` auslesen, Konten mit Root- oder `userAdminAnyDatabase`-Rechten kennzeichnen und Rollen mit minimalen Berechtigungen vorschlagen. Administratoren sollten jedoch jede Empfehlung prüfen, bevor sie den Zugriff in einem Produktivsystem entziehen.

Die Rolle „userAdmin“ verwaltet Benutzer und Rollen in einer bestimmten Datenbank, während „userAdminAnyDatabase“ Benutzeradministrationsrechte für alle Datenbanken der Instanz gewährt. Verwenden Sie „userAdmin“ für eine eingeschränkte Kontrolle und „userAdminAnyDatabase“ nur für vertrauenswürdige Administratoren.

Wechseln Sie mit dem Befehl use zur Datenbank, in der der Benutzer existiert, und führen Sie anschließend db.dropUser(“username”) aus. MongoDB Entfernt das Konto und seine Rollen aus der Datenbank. Bestätigen Sie die Entfernung anschließend mit `db.getUsers()`.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: