Heim  >  Artikel  >  Web-Frontend  >  Einführung in Benutzer und Berechtigungen in mongoDB

Einführung in Benutzer und Berechtigungen in mongoDB

不言
不言Original
2018-07-27 11:03:511660Durchsuche

Der Inhalt dieses Artikels ist eine Einführung in Benutzer und Berechtigungen in mongoDB. Er hat einen guten Referenzwert und ich hoffe, er kann Freunden in Not helfen.

Vorwort

Für Datenbanken sind Benutzer und Berechtigungen ein sehr wichtiger Teil, da sie Sicherheit beinhalten. Was sind also die Benutzer und Berechtigungen von mongoDB?

Anweisungen

Umgebungsanweisungen

Die in diesem Artikel verwendete MongoDB-Version ist 3.6 und das Betriebssystem ist Windows.

Weitere Anweisungen

Aus Platzgründen wird in diesem Artikel nicht der Prozess vom Herunterladen bis zur Installation der Datenbank vorgestellt. Im Internet gibt es viele Tutorials, denen Sie folgen können Lesen Sie diese Tutorials, um es zu installieren und auszuführen. Dieser Artikel konzentriert sich auf den 用户和权限-Teil von mongoDB.

Server und Client

Für mongoDB ist es in Server und Client unterteilt.
Doppelklicken Sie im Installationsverzeichnis der Windows-Umgebung, um mongod.exe zu öffnen und den mongoDB-Dienst zu starten.
Wenn der Dienst gestartet ist, können Sie auf mongo.exe doppelklicken, um den Client zu öffnen und eine Verbindung zum mongoDB-Dienst herzustellen.

Autorisierungsmodus aktivieren

Wenn Sie nach der Installation von mongoDB den Dienst direkt mit mongod.exe starten, 默认是没有开启授权模式的, wenn Ihr mongoDB den Autorisierungsmodus nicht aktiviert, benötigt niemand einen Benutzername und Passwort Sie können sich auch beim MongoDB-Server anmelden und mit Ihrer Datenbank machen, was Sie wollen, sogar direkt 删库跑路. Denken Sie daher in einer Produktionsumgebung unbedingt daran, den Autorisierungsmodus zu aktivieren.

Wie aktiviere ich den Autorisierungsmodus?
Öffnen Sie cmd, geben Sie das bin-Verzeichnis des Installationsverzeichnisses ein und führen Sie den folgenden Befehl aus:

mongod --auth --port 27017 --dbpath /data/db

Nachdem Sie den Autorisierungsmodus aktiviert haben, öffnen Sie mongo.exe und führen Sie show dbs unter der Admin-Datenbank aus. Zu diesem Zeitpunkt meldet die Datenbank einen Fehler und erinnert Sie daran, dass keine Autorisierung vorliegt. Wie folgt:

Einführung in Benutzer und Berechtigungen in mongoDB

Benutzertyp

Die MongoDB-Datenbank ist grob in zwei Benutzertypen unterteilt, einer ist der Administratorbenutzer, der andere other ist ein normaler Benutzer.

Administrator

Wir erstellen einen Administratorbenutzer (userAdmin- oder userAdminAnyDatabase-Rolle) in der Admin-Datenbank. Der Administratorbenutzer kann normale Benutzer verwalten.
Starten Sie zunächst den mongoDB-Dienst mit 非授权模式.

mongod --port 27017 --dbpath /data/db

Geben Sie dann die Admin-Datenbank ein und führen Sie den folgenden Befehl aus:

