[英]MongoDB query working in Mongo Shell but not in Node.js?
[英]Can not authenticate via mongo's official node.js driver, only mongo shell. (MongoDB Cloud Manager replica deployment)
我正在嘗試對通過Mongo Cloud Manager部署的副本集進行身份驗證,但我不知道為什么它會失敗。
這是我在數據庫abcd上的用戶:
abcdRepliaSet:PRIMARY> use abcd
switched to db abcd
show users
abcdRepliaSet:PRIMARY> show users
{
"_id" : "abcd.abcdAppUser",
"user" : "abcdAppUser",
"db" : "abcd",
"roles" : [
{
"role" : "readWrite",
"db" : "abcd"
}
]
}
我可以通過mongo shell成功連接到它:
mongo adbcd-mongo-mms.cloudapp.net:57002 -u adbcd AppUser -p hidden --authenticationDatabase adbcd
但是,我不能使用以下簡單代碼:
MongoClient.connect("mongodb://abcdAppUser:hidden@abcd-mongo-mms.cloudapp.net:57001,abcd-mongo-mms.cloudapp.net:57002,abcd-mongo-mms.cloudapp.net:57003/abcd?replicaSet=abcdRepliaSet&authSource=abcd&authMechanism=SCRAM-SHA-1",
function(err, db) {
if(err) throw err;
else console.log(db);
});
我也很確定我的authMechanism是SCRAM-SHA-1,因為我已經使用mongoldb v。3.0.7添加了用戶,並且還通過以下方式確認了它:
db.system.users.find({user:"abcdAppUser"}).pretty()
當我嘗試通過nodejs應用進行身份驗證時,這是mongod的日志:
2015-12-22T13:31:33.823+0000 I ACCESS [conn30286] SCRAM-SHA-1 authentication failed for abcdAppUser on abcd from client 10.0.0.10 ; AuthenticationFailed SCRAM-SHA-1 authentication failed, storedKey mismatch
2015-12-22T13:31:33.894+0000 I ACCESS [conn30288] SCRAM-SHA-1 authentication failed for abcdAppUser on abcd from client 10.0.0.10 ; AuthenticationFailed SCRAM-SHA-1 authentication failed, storedKey mismatch
2015-12-22T13:31:34.051+0000 I ACCESS [conn30287] SCRAM-SHA-1 authentication failed for abcdAppUser on abcd from client 10.0.0.10 ; AuthenticationFailed SCRAM-SHA-1 authentication failed, storedKey mismatch
2015-12-22T13:31:34.124+0000 I ACCESS [conn30289] SCRAM-SHA-1 authentication failed for abcdAppUser on abcd from client 10.0.0.10 ; AuthenticationFailed SCRAM-SHA-1 authentication failed, storedKey mismatch
2015-12-22T13:31:34.206+0000 I ACCESS [conn30290] SCRAM-SHA-1 authentication failed for abcdAppUser on abcd from client 10.0.0.10 ; AuthenticationFailed SCRAM-SHA-1 authentication failed, storedKey mismatch
2015-12-22T13:31:34.263+0000 I NETWORK [conn30288] end connection 94.61.85.76:53102 (17 connections now open)
2015-12-22T13:31:34.264+0000 I NETWORK [conn30286] end connection 94.61.85.76:61293 (17 connections now open)
2015-12-22T13:31:34.263+0000 I NETWORK [conn30287] end connection 94.61.85.76:58194 (17 connections now open)
2015-12-22T13:31:34.263+0000 I NETWORK [conn30289] end connection 94.61.85.76:58537 (17 connections now open)
2015-12-22T13:31:34.264+0000 I NETWORK [conn30290] end connection 94.61.85.76:57720 (13 connections now open)
2015-12-22T13:31:37.185+0000 I NETWORK [conn30281] end connection 10.0.0.8:34322 (12 connections now open)
我還確保我的node.js驅動程序與SCRAM兼容並且兼容。 在這一點上,我還真不明白為什么它會失敗...非常歡迎任何幫助!
先感謝您。
佩德羅
好吧,我不確定我做錯了什么,但是我現在已經升級了authSchema(很確定它已經在v.5上了),刪除了相同的用戶,然后使用完全相同的密碼再次添加了它,並且角色。 現在可以使用了。 去圖...此外,這可能是由於https://docs.mongodb.org/v3.0/release-notes/3.0-scram/#upgrade-mongodb-cr-to-scram引起的,但我不是確定,因為我現在已經知道以前安裝了什么版本(開發環境,所以請原諒缺少適當的日志記錄:P)
無論如何,以為這個答案最終會在將來對某人有所幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.