MongoDB认证:访问本地数据库

5

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

auth = true

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

但是,我连接了RockMongo到这个实例,遇到了以下错误:

连接失败:XXX:YYY:使用用户名“ZZZZ”连接数据库“local”时进行身份验证失败:auth failed

我尝试连接到“local”数据库,并创建一个新用户:

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个回答

12

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

相反,您可以在管理员数据库中创建用户,该用户可以在本地数据库中进行readWrite操作:

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

登录用户XXX时,请确保指定 --authenticationDatabase admin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接