Inhaltsverzeichnis
Wenn wir unseren Dienst in einer Produktionsumgebung oder vielleicht in einer Entwicklungsumgebung mit mehreren Benutzern einrichten, müssen wir als erstes ein Sicherheitsschema erstellen, damit wir unsere Datenbanken werden von Personen falsch aufgerufen.Das Hauptmerkmal von MongoDB ist, dass bei der Installation einer Instanz diese ausgeführt wird, ohne dass eine Authentifizierungsmaßnahme erstellt wurde. Dies erleichtert den Start der Entwicklung, aber es kommt ein Punkt, an dem wir unsere Infrastruktur sichern müssen.
Ein weiterer wichtiger Punkt im Zusammenhang mit dem Thema Sicherheit und Sicherung unserer Daten ist, wenn wir eine Sicherung zu einem bestimmten Zeitpunkt erstellen müssen, aber keine Datenbewegungen möchten, da wir auf diese Weise die Integrität unserer Daten gewährleisten Datenbanken und Dokumentensammlungen. In diesem Aspekt gibt es auch ein Werkzeug in MongoDB Dies ermöglicht es uns, sie vorübergehend zu blockieren, um sicherzustellen, dass das, was wir kopieren, angemessen ist.
AnforderungenDie Anforderungen, die wir bei dieser Gelegenheit benötigen, sind sehr einfach, wir müssen nur eine Instanz von . haben MongoDB installiert ist und auf unserem System ausgeführt wird, benötigen wir auch Zugriff auf den Dienst über die Konsole. Dieses Tutorial wurde entwickelt in Fenster, daher können sich einige Befehle in anderen Betriebssystemen ändern, aber alles hat damit zu tun, was außerhalb der Konsole getan wird MongoDB, und die Art und Weise, wie wir die Routen ausdrücken.
Das Festlegen von Benutzerauthentifizierungsparametern ist für den Betrieb von . nicht unbedingt erforderlich MongoDB in der Produktion, da wir den Dienst so installieren können, dass die Geräte, auf denen er ausgeführt wird, über einen Verbindungsfilter verfügen. Wenn wir also versuchen, auf diese Geräte außerhalb des Netzwerks zuzugreifen, haben wir keinen Zugriff.
Dieser vereinfachte Sicherheitsansatz ist sehr effektiv, jedoch nur für Projekte, bei denen der Dienst nicht mit anderen Teams geteilt wird, da wir etwas anderes benötigen, wenn verschiedene Entwicklungsteams gegen denselben Server arbeiten. Hier ist der Authentifizierung, damit kümmern wir uns auf Wunsch um die Abfrage eines Benutzers und eines Passworts pro Sammlung, somit haben wir die Möglichkeit, die verschiedenen Instanzen für jeden Computer adäquat zu trennen.
Beide Sicherheitsmaßnahmen schließen sich nicht aus, und wenn wir sie gleichzeitig verwenden möchten, schaffen wir einen viel sichereren Service für unsere Umgebung, sei es in der Produktion, in der Vorproduktion oder in der Multi-Team-Entwicklung.
Das Authentifizierung in seiner einfachsten Form wird es mit dem Befehl erreicht Benutzer erstellen Dies muss ausgeführt werden, wenn wir die Datenbank Administrator Hier sollten unsere Benutzer sein.
Es ist wichtig zu beachten, dass seit der Version 2.6 von MongoDB ist, dass die Methode begann, verwendet zu werden Benutzer erstellen, in der Vergangenheit wurde alles nach der Methode gelöst Benutzer hinzufügenDie Änderung wurde jedoch vorgenommen, um eine größere Vielseitigkeit bei der Durchführung von Änderungen zu ermöglichen.
Sehen wir uns an, wie wir einen Administratorbenutzer festlegen und dann einen Benutzer, der nur die Datenbank lesen kann Prüfung.
Die Struktur des Dokuments, das die Methode empfängt Benutzer erstellen ist der nächste:
{"User": "username", "pwd": "password", "roles": [{"role": "", "db": ""},]}Wie bereits erwähnt, müssen wir den Namen und das Passwort für den Benutzer festlegen, den wir erstellen, aber zusätzlich müssen wir auch die Rollen erstellen, eine Berechtigungsstruktur, die es uns ermöglicht, die Befugnisse zu definieren, die wir dem Benutzer geben .
Im folgenden Beispiel erstellen wir einen Administrator-Benutzer, der Zugriff auf alle Datenbanken und die den Dienst steuern können, dafür verwenden wir die Rollen:
- ClusterAdmin
- readAnyDatabase
- lesen Schreiben
Mit diesen drei Parametern können wir bereits unseren ersten Benutzer verwalten. Mal sehen, wie das auf der Konsole aussieht:
Damit haben wir unseren Administrator-Benutzer bereits erfolgreich erstellt, jetzt müssen wir uns den Benutzernamen und das Passwort richtig merken, denn der nächste Schritt ist die Aktivierung der Sicherheit, dazu müssen wir den Dienst mit dem Parameter starten -auth.
Beim Neustart des Dienstes können wir dann unseren neu erstellten Administrator-Benutzer platzieren und zum Testen einen Benutzer erstellen, der nur die lesen kann Datenbank. Sehen wir uns an, wie wir den Dienst in den folgenden Schritten neu starten.
Wir müssen es einfach zuerst stoppen, zum Beispiel in Fenster wir positionieren uns auf der konsole, in der es läuft und drücken die tasten STRG + C. Dann starten wir unseren Dienst wieder normal aber am Ende übergeben wir den Parameter auth, wie wir in der folgenden Konsole sehen können:
Sobald dies erledigt ist, kehren wir zur Steuerkonsole von . zurück MongoDB, aber in diesem Fall, wenn wir unseren neu erstellten Benutzer verwenden:
mongo.exe --username = root --password = 123456 adminMit dieser vorherigen Zeile können wir sicher auf unseren Service zugreifen, wir können dies in der folgenden Abbildung sehen:
Denken Sie daran, dass wir in diesem Beispiel ein sichereres Passwort als "123456" verwenden müssen. Es wird nur zu Demonstrationszwecken verwendet, ist jedoch für eine Produktionsumgebung nicht geeignet.
Da wir den Zugriff mit Authentifizierung überprüft haben, erstellen wir einen Benutzer, der nur die Datenbank Prüfung, dazu wiederholen wir die Erstellung eines Benutzers, geben jedoch die Rolle an:
lesenAuf diese Weise beschränken wir den Benutzer darauf, nicht in die Sammlungen schreiben zu können. Sehen wir uns die Antwort in unserer Konsole an:
Wenn wir jetzt versuchen, ein Dokument zu schreiben, erhalten wir einen Fehler:
Wir haben dann gesehen, wie wir unsere Benutzer bereits ausreichend abgesichert haben, es ist klar, dass diese Benutzerverwaltung etwas komplex ist, aber wenn wir es getan haben, können wir mit großer Sicherheit sein, dass wir keinen unbefugten Zugriff auf die Datenbanken die wir schützen.
Eine der komplexesten Aktivitäten, die wir bei der Erstellung eines Backups sicherstellen müssen, besteht darin, die Integrität der Daten zu gewährleisten. Dies führt uns in ein Dilemma, den Zeitpunkt zu ermitteln, zu dem weniger Benutzer arbeiten und das Backup zu erstellen, oder dies unabhängig von den Daten zu tun .
fsync und sperrenDies sollte nicht der Fall sein, es wird natürlich immer empfohlen, ein Backup zu dem Zeitpunkt zu erstellen, zu dem wir wissen, dass es die geringste Anzahl von Benutzern gibt, da wir Anwendungsprobleme vermeiden und garantieren, dass die Daten immer möglich sind, wenn wir das verwenden, was wir verwenden MongoDB wir wissen wie fsync Ja sperren.
Mit diesen beiden Parametern können wir unsere Datenbank dazu bringen, die Schreibvorgänge abzulehnen, und im richtigen Moment können wir die Backups entsprechend ausführen.
Um diese Sperre zu erstellen, müssen wir den folgenden Befehl in unserer Datenbank ausführen:
db.runCommand ({"fsync": "1", "lock": "1"});Damit haben wir unsere Datenbank effektiv schreibgeschützt:
Wie wir sehen, ist es ganz einfach und effektiv. Wenn wir die Sperre jetzt aufbrechen möchten, müssen wir nur den Befehl erneut ausführen:
db.fsyncUnlock();Mit letzterem werden wir wieder unsere Datenbank Schreibfähig:
Obwohl das oben Genannte eine größere Flexibilität darstellt und uns viel mehr Sicherheit gegen Datenbeschädigung bietet und die Integrität begünstigt, ist dies wirklich keine Praxis, die wir in realen Produktionsumgebungen befolgen sollten.
Das Ideal ist, eine Umgebung mit Replikation zu schaffen, in der wir auf eine Kopie der Daten zugreifen und somit mit allen Optionen, die wir haben, die erforderlichen Backups manipulieren können. In einer Nachbildung des Datenbank Produktion können wir es blockieren oder ausschalten und das Backup so erstellen, dass der Benutzer nie auf einen Fehler in der Anwendung stößt, weil er keinen Datensatz schreiben kann.
Was Backups angeht, wird es komplizierter, da es ratsam ist, Server-Replikate zu verwenden, jedoch aufgrund der Art und Weise, wie es konzipiert wurde MongoDB, diese Art von Strukturen Meister - Sklave Sie sind sehr einfach zu implementieren, daher ist es am schwierigsten, das Konzept zu verstehen, aber seine Anwendung ist äußerst benutzerfreundlich. DBA.
Damit beenden wir dieses Tutorial, da wir die Verwaltung von sehen MongoDB Es ist ziemlich fortgeschritten, wenn wir eine mittelgroße Struktur haben, haben wir uns vielleicht schon Gedanken über das Thema Benutzersicherheit gemacht, obwohl die Erstellung von Benutzern nicht komplex ist, wenn es gut ist, sich hinzusetzen und eine gute Struktur zu definieren, um diese Art von zu erstellen erlaubt.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben