web-dev-qa-db-fra.com

Que signifie authSource dans l'url de la base de données mongo?

j'essaie de me connecter à ma base de données mongo avec la chaîne de connexion suivante

var Mongo_url = 'mongodb://MyUSer:tech@localhost:27017/chatme?authSource=admin';  

Je reçois une erreur

 assertionError: null == { [MongoError: Authentication failed.]
 name: 'MongoError',
 message: 'Authentication failed.',
 ok: 0,
 code: 18,

Est-ce que n'importe qui pourrait effacer cette chose "authSource = admin" pour moi?.

15
gaurav malik

Il s'agit du nom de la base de données contenant la collection avec les informations d'identification de l'utilisateur.

https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options

C'est là que les noms d'utilisateur et les mots de passe sont configurés.

10
Thilo

J'ai passé quelques heures aujourd'hui à essayer de résoudre ce problème et malheureusement, ce post SO n'apparaissait pas dans mes recherches. C'était dommage car c'est le post avec la meilleure réponse au problème.

J'espère aider la prochaine personne en ajoutant le message d'erreur que j'ai reçu.

Je configure la connexion à l'intérieur d'un conteneur Docker qui est tourné via un fichier yaml de docker-compose. Le nom d'utilisateur et le mot de passe sont transmis à docker-compose à partir d'un fichier .env.

URI de connexion qui fonctionne

mongodb://aUser:aPassword@mevn-app-mongo:27017/myDb?authSource=admin

Erreur:

SASL SCRAM-SHA-1 authentication failed for aUser on myDb from client 172.25.0.3:37352 ; UserNotFound: Could not find user aUser@myDb
0
Bryan