我设置了一个本地解析服务器,它工作得非常好,除非我在MongoDB中启用身份验证并将连接字符串更改为mongodb://username:password@localhost:27017/dbname
,解析控制台会抛出以下错误:
unable to ensure uniqueness for usernames mongoerror authentication failed
客户端即RoboMongo也可以正常工作,具有身份验证功能。我甚至尝试过分配了userAdminAnyDatabase
和dbAdminAnyDatabase
角色的用户,以确保它不是权限问题。
更新: 我使用的是MongoDB 3.2,所以我尝试降级到MongoDB 3.0.12,仍然是同样的问题。
更新2:
我甚至尝试过具有最高权限的root
角色,即超级用户,但仍然没有运气。
答案 0 :(得分:7)
您是否为特定数据库创建了用户?如果您尝试使用mongo管理员帐户进行连接,则可以体验到这一点。
创建这样的用户:
use dbName
db.createUser({ user: "userName", pwd: "password", roles: [ "readWrite", "dbAdmin" ] })
并使用它连接到数据库 - 然后它应该工作