2015-08-19 30 views
0

我有mongodb服务器auth = true和许多数据库。我试图连接到它使用远程管理数据库:全局管理连接用户MongoDB 2.6

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

(WORK)

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

(不工作)

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

我可以为每个数据库创建管理员用户,但数据库相当动态一些添加一些删除。我读过关于全球管理线程,但设置用户角色不利于

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

--authenticationDatabase 

是不是一种选择,因为大量的代码已被重写。

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

+1

这与Python有什么关系? – Cyphase

+0

我会再次发表评论。如果您的实际问题是关于使用身份验证连接Python客户端,那么您应该明白 –

回答

0

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

使用集中的用户,你可以定义可以访问所有的数据库角色需要:

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

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