MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

wie man die Mongodb-Authentifizierung richtig erhält

Wann immer Sie mongodb einrichten, sollten Sie einen Admin-Benutzer mit der Rolle userAdminAnyDatabase erstellen, und Sie können diesen Benutzer erstellen, selbst wenn mongod mit --auth gestartet wird oder nicht. Sie können diesen Benutzer mit dem folgenden Befehl erstellen.

use admin

db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Wenn die Autorisierung danach nicht aktiviert ist, führen Sie Mongod mit dem Flag --auth aus, oder aktivieren Sie die Autorisierung in mongod.conf und starten Sie den Mongod-Server neu.

Melden Sie sich dann mit dem folgenden Befehl mit dem Admin-Benutzer bei der Mongo-Shell an

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

Gehen Sie zur Datenbank und erstellen Sie einen Benutzer mit readWrite-Berechtigung.

use myapplication

db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "myapplication" }]
  }
)

Jetzt können Sie den Benutzer myTester verwenden, um in der Datenbank myapplication zu lesen/schreiben, und wann immer Sie eine neue Datenbank erstellen, starten Sie die Mongo-Shell mit dem Benutzer myUserAdmin und erstellen Sie einen neuen Benutzer für die neue Datenbank.

In mongodb können Sie auch einen einzelnen Benutzer erstellen und ihm alle Berechtigungen für alle Datenbanken geben, aber das sollten Sie nicht tun.

Wenn Sie weiter recherchieren möchten, können Sie den folgenden Link überprüfen. https://docs.mongodb.com/v3.2/tutorial/ enable-authentication/

Und wenn Sie die mongodb versehentlich gesperrt haben, können Sie die Autorisierung in der Datei mongod.conf deaktivieren und auf Ihre Daten zugreifen.