sql >> Databasteknik >  >> NoSQL >> MongoDB

Grails - Anslut till en MongoDB-databas med autentisering

Jag stötte på samma problem så jag kan hjälpa till att förklara hur Mongo gör autentisering. Du ser vad du gjorde är att du skapade en administratörsanvändare i admindatabasen vilket är bra. Men du försöker ansluta till "mydb" direkt med adminanvändaren vilket inte är tillåtet. Låter det förvirrande? Det är för att det är det. För att illustrera detta bättre är här en enkel övning:

  1. Skapa en användare för admin-db som du har ovan.
  2. gå ur mongoskalet
  3. kör följande

Det kommer att misslyckas. Men prova detta istället.

Detta kommer att fungera eftersom du bytte till denna db med adminkontexten och inte försökte ansluta till den direkt.

Så allt du behöver göra för att få det här att fungera är att ansluta direkt till den DB du vill ha och skapa en användare direkt i den db som följer:

Uppdatera din grails konfigurationsfil med denna och jag slår vad om att det kommer att fungera.

Observera att bara den sista delen är ditt svar och löser ditt problem, men eftersom jag kämpade med detta och kom på det på den hårda vägen tror jag att sammanhanget verkligen hjälper till att förstå mongo auth bättre.

Ta hand om dig




  1. Vad är det mest effektiva kommunikationsbiblioteket/metoden för node.js mellan processer?

  2. Mongoose $lookup där localField är en sträng av ett ObjectId i foreignField

  3. MongoDB-värdalternativ nu när Heroku mLab-tillägget tas bort

  4. Heroku kunde inte autentisera mongolab