sql >> Database >  >> NoSQL >> MongoDB

hoe mongodb-authenticatie goed te krijgen

Telkens wanneer u mongodb instelt, moet u een admin-gebruiker maken met de rol userAdminAnyDatabase, en u kunt deze gebruiker maken, zelfs als mongod is gestart met --auth of niet. je kunt deze gebruiker maken met het onderstaande commando.

use admin

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

Hierna, als autorisatie niet is ingeschakeld, kunt u dit doen door mongod uit te voeren met --auth vlag, of autorisatie inschakelen in mongod.conf en de mongod-server opnieuw starten.

Log dan in op mongo shell door onderstaande opdracht met de admin-gebruiker

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

Ga naar de database en maak een gebruiker aan met lees-schrijfrechten.

use myapplication

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

Nu kunt u de myTester-gebruiker gebruiken om te lezen/schrijven in de myapplication-database, en wanneer u een nieuwe database maakt, start u mongo-shell met myUserAdmin-gebruiker en maakt u een nieuwe gebruiker voor de nieuwe database.

In mongodb kun je ook een enkele gebruiker maken en hem alle rechten voor alle databases geven, maar dat zou je niet moeten doen.

Als u verder wilt onderzoeken, kunt u onderstaande link bekijken. https://docs.mongodb.com/v3.2/tutorial/ enable-authentication/

En als je per ongeluk de mongodb hebt vergrendeld, kun je de autorisatie van het mongod.conf-bestand uitschakelen en toegang krijgen tot je gegevens.




  1. Tel efficiënt het percentage van voorkomen in MongoDB

  2. Kan Redis 6 profiteren van multi-core CPU's?

  3. Een overzicht van WiredTiger Storage Engine voor MongoDB

  4. Een array opvragen in een mangoestdocument