![MongoDB 使用多个 keyFile 进行分片身份验证](https://linux22.com/image/627293/MongoDB%20%E4%BD%BF%E7%94%A8%E5%A4%9A%E4%B8%AA%20keyFile%20%E8%BF%9B%E8%A1%8C%E5%88%86%E7%89%87%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我已经配置了 MongoDB 的分片,如下所示。
Shard1 Shard2 Shard3
-------- -------- -------
rs1(Pri) rs1(Sec) rs1(Sec)
rs2(Sec) rs2(Pri) rs2(Sec)
rs3(Sec) rs3(Sec) rs3(Pri)
现在,我计划为每个副本集设置不同的密钥文件以进行身份验证。只是为了确保在出现任何手动配置错误时不会出现数据不匹配的情况。
有没有办法为多个副本集设置不同的 keyFile?我们如何配置 mongos 以引用多个 keyFile 进行身份验证?
任何指点都会有帮助。
答案1
这是不可能的。每个 只能有一个密钥文件mongos
,并且mongos
进程必须能够与分片集群中的每个节点通信。
此外,为了实现平衡,每个主节点都需要能够与其他每个主节点通信,并且副本集中的任何节点都可以成为主节点。因此,您必须将您提到的每个密钥文件部署在每个副本集成员和每个 上mongos
。
基本上,您想要做的事情在分片集群的上下文中毫无意义。如果副本集是隔离的,您可以拥有不同的密钥文件,但如果它们应该作为分片集群的一部分进行通信,则不能。