mongodb 3.2.4 中的分片集群身份验证

Sharded Cluster authentication in mongodb 3.2.4

我有 6 个 mongod 服务器。

2 个分片,每个分片有两个服务器的副本集(总共 4 个 mongod 服务器) 2 配置服务器 2 个 mongos,将 运行 在分片服务器本身

我想在分片集群上启用身份验证。我在启动 6 个 mongod 实例时尝试启用 --auth 但它抛出了以下错误。

SHARDING [mongosMain] 初始化分片状态时出错,休眠 2 秒并重试 :: 由 :: Unauthorized 引起:由于未授权查询 config.shards,无法从配置服务器获取更新的分片列表

如何在分片集群中启​​用身份验证?我正在使用 mongodb 3.2.4 版本。

配置服务器如何与其他 mongod 服务器进行内部通信?

我是否需要在 admin db 中分别在每个 mongod 上创建用户?

请帮助我理解这一点。

-提前致谢。

对于共享集群,您必须使用密钥文件或 x.509 证书身份验证进行集群间通信。

请参考这个link: https://docs.mongodb.com/manual/core/security-internal-authentication/

要创建用户,请连接到 mongos 并添加用户。从 2.6+ 版本开始,MongoDB 将用户登录数据存储在配置服务器的管理数据库中,因此您不必在每个 mongod 上分别创建用户。 你也可以参考这些links:

http://pe-kay.blogspot.in/2016/02/update-existing-mongodb-replica-set-to.html

http://pe-kay.blogspot.in/2016/02/securing-mongodb-using-x509-certificate.html