排查 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中文网其他相关文章!