【发布时间】:2021-03-21 13:46:29
【问题描述】:
我有两个副本集,第一个我想禁用所有用户,只有应用程序登录将连接到它,而在第二个副本上,我希望用户将它连接到第二个副本以进行阅读。我不希望任何人与应用程序以外的主复制连接。能否实现,请指导。
就像我们可以通过 SQL Server 实现这种类型的解决方案一样,我想在 mongodb 中实现。
【问题讨论】:
标签: mongodb mongodb-replica-set
我有两个副本集,第一个我想禁用所有用户,只有应用程序登录将连接到它,而在第二个副本上,我希望用户将它连接到第二个副本以进行阅读。我不希望任何人与应用程序以外的主复制连接。能否实现,请指导。
就像我们可以通过 SQL Server 实现这种类型的解决方案一样,我想在 mongodb 中实现。
【问题讨论】:
标签: mongodb mongodb-replica-set
我认为这是不可能的。一般来说,副本集中的所有数据都是复制的,即它们完全相同 - 这还包括用户/角色详细信息。
也许可以创建本地用户,但默认情况下您不知道哪个节点充当 PRIMARY 或 SECONDARY(除非您设置 Priority 0)。
用户如何连接到您的 MongoDB?也许你可以重写他们的连接 URL 并附加 readPreference=secondaryPreferred
更新:
我认为本地用户不会工作。您可以删除整个节点并将其连接到具有空数据目录的副本集。初始同步会将所有数据复制到新节点,即它还将覆盖任何本地创建的用户帐户。
【讨论】: