2014-11-24 68 views
3

我有一個與MMS設置的MongoDB副本。我創建了一個擁有所有權限的用戶(全部在MMS上可用),但我無法訪問本地數據庫和/或oplog合作伙伴。 TRACE:如何訪問oplog MongoDB(MMS複製集)

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 } 

我需要連接我的流星應用,然後使用Node.js的到OPLOG另一個應用程序,但我不能訪問它。

爲什麼? 因爲我正在使用Node.js創建基於oplog的隊列。這是可能的,我成功地在MongoHQ和MongoLab上進行了測試,但是現在我需要在我的MMS製作副本集中使用MMS來運行此操作,而無需創建自定義的MongoDB副本集。

+0

請描述爲什麼你必須訪問oplog和你想要實現的目標。 – 2014-11-24 22:11:55

+0

@MarkusWMahlberg完成 – skozz 2014-11-25 14:54:25

回答

4

檢查this link

基本上,從蒙戈2.6,你需要創建一個用戶,並授予訪問OPLOG(以及使用正確的憑據訪問DB)

喜歡的東西:

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

整個程序here