Как получить доступ к оплогу MongoDB (набор реплик MMS)

У меня есть копия MongoDB с MMS. Я создал пользователя со всеми привилегиями (все они доступны в MMS), но я не могу получить доступ к локальной коллекции БД и / или оплогов. TRACE:

mydatabse-r1:PRIMARY> use local
switched to db local
mydatabse-r1:PRIMARY> db.oplog.rs.find().pretty();
error: { "$err" : "not authorized for query on local.oplog.rs", "code" : 13 }

Мне нужно подключить мое приложение Meteor и другие приложения с Node.js к оплогу, но я не могу получить к нему доступ.

Зачем? Потому что я работаю над сценарием с Node.js, чтобы создать очередь на основе оплога. Это возможно, я успешно протестировал на MongoHQ и MongoLab, но теперь мне нужно запустить это в моем наборе производственных реплиок MMS с MMS без создания собственного набора реплик MongoDB.

1 ответ

Решение

Проверьте эту ссылку

В основном, начиная с mongo 2.6, вам нужно создать пользователя и предоставить доступ к оплогу (а также доступ к БД с использованием правильных учетных данных)

Что-то вроде:

db.runCommand({ createRole: "oplogger", 
               privileges: [{ resource: { db: 'local', collection: 'oplog.rs'},
                               actions: ['find']}, ],
               roles: [{role: 'read', db: 'local'}] })

Полная процедура здесь

Другие вопросы по тегам