首頁 >後端開發 >Golang >為什麼我的 GoLang MongoDB 連線失敗並出現 SASL 驗證錯誤,如何使用「authenticationDatabase」修復它?

為什麼我的 GoLang MongoDB 連線失敗並出現 SASL 驗證錯誤,如何使用「authenticationDatabase」修復它?

Barbara Streisand
Barbara Streisand原創
2024-12-05 13:01:16313瀏覽

Why is my GoLang MongoDB connection failing with a SASL authentication error, and how can I fix it using `authenticationDatabase`?

排查 MongoDB SASL 驗證錯誤

在 GoLang 中,建立 MongoDB 連線通常需要驗證。有時,儘管提供了正確的憑證,開發人員仍會遇到錯誤「伺服器在 SASL 驗證步驟傳回錯誤:驗證失敗」。要解決此問題,考慮authenticationDatabase參數至關重要。

連接到需要明確設定authenticationDatabase的遠端MongoDB實例時會出現此問題。此參數指定對使用者進行身份驗證的資料庫。預設情況下,它設定為用戶嘗試存取的資料庫。但是,如果使用者對不同的資料庫有不同的權限,則需要指定authenticationDatabase。

要在GoLang中使用authenticationDatabase參數,只需修改DialInfo結構體:

mongoDialInfo := &mgo.DialInfo{
    Addrs: []string{dbHost},
    Database: dbName,
    Username: userName,
    Password: password,
    Timeout: 60 * time.Second,
    // Add the authenticationDatabase parameter
    AuthenticationDatabase: dbName,
}

透過將AuthenticationDatabase 設定為與Database 相同的值,即明確指定用於驗證的資料庫。這可確保使用者的憑證已正確驗證並且身份驗證成功。

以上是為什麼我的 GoLang MongoDB 連線失敗並出現 SASL 驗證錯誤,如何使用「authenticationDatabase」修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn