SQL Server Management Studio – 连接到远程数据库时出错

好的,这是交易:

我正在使用VPN连接到Windows 2003 Server。 在此服务器上,有一个远程SQL Server 2005 Express引擎。

我可以使用Visual Studio 2008连接到数据库。

但是我不能做的是用SQL Server 2005 Management Studio(Standard)连接到同一个数据库。

我已经检查了连接信息一百次,但仍然没有。

一个想法:做VS SSMS使用相同的SQL提供程序?

注意:我正在运行Windows 7 RC。 我完全没有问题在Vista下使用相同的configuration。

我假设你已经记得包含实例名称(server \ SQLEXPRESS)?

尝试在同一台服务器上创build一个ODBC。 如果你得到同样的错误, 创build另一个ODBC,但使用常规的“SQL Server”驱动程序,并在“客户端configuration”设置中select“命名pipe道”。

此外,SQLChickens提示确保SQL浏览器在服务器上启动是有效的。

另外,请尝试使用IP地址而不是NetBios名称。

如果您的SQL Express引擎需要确保SQL浏览器服务正在运行,否则客户端将无法在服务器端看到命名实例。

MSDN上的这个post有很多其他的链接和清单来帮助解决这个问题:

http://blogs.msdn.com/sql_protocols/archive/2007/03/31/named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server.aspx

从post:

各种原因分为五类:

  1. 不正确的连接string,如使用SqlExpress。
  2. 在SQL实例上没有启用NP。
  3. 远程连接未启用。
  4. 服务器未启动,或者指向连接string中不是真实的服务器。
  5. 其他原因,如不正确的安全上下文。

摘要清单:

  1. 你的目标服务器是否启动?
  2. 你的目标服务器正在监听NP吗? 哪个pipe道?
  3. 你的客户端是否启用了NP? 使用相同的pipe道连接作为服务器?
  4. 你在做本地连接吗? 如果是这样,什么是实例,默认或远程?
  5. 你有没有正确的实例名称连接string? 请记住,Sqlexpress是一个命名实例。
  6. 你是否启用远程连接? 防火墙吗? 安全? “文件和打印机共享”打开? 可以访问服务器?
  7. 你可以通过使用或\来进行基本连接吗? 使用sqlcmd或osql。
  8. 你的复制步骤是什么? 在这个错误发生期间你的客户端APP做了什么? 哪个数据库操作,细节?

我证实了在我的情况下(与几乎相同的问题陈述),服务器是好的,我可以通过禁用Windows 7防火墙的公共configuration文件来达到它。 (我也可以到达不同的SQL Server 2005服务器,而不是我的VPN,所以这显然是我的一个问题,但也与服务器的configuration有某种交互)。

入站规则有两对SQL Server Management Studio的规则,允许任何UDP和任何TCP端口,为“私人”和“域”configuration文件,程序SqlWb.exe。 这些都没有启用。

我改变了一对规则为所有三个configuration文件(公共,私人,域)服务,启用它们,我能够连接。