Проблема: При подключении к MongoDB возникают ошибки:
Auth failed Unable to authorize Cannot/unable connect to MongoDB
Например вы используете приложенияRobomongo, MongoVUE или аналогичные, и при попытке подключения к MongoDB с использованием авторизации (через логин пароль) получаете ошибку.
Решение:
1. Прежде всего убедитесь что в конфиге mongod.conf включена авторизация и удаленный доступ:
bind_ip = 127.0.0.1,<внешний_ip_сервера> auth = true
В bind_ip должен быть задан внешний IP сервера, либо 0.0.0.0. Не забудьте после внесения изменений выполнить ~# service mongod restart.
Проверяем:
~# mongo
> use admin;
> db.auth("admin","password");
1
> show dbs;
2. Убедитесь что пользователь создан для нужной базы и имеет все необходимы права.
use your_database; show users;
Создать суперпользователя можно так:
use admin;
db.createUser({
user: "root",
pwd: "*****",
roles: [ { role: "root", db: "admin" } ]
});
Создать пользователя на чтение/запись для конкретной базы:
user database_name;
db.createUser({
user: "user",
pwd: "****",
roles: [ { role: "readWrite", db: "database_name" } ]
});
Внести изменения в права, можно так:
db.updateUser( "userName", {
roles : [
{ role : "dbAdmin", db : "dbName" },
{ role : "readWrite", db : "dbName" }
]
});
3. Проверяем удается ли авторизироваться и подключиться к базе с консоли. При этом не забывайте что проверка прав осуществляется на уровне базы данных, поэтому убедитесь что подключаетесь к базе данных которая содержит информацию о правах пользователя:
~# mongo -u admin -p password --authenticationDatabase admin // или ~# mongo localhost:27017/admin -u admin -p password
use your_database; db.system.users.find();
Если результат содержит SCRAM-SHA-1, значит MongoDB использует новый механизм аутентификации и наш клиент (библиотека), могут его не поддерживать.
Решение:
Вы должны обновить все драйверы, используемые приложениями, которые будут подключаться к модернизированным экземплярам баз данных с поддержкой SCRAM-SHA-1. Минимальные версии драйверов, которые поддерживают SCRAM-SHA-1перечислены в официальной документации: http://docs.mongodb.org/manual/release-notes/3.0-scram/#upgrade-drivers
Либо дождаться поддержки SCRAM-SHA-1в приложениях которые вы используете для подключения к MongoDB ( Robomongo,MongoVUE и т.д.).
UPD. Из платных GUI клиентов неплохо работает NoSQL Manager for MongoDB, начиная с версии 2.2 Support of SCRAM-SHA-1 authentication mechanism that MongoDB v3.0 uses by default added.

