Аутентификация подключения MongoDB работает в оболочке, но не с внешними инструментами

У меня есть проблема, связанная с тем, что я не могу подключиться к MongoDB из внешних Tooll, которые не через MongoShell или мое веб-приложение с использованием абстракции Spring Data MongoDB.

Я успешно создал пользователя для базы данных mydb в MongoDB, и я могу подключиться к MongoDb на своем локальном хосте с помощью команды

$ mongo mydb -u alex -p 12345678 --host localhost --port 27017

MongoDB shell version: 3.0.1
connecting to: localhost:27017/mydb
> show users
{
    "_id" : "mydb.alex",
    "user" : "alex",
    "db" : "mydb",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "mydb"
        }
    ]
}

Теперь я могу вставлять коллекции и запросы, и все выглядит гладко. Я также могу подключиться к абстракции Spring Data MongoDB из своего веб-приложения.

Теперь, когда я пытаюсь подключиться с помощью приложения Robomongo или плагина Intellij для MongoDB, используя правильный хост, порт, базу данных, имя пользователя и пароль, я получаю сообщение об ошибке авторизации

От Интеллидж

Error when collecting Mongo databases: { "serverUsed" : "localhost:27017" , "ok" : 0.0 , "errmsg" : "auth failed" , "code" : 18}

Из Робомонго

2015-04-02 16:00:30: Connecting to localhost:27017...
2015-04-02 16:00:30: connect failed
2015-04-02 16:00:30: Unable to authorize

Я хотел бы использовать какой-нибудь клиент с графическим интерфейсом, чтобы иметь лучшую визуализацию и поддержку операций CRUD, но на данный момент мне не удается подключиться к MongoDB.

Знаете, в чем может быть причина этого?


person spike07    schedule 02.04.2015    source источник
comment
Какую версию MongoDB вы используете? 3.0? 3.0 имеет улучшенную безопасность, но требует более новых версий драйверов. Многие инструменты еще не обновлены для поддержки версии 3.0. Я точно знаю, что Робомонго не было, например.   -  person wdberkeley    schedule 02.04.2015
comment
Спасибо за комментарий. Да, я использую MongoDB 3.0. На самом деле я думал, что это связано с версией 3.0, поскольку я увидел, что механизм аутентификации изменен на SCRAM-SHA-1. Кажется, я где-то видел, как настроить mongoDB на старый механизм аутентификации. Возможно, это заставит инструменты снова работать. я попробую   -  person spike07    schedule 02.04.2015
comment
С клиентом с графическим интерфейсом все в порядке, но создание пользователя - нет. В настоящее время почти клиенты с графическим интерфейсом не имеют поля credentials, которое содержит пароль пользователя, зашифрованный с помощью MONGODB-CR или SCRAM-SHA-1, который требуется для аутентификации MongoDB. Таким образом, вы должны использовать команду MongoDB для создания пользователя, дополнительная информация приведена ниже Создать администратора с ролями   -  person Trung Le Nguyen Nhat    schedule 29.06.2016


Ответы (1)


У меня была такая же проблема, и в журналах mongoDb я вижу:

не удалось аутентифицировать xxx@yyyy с помощью механизма MONGODB-CR: учетные данные AuthenticationFailed MONGODB-CR отсутствуют в пользовательском документе

Я считаю, что этот пост Ошибка аутентификации MongoDB-CR объясняет, что нужно сделать, чтобы вернуть старую аутентификацию. Вам нужно будет удалить существующих пользователей и снова добавить новых.

person Rob Baily    schedule 13.04.2015