Kdykoli nastavujete mongodb, měli byste vytvořit administrátora s rolí userAdminAnyDatabase a tohoto uživatele budete moci vytvořit, i když mongod začíná s --auth nebo ne. tohoto uživatele můžete vytvořit níže uvedeným příkazem.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Poté, pokud autorizace není zapnutá, zapněte ji spuštěním mongod s příznakem --auth nebo zapněte autorizaci v mongod.conf a restartujte server mongod.
Poté se přihlaste do mongo shell pomocí níže uvedeného příkazu s uživatelem admin
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
Přejděte do databáze a vytvořte uživatele s oprávněním readWrite.
use myapplication
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "myapplication" }]
}
)
Nyní můžete použít uživatele myTester ke čtení/zápisu do databáze myapplication a kdykoli vytvoříte novou databázi, spusťte mongo shell s uživatelem myUserAdmin a vytvořte nového uživatele pro novou databázi.
V mongodb můžete také vytvořit jednoho uživatele a dát mu všechna oprávnění pro všechny databáze, ale to byste neměli dělat.
Pokud chcete dále zkoumat, můžete se podívat na níže uvedený odkaz. https://docs.mongodb.com/v3.2/tutorial/ enable-authentication/
A když omylem uzamknete mongodb, můžete vypnout autorizaci ze souboru mongod.conf a získat přístup ke svým datům.