use admin
db.createUser(
  {
    user: "larry",
    pwd: "123456",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Wenn die Meldung „Benutzer erfolgreich hinzugefügt“ angezeigt wird, wird bewiesen, dass der Administratorbenutzer erfolgreich hinzugefügt wurde.

Normaler Benutzer

Wenn der Administratorbenutzer erfolgreich erstellt wurde, können wir diesen Administratorbenutzer verwenden, um einen normalen Benutzer für jede Datenbank zu erstellen.
Schließen Sie zunächst alle Mongo-Shell-Fenster oben.
Anschließend verwenden Sie 授权模式, um den mongoDB-Dienst zu starten.

mongod --auth --port 27017 --dbpath /data/db

Öffnen Sie den mongo.exe-Client, geben Sie die Admin-Datenbank ein und melden Sie sich mit db.auth() an.

Einführung in Benutzer und Berechtigungen in mongoDB

Der erste Parameter ist der oben erstellte Administrator-Benutzername Larry und der zweite Parameter ist das Passwort des Administrator-Benutzers Larry.
Das Ergebnis gibt 1 zurück, was darauf hinweist, dass sich der Administrator Larry erfolgreich angemeldet hat.
Als nächstes erstellen Sie mit diesem Administrator ein normales Benutzer-Moddx für die photo_app-Datenbank und geben dessen Berechtigungen als readWrite an.

use photo_app
db.createUser(
{
  user: "moddx",
  pwd: "123456",
  roles: [{ role: "readWrite", db: "photo_app"}]
}
)

Benutzer anzeigen

Alle globalen Konten

Melden Sie sich zunächst als 管理员账户 bei der Admin-Datenbank an und führen Sie dann den folgenden Befehl aus:

db.system.users.find().pretty()

Einführung in Benutzer und Berechtigungen in mongoDB

Konten unter der aktuellen Bibliothek

Alle globalen Konten anzeigen, nur Administratoren können sie anzeigen, und Konten in der aktuellen Bibliothek, normale Benutzer und Administratoren anzeigen Benutzer Alle können angezeigt werden. Der Befehl zum Anzeigen des Kontos unter der aktuellen Bibliothek lautet wie folgt:

show users

Einführung in Benutzer und Berechtigungen in mongoDB

Benutzer löschen

Ein Administrator, der über Drop-Benutzerrechte verfügen muss. Das Konto eines Benutzers kann nur gelöscht werden. Sie müssen sich daher zum Betrieb mit einem Administratorkonto anmelden.
Der Befehl zum Löschen eines normalen Benutzers moddx lautet wie folgt:

db.dropUser("moddx", {w: "majority", wtimeout: 5000})

Berechtigungen widerrufen

Um die Berechtigungen eines Benutzers zu widerrufen, lautet der Befehl wie folgt:

db.revokeRolesFromUser(
    "moddx",
    [
      { role: "readWrite", db: "photo_app" }
    ]
)

Hinweis: Obwohl der obige Befehl moddx widerruft, verfügt der Benutzer über Lese- und Schreibberechtigungen in der photo_app-Datenbank. Der Benutzer wurde jedoch nicht gelöscht und kann sich weiterhin anmelden.

Berechtigungen erteilen

Der folgende Befehl erteilt dem Benutzer moddx Lese- und Schreibberechtigungen in photo_app und erteilt ihm gleichzeitig Leseberechtigungen in der Demodb-Datenbank

use photo_app
db.grantRolesToUser(
   "moddx",
   [ "readWrite" , { role: "read", db: "demodb" } ],
   { w: "majority" , wtimeout: 4000 }
)

Passwort ändern

Der folgende Befehl ändert das Passwort des Benutzers moddx in photo_app:

use photo_app
db.changeUserPassword("moddx", "newpwd")

Zusammenfassung

In Bezug auf Benutzer und Berechtigungen sind dies die gängigen Shell-Betriebsbefehle Sie verwenden MongoDB aus Bequemlichkeitsgründen.

Verwandte Empfehlungen:

[MongoDB] Mongodb und PHP PHP Mongodb aktualisieren PHP-Verbindung Mongodb PHP Mongodb nicht autorisieren

MongoDB Journey (2) Grundbetrieb (MongoDB Javascript Shell)

Das obige ist der detaillierte Inhalt vonEinführung in Benutzer und Berechtigungen in mongoDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn