MongoShake icon indicating copy to clipboard operation
MongoShake copied to clipboard

源库同步到目标库需要具备哪些权限、目前我大概只知道这些、不知道对不对、可以补充一下嘛、谢谢

Open qooke opened this issue 1 month ago • 3 comments

// 源端用户(用于读取 oplog、状态及写 checkpoint)

use admin

db.createUser({
  user: "mongoshake_src",
  pwd: "password",
  roles: [
    { role: "read", db: "admin" },
    { role: "read", db: "config" },
    { role: "read", db: "local" },
    { role: "read", db: "db1" },  // db1
    { role: "read", db: "db2" },  // db2
    { role: "readWrite", db: "mongoshake" },
    { role: "clusterMonitor", db: "admin" }
  ]
})

// 目标端用户(用于写入同步目标库)

use admin

db.createUser({
  user: "mongoshake_dst",
  pwd: "password",
  roles: [
    { role: "readWrite", db: "db1" }, // db1
    { role: "readWrite", db: "db2" }, // db2
    { role: "dbAdminAnyDatabase", db: "admin" }
  ]
})

qooke avatar Nov 08 '25 03:11 qooke

这个得看你的同步对象,即filter相关设置;还有同步的架构(副本集/分片)。看起来如果只是同步db1/db2的话,是没问题的。


在这里有权限相关的描述:wiki


找了下Shake暂时没有权限完整要求/示例相关的wiki或者QA描述,我们看看能不能基于你这个issue整理出一条,便于解决其他人的类似问题。

zhongli-james avatar Nov 12 '25 03:11 zhongli-james

@zhongli-james 是的、想着整理一个副本集或者分片的权限、放在WIKI或者QA描述、这样方便后面的人使用。

qooke avatar Nov 12 '25 05:11 qooke

@zhongli-james 是的、想着整理一个副本集或者分片的权限、放在WIKI或者QA描述、这样方便后面的人使用。

可以的,我们共建下~需要你提供信息哈

zhongli-james avatar Nov 13 '25 08:11 zhongli-james

补充下,如果期望开启以下参数,则强依赖写入目标端的账户包含bypassDocumentValidation权限。推荐的解决方案是给目标端写入账号补充dbAdminAnyDatabase的built-in role即可:

incr_sync.executor.bypass_document_validation

详情可参考:https://www.mongodb.com/docs/manual/reference/built-in-roles/?deployment-type=self#mongodb-authrole-dbAdminAnyDatabase

zhongli-james avatar Dec 18 '25 03:12 zhongli-james