首页 >后端开发 >Golang >为什么我的 GoLang MongoDB 连接失败并出现 SASL 身份验证错误,如何使用'authenticationDatabase”修复它?

为什么我的 GoLang MongoDB 连接失败并出现 SASL 身份验证错误,如何使用'authenticationDatabase”修复它?

Barbara Streisand
Barbara Streisand原创
2024-12-05 13:01:16309浏览

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