【问题标题】:How to access to oplog MongoDB (MMS replica set)如何访问oplog MongoDB(MMS副本集)
【发布时间】:2017-01-17 22:52:09
【问题描述】:

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

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 编写一个脚本来创建基于 oplog 的队列。这是可能的,我在 MongoHQ 和 MongoLab 上测试成功,但现在我需要在我的 MMS 生产副本集中使用 MMS 运行它,而无需创建自定义 MongoDB 副本集。

【问题讨论】:

  • 请描述您为什么必须访问 oplog 以及您要达到的目标。
  • @MarkusWMahlberg 完成

标签: mongodb mongodb-mms


【解决方案1】:

查看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

【讨论】:

    猜你喜欢
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多