6

我正在使用 Mongodb 作为我的 asp.net mvc 前端站点的数据库。我有 MongoDB 在 3 个服务器上运行,在一个副本集中,一个主服务器,一个辅助服务器和一个仲裁服务器。连接到此的是 3 个前端 Web 服务器,它们对 Mongo 中保存的数据执行 CRUD 操作。我有一些关于我的设置的问题,我想澄清一下。

这是我来自 C# 的连接字符串

server=myprimary.com:27017,mysecondary.com:27017;replicaset=MySet;safe=true;database=MyDatabase

在此连接字符串中不包含仲裁器是否正确?

当我使用 sql server 时,我设置了具有集成安全性的所有连接字符串。Mongo 连接字符串中类似的最佳实践是什么?

4

2 回答 2

3

在此连接字符串中不包含仲裁器是否正确?

您无需提供仲裁器详细信息,它将由您的应用程序驱动程序自动发现。

您可以在 mongoURI 中提供的唯一内容是您要连接的数据库的 SSL 选项或用户名和密码。但是让我提醒您,某些驱动程序不支持 mongoURI 中的 SSL 或“用户名”和“密码”。

http://docs.mongodb.org/manual/reference/connection-string/#uri.ssl

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
于 2013-05-18T00:33:51.200 回答
1

我建议您查阅文档。它可以回答你的大部分问题。此外,我看到您正在使用替代连接字符串语法。我强烈建议更改为其他连接字符串格式,因为我们可能会弃用您正在使用的版本。等效的连接字符串将是

 mongodb://myprimary.com:27017,mysecondary.com:27017/MyDatabase/?replicaset=MySet.

最后,您将在上一个链接中找到有关身份验证的文档。我们没有“集成安全”选项,但我们支持 SSPI 集成(也称为 GSSAPI 和 kerberose)。您会发现它在我们的文档中称为外部身份验证。需要注意的是,您正在运行的 MongoDB 服务器需要在 linux 机器上并使用 kerberos 进行设置。当与 Active Directory 结合使用以获取 keytab 文件时, 这可能是一个复杂的过程。

于 2013-05-19T20:02:07.810 回答