8

我们的环境中有 9 个 mongo 节点:

  • 1个蒙古人
  • 3 个配置服务器(mongod --configSvr
  • 9 个 mongod 服务器(分片或分片副本集的成员

我们正在尝试对它们实施身份验证。

我过去用一台服务器完成了这项工作,这真的很容易:

  1. 只需将管理员用户添加到管理员数据库
  2. 在每个数据库上添加一个用户

我不得不使用--auth选项重新启动 mongod,但在这里它似乎不起作用。

我已将管理员帐户添加到我们的 mongos 和分片数据库;我尝试以刚刚创建的用户身份进行身份验证,但没有成功。

我已经尝试在每个数据库上创建一个管理员用户,以及我们需要的其他用户帐户,但它仍然不起作用。

我还尝试确保我们所有的 mongo 服务器都使用--keyFile命令行或/etc/mongodb.conf文件中指定的选项运行,但这似乎没有帮助。

当我尝试以给定用户身份进行身份验证时,如下所示:

db.auth("user","passwd")

它失败并返回0,如false; 不是non-zero

我真的需要我能得到的所有帮助,所以请至少对我可以尝试的事情提出一些建议——我不能过分强调这一点,任何帮助都非常受欢迎,因为我似乎没有得到任何帮助关于管理/管理 mongo 分片集群的官方文档。

4

1 回答 1

1

在分片集群中,您应该使用它--keyFile来允许集群的所有成员相互验证。当您使用此选项时,--auth是“假定的”。由于自您提出此问题以来已经发生了多次版本更改,因此分配给用户的角色现在更加精细 - 您需要有一个“clusterAdmin”、“userAdmin”、“dbAdmin”等。

此页面包含有关如何在 MongoDB 中为分片集群配置安全性的更多详细信息。

于 2014-01-10T23:18:16.940 回答