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.
Für Datenbanken sind Benutzer und Berechtigungen ein sehr wichtiger Teil, da sie Sicherheit beinhalten. Was sind also die Benutzer und Berechtigungen von mongoDB?
Die in diesem Artikel verwendete MongoDB-Version ist 3.6 und das Betriebssystem ist Windows.
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.
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.
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:
Die MongoDB-Datenbank ist grob in zwei Benutzertypen unterteilt, einer ist der Administratorbenutzer, der andere other ist ein normaler Benutzer.
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.
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.
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"}] } )
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()
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
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})
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.
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 } )
Der folgende Befehl ändert das Passwort des Benutzers moddx in photo_app:
use photo_app db.changeUserPassword("moddx", "newpwd")
In Bezug auf Benutzer und Berechtigungen sind dies die gängigen Shell-Betriebsbefehle Sie verwenden MongoDB aus Bequemlichkeitsgründen.
Verwandte Empfehlungen:
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!