MongoDB Shell命令行身份验证失败
我使用身份验证设置了副本集.我使用了此教程.我设置了密钥文件,管理员用户和其他用户.一切正常-匿名访问已禁用,我可以登录
I set up replica set with authentication. I used this tutorial. I set up keyfile, admin user and other users. It all works fine - anonymous access is disabled and I can login
$ mongo
MongoDB shell version: 2.6.1
connecting to: test
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
rs0:PRIMARY> use admin
switched to db admin
rs0:PRIMARY> db.auth("USERNAME","PASSWORD")
1
rs0:PRIMARY>
使用我创建的用户的凭据.
using credentials of users I created.
但是我无法从命令行登录
But I can't login from command line
$ mongo -u 'USERNAME' -p 'PASSWORD'
MongoDB shell version: 2.6.1
connecting to: test
2014-05-18T14:23:47.324+0200 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed
使用相同的凭据.我在文档中或SO上找不到任何有用的东西.
using the same credentials. I haven't find anything helpful in the documentation or here on SO.
在您的示例中执行的外壳内身份验证是针对 admin 数据库的.上面发布的命令行未指定数据库,因此正在针对默认数据库 test 进行身份验证.尝试使用此命令通过命令行对admin db进行身份验证:
The in-shell authentication performed in your example is against the admin database. The command line posted above does not specify a database and is therefore authenticating against the default database which is test. Try this instead to authenticate via command line against the admin db:
mongo admin -u 'USERNAME' -p 'PASSWORD'
如果服务器不在本地主机上,则可以使用此命令:
if the server is not on the local host then you can use this:
mongo your_host_name:your_port/admin -u 'USERNAME' -p 'PASSWORD'