了解MongoDb连接字符串

时间:2013-05-17 17:34:19

标签: c# mongodb mongodb-.net-driver

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

  

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

您可以在mongoURI中唯一提供的是SSL选项或您要连接的数据库的用户名和密码。但是让我提醒你,一些司机不尊重SSL或mongoURI中的'用户名'和'密码'。

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

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

答案 1 :(得分:1)

我建议您咨询the documentation。它可以回答您的大部分问题。另外,我看到你正在使用备用连接字符串语法。我强烈建议更改为其他连接字符串格式,因为我们可能会弃用您正在使用的版本。等效的连接字符串是

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

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