MongoDB copyDatabase 与 dbOwner 一起失败

MongoDB copyDatabase 与 dbOwner 一起失败

我有一个远程 mongo 数据库,其中我设置了一个特定的数据库和一个具有 dbOwner 权限的用户。我可以使用此用户信息访问此数据库,但无法使用 copyDatabase 复制此数据。我读到过寻找需要访问权限,但这不是所有者访问权限的一部分吗?文档中特别提到了这一点(http://docs.mongodb.org/manual/reference/built-in-roles/)所有者拥有所有管理员权限,而管理员拥有查找权限。但是,当我尝试调用此函数时,我得到了

“errmsg”:“异常:nextSafe():{$err:\“未授权查询db1.system.users \”,

作为参考,以下是 getUser 返回的内容:

db.getUser('mu1')

{ “_id”:“db1.mu1”, “user”:“mu1”, “db”:“db1”, “roles”:[ { “role”:“dbOwner”, “db”:“db1” } ] }

这怎么会发生在 db1 的所有者身上?

谢谢!

答案1

为了能够执行复制,源数据库和目标数据库都有访问要求。假设您使用的是 2.6(我认为您知道 dbOwner 角色是在 2.6 中引入的),此处详细列出了要求(注意:您不应使用 copyDatabase2.4 中的角色):

http://docs.mongodb.org/manual/reference/method/db.copyDatabase/#required-access

该副本实际上在目标实例(您要复制到的实例)上运行,所以我猜这是这里的问题,您没有目标上的正确权限主持人。

相关内容