Où, c'est-à-dire dans quelle base de données avez-vous créé l'utilisateur ? Généralement, les utilisateurs sont créés dans la base de données admin
. Lorsque vous vous connectez à une MongoDB, vous devez toujours spécifier la base de données d'authentification et la base de données que vous souhaitez utiliser.
Les valeurs par défaut sont un peu déroutantes et pas vraiment cohérentes, consultez ce tableau pour avoir un aperçu :
+----------------------------------------------------------------------------------------+
|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 |
+----------------------------------------------------------------------------------------+
Si vous souhaitez utiliser la chaîne de connexion au format URI, cela correspondrait à ceux-ci :
mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname
Je suppose que vous avez créé l'utilisateur dans admin
database mais comme vous ne spécifiez pas authenticationDatabase lors de la connexion, Mongo la définit par défaut sur mydatabase
où il échoue, car l'utilisateur n'existe pas dans la base de données mydatabase
.