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

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

好吧,事情是这样的:

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

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

但是我无法使用 SQL Server 2005 Management Studio(标准版)连接到同一个数据库。

我已检查了连接信息一百遍,但仍然没有结果。

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

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

答案1

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

尝试针对同一服务器创建 ODBC。如果出现相同错误,请创建另一个 ODBC,但使用常规“SQL Server”驱动程序,并在“客户端配置”设置中选择“命名管道”。

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

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

答案2

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

答案3

MSDN 上的这篇文章有很多其他链接和清单可以帮助解决这个问题:

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

摘自帖子:

造成这一现象的原因有很多,大致可以分为五类:

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

摘要清单:

  1. 您的目标服务器启动了吗?
  2. 您的目标服务器是否正在监听 NP?哪个管道?
  3. 您的客户端启用了 NP 了吗?使用与服务器相同的管道进行连接?
  4. 您正在建立本地连接吗?如果是,实例是什么?默认实例还是远程实例?
  5. 您是否在连接字符串中输入了正确的实例名称?请记住,Sqlexpress 是一个命名实例。
  6. 您是否启用了远程连接?防火墙?IPSec?“文件和打印机共享”打开了吗?可以访问服务器吗?
  7. 您能使用或 \ 建立基本连接吗?请使用 sqlcmd 或 osql。
  8. 您的重现步骤是什么?发生此错误时您的客户端应用程序在做什么?哪个数据库操作,详细一点?

答案4

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

入站规则有 2 对针对 SQL Server Management Studio 的规则,允许任何 UDP 和任何 TCP 端口,用于“私有”和“域”配置文件,程序 SqlWb.exe。这些均未启用。

我更改了一对规则以适用于所有三个配置文件(公共、私人、域),启用它们,然后我就可以连接了。

相关内容