出于某种原因,我无法使用旧数据库中的另一个帐户与我当前连接的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
答案 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