无法从另一个SQL Server连接到SQL Server命名实例

use*_*820 15 sql-server sql-server-2012

我会感激一些帮助,因为我在这个问题上被困了2天!

场景:我可以从我的开发机器(和其他同事)连接到SERVER\INSTANCE,但无法从另一台SQL Server连接.我得到的错误是通用的"...验证实例名称是否正确..".我做过/验证的事情:

  1. 我已经在目的地(和源)服务器上禁用了防火墙以查看它是否是防火墙问题(这似乎很可能是因为我可以从我的机器连接,但这没有帮助).

  2. 我已经验证了SQL浏览器是否正常工作(因为我可以从开发机器连接)

  3. 由于两个SQL Server都有多个实例和硬编码端口,我甚至确保它们是不同的端口,因为存在一些冲突(这没有帮助).

  4. 我重新启动了SQL Server并验证了浏览器/实例服务正在运行

  5. 检查事件日志 - 没什么值得注意的

  6. 有趣的是,如果我没有连接实例名称,但通过动态端口(即SERVER,PORT)从第二台服务器连接它工作正常 - 这告诉我SQL浏览器是错误的,除了它在本地工作正常服务器和我的开发机器.

有什么想法和建议吗?谢谢.

编辑:为了澄清注释,我将数据SQL Server称为SQLA和非数据SQLB.

编辑#2:添加更多测试用例/信息:

信息:上述测试均通过SSMS接口完成,以建立与数据库的连接,所涉及的数据库均为2012年.

新测试案例:我尝试运行脚本来设置链接服务器,发现在SQL Server 2005上运行脚本工作正常,但在SQL Server 2012服务器(SQLB)上运行相同的脚本无法连接到SQLA错误:SQL Server网络接口:错误查找指定的服务器/实例[xFFFFFFFF].

编辑#3:缩小潜在问题:

下载并运行PortQry,当从我的开发框运行时,我得到所有返回的实例,通过UDP查询1434,从SQLB运行相同的查询返回NO实例,它将1434表示为FILTERED,而在开发框中它返回为LISTING.我只能认为这与防火墙有关,只是我在两台机器上都禁用了防火墙

Dar*_*nMB 15

您无法连接"ServerName\Instance"但是能够通过"ServerName,Port"连接到服务器的测试用例是当您使用Microsoft VPN连接到网络时会发生的情况.(我有这个问题).对于我的VPN问题,我只需使用静态端口号来解决它.

这显然是由于VPN不转发UDP数据包,只允许TCP连接.

在您的情况下,您的防火墙或安全设置或防病毒或任何可能阻止UDP.

我建议您检查防火墙设置以专门允许UDP.

浏览器Artical

启动时,SQL Server Browser启动并声明UDP端口1434.SQL Server Browser读取注册表,识别计算机上的所有SQL Server实例,并记录它们使用的端口和命名管道.当服务器有两个或更多网卡时,SQL Server Browser将返回为SQL Server启用的所有端口.SQL Server 2005和SQL Server Browser支持ipv6和ipv4.

当SQL Server 2000和SQL Server 2005客户端请求SQL Server资源时,客户端网络库使用端口1434向服务器发送UDP消息.SQL Server Browser使用所请求实例的TCP/IP端口或命名管道进行响应.然后,客户端应用程序上的网络库通过使用所需实例的端口或命名管道向服务器发送请求来完成连接.

使用防火墙

要与防火墙后面的服务器上的SQL Server Browser服务进行通信,请在SQL Server使用的TCP端口(例如,1433)之外打开UDP端口1434.

  • 究竟.我进入了"具有高级安全性的Windows防火墙",并且我已经启用了我的传入规则,即TCP端口1433到"端口和协议"选项卡内的任何端口.它奏效了.谢谢! (2认同)

Fra*_*cia 6

不确定这是否是您正在寻找的答案,但它对我有用.在Windows防火墙中旋转我的轮子后,我回到了SQL Server配置管理器,检查了SQL Server网络配置,在我正在使用的实例的协议中查看TCP/IP.默认情况下,似乎我的设置为禁用,这允许在本地计算机上进行实例连接,但不在另一台计算机上使用SSMS.启用TCP/IP对我来说是个窍门.

http://technet.microsoft.com/en-us/library/hh231672.aspx