2015-08-15 2 views
0

Новое в MongoDB, пытаясь выяснить, как работают разрешения.Ошибка аутентификации при подключении к MongoDB с удаленного хоста

Мой PHP код подключается к Монго просто отлично:

$mongo = new MongoClient('mongodb://admin:[email protected]'); 
return $mongo->selectDB('admin'); 

Я также могу сделать это от оболочки:

# mongo -u admin -p password admin 
MongoDB shell version: 3.0.5 
connecting to: admin 

Однако попытка подключения к Монго от другого удаленного хоста с использованием тех же (Windows, в этом случае) приводит к:

Не удалось аутентифицировать admin @ admin с помощью механизма MONGODB-CR: Authent icationFailed MongoDB-CR учетные данные отсутствуют в пользовательском документе

Я пытаюсь настроить Robomongo инструмент администратора для управления экземпляр MongoDB.

Очевидно, что я разрешил подключения к серверу Mongo путем обновления директивы IP-привязки.

Похоже, что пользователю «admin» не разрешено подключаться с хоста, отличного от localhost, - MySQL имеет точно такой же параметр.

Вопрос: как мне разрешить администратору пользователю подключиться из-за пределов штрафной?

Спасибо!

ответ

0

Так вот что я должен был сделать.

  1. Удалить все существующие пользователи admin.

  2. Чтобы настроить механизм аутентификации, запустите mongodb БЕЗ авторизации: «включено». Тогда:

Монго админ

От Монго оболочки:

var schema = db.system.version.findOne({"_id" : "authSchema"}) 
schema.currentVersion = 3 
db.system.version.save(schema) 
db.createUser(
{ 
    user: "admin", 
    pwd: "password", 
    roles: [ "root" ] 
} 

)

и перезапустить авторизации: "включено".

Смежные вопросы