MongoDB连接string是否需要ReplicaSet中每个服务器的身份validation详细信息?

我们发现我们的中学在主要故障之后没有正确authentication。 我们有两个MongoDB服务器(v3.4)都正确设置在一个复制数据库中:

mongo1:27017 mongo2:27017 

而我们的连接string(Node.js的MongoDB驱动程序v2.2.19)就是这样的:

mongodb://username:password@mongo1,mongo2/db?replicaSet=rs0

现在,我们的主要失败和中学, mongo2当选小学。 但是,DB调用失败,出现“未授权”错误。 所以我再看看MongoDB文档:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

它看起来不明确,每个主机是否需要username:password ? 但是这很奇怪,因为它们都被复制,所以用户应该是相同的,对吗?

我什至尝试过,在应用程序中使用此连接string:

mongodb://username:password@mongo1,username:password@mongo2/db?replicaSet=rs0

但是,失败: Error: Username with password containing an unescaped colon

用户名和密码是字母数字的,所以这个样式URI似乎有一个parsing问题。 但是与原来的,它没有正确authentication。 所以这些问题似乎彼此不一致。 我已经在独立模式下validation用户是否存在于两台服务器上,并具有适当的权限。 所以我不确定问题在哪里。 我发现另一个非常类似的问题与不同的驱动程序,但没有答案:(