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.