Что означает authSource в URL-адресе базы данных mongo?

я пытаюсь подключиться к моей базе данных монго со следующей строкой подключения

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

Я получаю ошибку как

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

Может кто-нибудь, пожалуйста, очистите меня от этого «authSource = admin».


person gaurav malik    schedule 15.11.2016    source источник


Ответы (2)


Это имя базы данных, в которой находится коллекция с учетными данными пользователя.

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

Здесь устанавливаются логины и пароли.

person Thilo    schedule 15.11.2016
comment
у меня есть пользователи в коллекции system.users. Итак, по вашему мнению, «authSource=admin» следует заменить на authSource=users. Правильно?? - person gaurav malik; 15.11.2016
comment
Нет, это имя базы данных, а не коллекции. И по умолчанию это база данных, к которой вы пытаетесь подключиться. Без параметра работает? - person Thilo; 15.11.2016
comment
да, он тоже работает без параметра. Я понял. Спасибо - person gaurav malik; 15.11.2016

Сегодня я потратил несколько часов, пытаясь решить эту проблему, и, к сожалению, этот пост SO не появился в моих поисках. Это было очень плохо, потому что это пост с лучшим ответом на проблему.

Я надеюсь помочь следующему человеку, добавив сообщение об ошибке, которое я получил.

Я устанавливаю соединение внутри контейнера Docker, который запускается через файл yaml для создания докеров. Имя пользователя и пароль передаются в docker-compose из файла .env.

URI подключения, который работает

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

Ошибка:

SASL SCRAM-SHA-1 authentication failed for aUser on myDb from client 172.25.0.3:37352 ; UserNotFound: Could not find user aUser@myDb
person Bryan    schedule 21.04.2019
comment
Я получил эту ошибку, когда использовал NON-URL-ENCODED Connection SRV String - person Hammad; 14.04.2020
comment
В моем случае я пытался войти в определенную базу данных как root, но аутентификация не удалась. Добавление authSource=admin в конец строки подключения помогло, спасибо! - person Big Sam; 05.03.2021