簡體   English   中英

連接到特定 mongodb 數據庫時的身份驗證錯誤

[英]Authentication error when connecting to specific mongodb database

我目前正在使用帶有 mongodb 本機驅動程序的 nodejs。 所以我的 mongodb 已經設置了具有 root 角色的管理員身份驗證,所以我可以使用 robomongo 或命令行登錄就好了。 所以回到我的項目,如果我設置我的連接字符串,我可以連接到 mongodb 就好了:

mongodb://admin:password@localhost:27017/

但是,如果我使用這個連接字符串:

mongodb://admin:password@localhost:27017/specificdb

它返回為:

MongoError:身份驗證失敗

我可以使用命令和 robomongo 訪問數據庫,有什么可以做的嗎? 我已經在數據庫下添加了管理員用戶,但仍然遇到同樣的問題。

您指定的數據庫是您進行身份驗證的數據庫。 如果該用戶未知/對該數據庫沒有任何角色,則無法對其進行身份驗證。

https://docs.mongodb.com/manual/reference/connection-string/

您可以為該數據庫創建(或新)用戶,或者使用身份驗證數據庫參數。

這對我有用:

關於連接的第一個解決方案

mongoose.connect('mongodb://....', {
// add this line 
authSource:"admin",
....
})

或第二個解決方案添加到 uri "?authSource=admin":

mongodb://user:password@host/yourDB?authSource=admin

** 請注意,我使用的是 mongoose,這是文檔特定聲明和 url:

authSource - 與用戶進行身份驗證時使用的數據庫並通過。 在 MongoDB 中,用戶的范圍僅限於數據庫。 如果您遇到意外的登錄失敗,您可能需要設置此選項。

https://mongoosejs.com/docs/connections.html#options

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM