MongoDB身份验证访问数据库

时间:2015-02-20 15:51:08

标签: mongodb authentication

我刚刚将我的MongoDB实例从2.4.x升级到最新的2.6。我通过更新此属性将Mongo配置为启用身份验证:

auth = true

然后,我在具有特定角色的每个集合中创建了用户。而且它运作良好。

但我有RockMongo连接到这个实例,我有这个错误:

  

无法连接到:XXX:YYY:数据库'本地'身份验证失败使用用户名' ZZZZ':auth failed

我尝试连接到本地'数据库,并创建一个像这样的新用户:

use local
db.createUser(
  {
    user: "XXX",
    pwd: "YYY",
    roles: [ { role: "readWrite", db: "local" }, { role: "userAdminAnyDatabase", db: "local" } ]
  }
)

但是,我收到一个错误:

  

2015-02-20T15:49:55.892 + 0000错误:无法添加用户:无法创建   本地数据库中src / mongo / shell / db.js:1004

的用户

任何想法,为什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

您无法在本地数据库http://docs.mongodb.org/manual/reference/method/db.createUser/#local-database

中创建用户

相反,您可以在admin数据库中创建可以在本地db:

中读取的用户
use admin
db.createUser(
   {
      user: "XXX",
      pwd: "YYY",
      roles: [ { role: "readWrite", db: "local" } ]
   }
)

以用户XXX身份登录时,请务必指定--authenticationDatabase admin