【问题标题】:Global admin connection user MongoDB 2.6全局管理员连接用户 MongoDB 2.6
【发布时间】:2015-11-12 03:33:33
【问题描述】:

我有 auth=true 的 mongodb 服务器和许多数据库。我正在尝试使用管理数据库远程连接到它:

mongo --host xxx admin --username admin --password secretPassword

(工作)

 mongo --host xxx products --username admin --password secretPassword

(不工作)

我可以连接到管理数据库并切换到产品。但是开发人员使用连接字符串使用相同的用户名和密码连接到特定的数据库。

我可以为每个数据库创建管理员用户,但数据库非常动态,有些添加了一些删除。我已阅读有关全局管理员的帖子,但设置用户角色无济于事

roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] 

--authenticationDatabase

不是一个选项,因为必须重写很多代码。

有没有办法设置一个全局管理员,任何人都可以使用用户名和密码连接到远程数据库?

【问题讨论】:

  • 这和 Python 有什么关系?
  • 我将支持该评论。如果您的实际问题是关于使用身份验证连接 Python 客户端,那么您应该切入正题

标签: mongodb authentication database-connection


【解决方案1】:

如果您使用的是 MongoDB 3.0+,则用户的默认位置是管理数据库。无论如何,在这种情况下,您将不得不使用 --authenticationDatabase。

对于集中式用户,您可以根据需要定义有权访问所有数据库的角色:

https://docs.mongodb.org/manual/reference/built-in-roles/

听起来您可能想要重构数据库连接代码,特别是如果必须重写“大量代码”,那听起来您没有遵循 DRY——“不要重复自己”的原则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多