我在使用play-reactivemongo连接到MongoDB 3时遇到问题,并且遇到了"'未授权查询XXX' (代码= 13)"问题。当没有--auth启动MongoDB时,程序运行完全正常。
数据库版本应为3.0.4,如日志中所示。
libraryDependencies ++= Seq(
"org.reactivemongo" %% "play2-reactivemongo" % "0.11.7.play24",
我使用的是版本0.11.7 play2-reactivemongo插件。
mongodb.uri = "mongodb://postsUser:12345678@localhost:27017/posts?authMode=?authMode=scram-sha1&authSource=posts&rm.tcpNoDelay=true"
我已经像这样在mongodb.uri中指定了authMode。
2015-10-24T16:41:24.977+0800 I ACCESS [conn105] Failed to authenticate postsUser@posts with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document
我在mongodb.log中发现了以下错误。
{{1}}
为什么使用MONGODB-CR代替SCRAM-SHA-1?假设SCRAM-SHA-1应该是默认的,对吗?
答案 0 :(得分:1)
在连接字符串后面添加以下内容适用于我
authMode=scram-sha1
所以最后的连接字符串是
mongodb://user:pass@ipaddress:27017/litmus?3treadPreference=primary&authMode=scram-sha1
我也有nodejs脚本连接到同一个数据库,有趣的是它连接完美而没有附加authMode=scram-sha1
标志。
似乎在反应性mongo中未处理的情况
答案 1 :(得分:0)
抱歉,我在mongodb.uri中输了一个错字
authMode=?authMode=scram-sha1
并使DB使用mongodb-cr进行身份验证。但是,我在第一次访问数据库时仍然遇到“未授权查询”错误,随后的数据库访问也没问题。在mongodb.log中,我可以看到以下内容。
2015-10-25T01:28:45.242+0800 I QUERY [conn33] assertion 13 not authorized for query on posts.posts ns:posts.posts query:{}
2015-10-25T01:28:45.247+0800 I ACCESS [conn33] Successfully authenticated as principal postsUser on posts
明天我最好开始另一个问题。