mongodb - Mongos认证

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

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

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

我过去曾用一台服务器做到这一点,这真的很容易:

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

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

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

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

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

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

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

失败并返回0,如false;不是非零

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

最佳答案

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

This page has more details关于如何在 MongoDB 中为分片集群配置安全性。

https://stackoverflow.com/questions/10996814/

相关文章:

mongodb - 如何验证由 mongodump 操作产生的文件的完整性?

java - 在等待与 WritableServerSelector 匹配的服务器时超时 30000

mongodb - 玩 2.3.5 和 ReactiveMongo : MongoError ['N

mongodb - Mongoid 没有服务器可用匹配首选项

mongodb - 对大量数据使用 Mongo 地理空间查询

mongodb - .NET 驱动程序与 LINQ : NotSupportedException:

mongodb - MongoDB 中 V8 JavaScript 引擎对 map reduce 的

spring - 蒙戈 : repositories no longer works

javascript - 不确定如何在 Express/MongoDB 应用程序中处理数据访问对象/

mongodb - 使用 SSL 的 mongodump 和 mongorestore