3

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 に接続する必要がありますが、アクセスできません。

なんで? oplog に基づいてキューを作成するスクリプトを Node.js で作成しているためです。これは可能です。MongoHQ と MongoLab で正常にテストしましたが、カスタム MongoDB レプリカ セットを作成せずに、MMS を使用して MMS 運用レプリカ セットでこれを実行する必要があります。

4

1 に答える 1

4

このリンクを確認してください

基本的に、mongo 2.6 以降では、ユーザーを作成し、oplog へのアクセスを許可する必要があります (適切な資格情報を使用して DB にアクセスするだけでなく)。

何かのようなもの:

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

手続き全般はこちら

于 2015-04-26T06:39:12.980 に答える