mongodb - 如何访问oplog MongoDB(MMS副本集)

标签 mongodb mongodb-mms

我有一个 MongoDB 副本集 MMS .我创建了一个拥有所有权限的用户(所有权限都在 MMS 上可用),但我无法访问本地数据库和/或 oplog colecction。追踪:

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 的应用程序连接到 oplog,但我无法访问它。

为什么? 因为我正在使用 Node.js 编写脚本来创建基于操作日志的队列。这是可能的,我在 MongoHQ 和 MongoLab 上测试成功,但现在我需要在我的 MMS 生产副本集中使用 MMS 运行它,而无需创建自定义 MongoDB 副本集。

最佳答案

检查 this link

基本上,从 mongo 2.6 开始,您需要创建一个用户并授予对 oplog 的访问权限(以及使用正确的凭据访问数据库)

类似于:

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

全过程here

关于mongodb - 如何访问oplog MongoDB(MMS副本集),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27112250/

相关文章:

python - 有没有办法将python对象直接存储在mongoDB中而不序列化它们

javascript - 如何使用脚本在 mongodb 中创建用户?

python - 将 mongoengine 查询集转换为 json 文件

node.js - 如何在 Mongoose 中自动生成自定义 id?

javascript - MongoError : multi update only works with $ operators while using bulk find and update in node. js

git - 我可以使用 Git 备份 MongoDB 数据库吗?具体来说,我可以在 github 存储库中包含 mongo 数据目录吗?

mongodb - 如何从 Mongo MMS API 获取主机名

node.js - 连接 MMS ReplicaSet 时 Mongo 身份验证错误