sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man får mongodb-autentisering rätt

När du ställer in mongodb bör du skapa en administratörsanvändare med rollen userAdminAnyDatabase, och du kommer att kunna skapa denna användare även om mongod startas med --auth eller inte. du kan skapa den här användaren med kommandot nedan.

use admin

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

Efter detta om auktorisering inte är aktiverad, på den av runnig mongod med --auth-flagga, eller slå på auktorisering i mongod.conf och starta om mongod-servern.

Logga sedan in på mongo shell med kommandot nedan med adminanvändaren

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

Gå till databasen och skapa en användare med lässkrivbehörighet.

use myapplication

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

Nu kan du använda myTester-användaren för att läsa/skriva i min applikationsdatabas, och när du skapar en ny databas, starta mongo shell med myUserAdmin-användaren och skapa en ny användare för ny databas.

I mongodb kan du också skapa en enda användare och ge honom alla behörigheter för alla databaser, men det ska du inte göra.

Om du vill forska vidare kan du kolla länken nedan. https://docs.mongodb.com/v3.2/tutorial/ aktivera-autentisering/

Och när du av misstag låste mongodb kan du stänga av auktoriseringen från filen mongod.conf och komma åt dina data.




  1. Ta bort ett föremål från en array mongodb motsvarande i mongoose

  2. Med mongo C#-drivrutinen, hur serialiserar man en uppsättning anpassade objekt för att lagra den?

  3. MongoDB + nodejs :hur frågar man ISODate-fält?

  4. Hitta en eller skapa med Mongoose