无法使用新的Mongo数据库的辅助帐户进行身份验证

时间:2014-11-06 23:58:19

标签: mongodb

出于某种原因,我无法使用旧数据库中的另一个帐户与我当前连接的Mongo实例中的新数据库中的新用户进行身份验证。例如,我可以使用“dbadmin”登录到“db1”,但是当我创建一个新数据库“newdb”时,我无法使用新创建的帐户登录。

以下是我创建帐户的步骤:

  

mongo mongodev01.example.com/admin -u admin -p [密码]

此管理员帐户具有以下角色:userAdminAnyDatabase,dbAdminAnyDatabase和readWriteAnyDatabase。

在DB提示符下,我发出了以下内容:

  

使用newdb

     

db.createUser({“user”:“newadmin”,“pwd”:“asdfqwer”,“roles”:[“readWrite”]})

我使用了show users,并在此数据库中看到了使用readWrite角色创建的帐户:

> show users
{
    "_id" : "newdb.newadmin",
    "user" : "newadmin",
    "db" : "newdb",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "newdb"
        }
    ]
}

然后我重新启动mongod实例,但是当我尝试远程登录(本地工作正常)时,即使我已经剪切并粘贴了用于创建用户的密码,我也获得了“授权失败”首先。有什么想法吗?

$ mongo mameteordev01.example.com/db1 -u dbamdin -p
MongoDB shell version: 2.6.4
Enter password:
connecting to: mamongodev01.example.com/db1
> exit
bye

$ mongo mamongodev01.example.com/newdb -u newadmin -p
MongoDB shell version: 2.6.4
Enter password:
connecting to: mamongodev01.example.com/newdb
2014-11-06T20:32:25.676-0800 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed

1 个答案:

答案 0 :(得分:2)

用户newadmin仅拥有newdb的权限。登录时应使用选项--authenticationDatabase newdb

mongo mongodev01.example.com/newdb -u newadmin -p asdfqwer

mongo mongodev01.example.com -u newadmin -p asdfqwer --authenticationDatabase newdb