无法通过IP和命名实例远程连接到SQL 2012

Her*_*der 5 sql windows sql-server windows-firewall sql-server-2012

首先,我已经知道Windows防火墙阻止了我的连接 - 我只是不知道如何处理它.当我完全关闭WF时,我的远程连接正常工作.我已经有一个规则允许在端口1433传入请求,而且它似乎是正确的端口,但我不确定.现在了解更多细节.

我的远程专用服务器上有SQL Server 2008 R2,没有问题通过SSMS远程连接.但后来我安装了SQL Server 2012.它工作正常,但我在安装过程中被迫为它创建了一个命名实例,因为SQL08正在使用默认实例.

我在该框上运行的ASP.NET连接字符串工作正常并连接到sql12没有问题.这是混淆的连接字符串:

Server = myserver\MSSQLSSERVER2012; Database = MyDB; User Id = Me; 密码=为mypass;

看起来命名实例正在使用端口1433.我验证了SQL浏览器处于活动状态并正在运行.我有一个Windows防火墙例外,允许sql服务器和端口1433,虽然之前有,我想知道这是否只适用于现在禁用的SQL08(我如何确保这适用于SQL12).

假设该服务器的IP是1.2.3.4

从SSMS我尝试连接到服务器:

  1. 1.2.3.4
  2. 1.2.3.4\MSSQLSSERVER2012
  3. 1.2.3.4\MSSQLSSERVER2012,1433

什么都行不通.总是错误是:

在此输入图像描述

我已经阅读了很多关于这个主题的文章,他们都说:

  1. 启用S​​QL浏览器(完成)
  2. 在Windows防火墙中打开一个端口(似乎完成??)

那么如何才能在Windows防火墙中发现我需要做些什么来解决这个问题呢?我不能完全关闭,这是一个公共Web服务器.

小智 10

以下是SQL Server功能使用的端口列表.根据您使用的功能/服务,您可能需要打开TCP/UDP的其他端口.同样在服务器属性>连接>下,确认已选中允许与此服务器的远程连接.远程连接的说明是针对2008年的,因为你提到关闭防火墙,你可以远程连接然后我猜这不是必需的,但不会伤害双重检查.

配置Windows防火墙以允许SQL Server访问

启用远程连接


小智 7

简短的回答是:

  1. SQL Server默认实例使用TCP端口1433,除非搞乱(不要这样做!).如果您只有一个默认实例,那么这是您需要的唯一端口,我相信 - SQL Server客户端不使用浏览器服务来查找默认实例.
  2. 如果使用命名实例,SQL Browser将起作用.这将侦听UDP端口1434; 它响应命名实例的端口号请求.
  3. 默认情况下,命名实例使用动态TCP端口 - 每次启动时都使用不同的端口.浏览器会为您排序,但通过防火墙会很痛苦.
  4. 没有理由不在SQL Server配置管理器中为命名实例(例如,TCP端口1434或其他)设置固定端口,这样您只需要为命名实例打开一个额外端口.