Le problème est que l'utilisateur de la base de données est créé sur admin
base de données au lieu de dbname
.
Omettre le /dbname
à partir de la chaîne de connexion / mongo shell / etc. signifie que la chaîne de connexion s'authentifiera auprès de l'admin
base de données. Citant les docs :
(https://docs.mongodb.com/manual/reference/connection -chaîne/#composants ).
Si /dbname
est défini, la chaîne de connexion s'authentifiera auprès de dbname
sauf si authSource
Le paramètre est configuré pour spécifier la base de données dans laquelle réside l'utilisateur.
Vous pouvez confirmer que c'est le cas en ajoutant authSource=admin
à la chaîne de connexion ou --authenticationDatabase admin
à la commande mongo shell
.
Alternativement, vous pouvez utiliser db.getUsers()
pour voir la base de données dans laquelle un utilisateur a été créé.