Mongos身份验证

pri*_*ero 8 database authentication sharding mongodb nosql

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

  • 1个mongos
  • 3个配置服务器(mongod --configSvr)
  • 9个mongod服务器(分片或分片副本集成员)

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

我过去用一台服务器完成了这项工作,这很简单:

  1. 只需将admin用户添加到admin数据库
  2. 在每个数据库上添加用户

我不得不重新启动mongod --auth选项,但在这里似乎没有用.

我已将管理员帐户添加到我们的mongos和我们的分片数据库中; 我尝试以我刚刚创建的用户身份进行身份验证,但它无效.

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

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

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

db.auth("user","passwd")
Run Code Online (Sandbox Code Playgroud)

它会失败并返回0,如同false; 没有non-zero.

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

Asy*_*sky 1

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

本页提供了有关如何在 MongoDB 中为分片集群配置安全性的更多详细信息。