Я запрашиваю mongo oplog в MongoLabs mongoDb. Поскольку Mongolabs не позволяет создавать пользователя для локального пользователя, я создал oplog-reader в admin, но он выдает ошибку, показывающую, что он не авторизован:
Фрагмент кода:
var oplogURL = 'mongodb://<oplog-user>:<password>@node1,node2:port/admin?replicaSet=rs-<relpset>';
var allLocalURL = 'mongodb://<oplog-user>:<password>@node1,node2:port/local?replicaSet=rs-<relpset>'; //user on admin with "readWriteAnyDatabase" permisson, trying to use local db
var allReaderURL='mongodb://<user>:<password>@node1,node2:port/admin?replicaSet=rs-<relpset>'; //user on admin with "readWriteAnyDatabase" permisson
var db = mongoose.createConnection(oplogURL,{replset: { poolSize: 50 }}, function (err, res){
if (err) {console.log("Oops!"); console.log(err);}
});
var opschema = new mongoose.Schema({v:"Number", op:"String", ns:"String"}, { strict: false});
var oplogModel = db.model('oplogModel', opschema, 'oplog.rs');
oplogModel.find().exec(function(err, res){
//oplogModel.find().sort('-ts').limit(1).select('ts').exec(function(err, res){
if (err) {console.log("Oopps!"); console.log(err);}
console.log (res);
});
Я получил :
{ [MongoError: not authorized for query on admin.oplog.rs]
name: 'MongoError',
message: 'not authorized for query on admin.oplog.rs',
'$err': 'not authorized for query on admin.oplog.rs',
code: 13 }
Когда я использую allLocalURL:
{ [MongoError: not authorized for query on local.oplog.rs]
name: 'MongoError',
message: 'not authorized for query on local.oplog.rs',
'$err': 'not authorized for query on local.oplog.rs',
code: 13 }
Когда я использую allReaderURL: []
Но я могу войти в оболочку mongo и запросить oplog, используя пользователя oplog-reader и переключив базу данных на локальную. Я также могу отслеживать oplog с помощью mongo-oplog, используя oplog-user в admin.
Как мне создать URL-адрес/запрос mongo для получения данных из oplog.rs??