Når du opsætter mongodb, bør du oprette en admin-bruger med rollen userAdminAnyDatabase, og du vil være i stand til at oprette denne bruger, selv mongod er startet med --auth eller ej. du kan oprette denne bruger ved hjælp af nedenstående kommando.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Efter dette, hvis autorisation ikke er slået til, skal du aktivere det af runnig mongod med --auth flag, eller slå autorisation til i mongod.conf og genstarte mongod server.
Log derefter ind på mongo shell med nedenstående kommando med admin-brugeren
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
Gå til databasen, og opret en bruger med readWrite-tilladelse.
use myapplication
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "myapplication" }]
}
)
Nu kan du bruge myTester-brugeren til at læse/skrive i min applikationsdatabase, og når du opretter en ny database, skal du starte mongo-shell med myUserAdmin-brugeren og oprette en ny bruger til ny database.
I mongodb kan du også oprette en enkelt bruger og give ham alle tilladelser til alle databaser, men det skal du ikke gøre.
Hvis du vil undersøge yderligere, kan du tjekke nedenstående link. https://docs.mongodb.com/v3.2/tutorial/ enable-authentication/
Og når du ved et uheld låste mongodb'en, kan du deaktivere godkendelsen fra filen mongod.conf og få adgang til dine data.