Как получить доступ к оплогу 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'}] })
Полная процедура здесь