无法在mongo中进行身份验证作为localhost

时间:2013-05-12 09:34:35

标签: mongodb authentication

我使用最新的mongo,并尝试按照Mongo Doc中的说明设置SuperUserAdmin。

1) Start ./mongod --dbpath ../data    without auth
2) Run ./mongo
3) [mongo shell]: use admin
4) [mongo shell]: db.addUser( { user: "admin",
              pwd: "abcde1234",
              roles: [ "userAdminAnyDatabase" ] } )
5) [mongo shell]: db.shutdownServer()

then i restart mongod with auth:
6) ./mongod --auth --dbpath ../data
7) Run mongo (as localhost) again: ./mongo -u admin -p abcde1234

Then i get this error:
Javascript executiion failed: Error: 18 {code:18, ok:0.0, errmsg: 'auth fails'} at src/mongo/shell/db.js:L228

我尝试了不同的用户名和密码,同样的事情......

我错过了什么?我在Mac上运行。

任何人都有任何想法?

2 个答案:

答案 0 :(得分:3)

角色userAdminAnyDatabase仅允许用户管理。这就是为什么如果新帐户只有这个角色,它只能对数据库“admin”进行身份验证,即mongo -u admin -p abcde1234 localhost / admin应该可以工作。

您可能还想添加角色dbAdminAnyDatabase。

答案 1 :(得分:0)

mongo admin -u admin -p abcde1234

否则您将连接到测试数据库,管理员无法连接。