Waar, d.w.z. in welke database heb je de gebruiker aangemaakt? Meestal worden gebruikers aangemaakt in de database admin
. Wanneer u verbinding maakt met een MongoDB, moet u altijd de authenticatiedatabase specificeren en de database die u wilt gebruiken.
De standaardinstellingen zijn een beetje verwarrend en niet echt consistent, zie deze tabel voor een overzicht:
+----------------------------------------------------------------------------------------+
|Connection string | Authentication | Current |
| | database | database |
+----------------------------------------------------------------------------------------+
|mongo -u <...> -p <...> --authenticationDatabase admin myDB | admin | myDB |
|mongo -u <...> -p <...> myDB | myDB | myDB |
|mongo -u <...> -p <...> --authenticationDatabase admin | admin | test |
|mongo -u <...> -p <...> localhost:27017 | test | test |
|mongo -u <...> -p <...> --host localhost:27017 | admin | test |
|mongo -u <...> -p <...> | admin | test |
+----------------------------------------------------------------------------------------+
Als u de verbindingsreeks in URI-indeling wilt gebruiken, komt deze overeen met deze:
mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname
Ik neem aan dat je de gebruiker hebt aangemaakt in admin
database, maar aangezien u authenticatieDatabase niet specificeert tijdens het verbinden, zet Mongo het standaard op mydatabase
waar het mislukt, omdat de gebruiker niet bestaat in de database mydatabase
.