SQL Server 的自动设置将尝试执行所有必要的步骤以允许远程访问(这既用于从运行 SQL Server 以外的计算机管理企业服务器,也用于从 SCP 内部连接到服务器)。


测试远程访问


确认能否连接的最佳方法是使用 SQL Server Management Studio(可从微软免费下载)。如果该工具能从另一台计算机连接到您的 SQL Server 实例,则说明一切正常。


需检查的设置


启用远程访问


(如果您尚未安装 SSMS,请将此步骤留到最后,因为除非有人故意禁用该功能,否则这通常不是问题。)


在运行 SQL Server 的计算机上通过 SSMS 连接。右键单击实例并选择“属性”。点击左侧菜单中的“连接”,确认“允许远程连接到此服务器”复选框已勾选。


 



检查 TCP/IP 是否已启用


在运行 SQL Server 的计算机上运行 SQL Server 配置管理器。展开“SQL Server 网络配置”节点,并选择标题为“<<您的实例>> 的协议”的条目。



如果 TCP/IP 未启用,请启用它,然后重启服务:



确保浏览器服务正在运行


在 SQL Server 配置管理器的“服务”部分,确认 SQL Server 浏览器服务正在运行,如下图所示。如果其状态为其他状态,请进入其属性,将启动模式更改为“自动”,然后启动该服务。


您也可以使用标准的 Windows 服务工具执行相同的操作。



允许通过防火墙建立连接


您需要创建两条防火墙规则。第一条是允许连接到 SQL Server 浏览器,该服务使用 UDP 端口 1434。然后,您必须允许连接到 SQL Server 本身。如果您的 SQL Server 使用动态端口(默认行为),则授予对程序本身的访问权限。或者,设置为特定端口并允许访问该端口。


以下示例涵盖了动态端口所需的规则:



您可以通过命令提示符使用以下命令添加这些规则:


  netsh advfirewall firewall add rule name="SQL Browser" dir=in protocol=udp action=allow localport=1434 remoteip=localsubnet profile=DOMAIN enable=yes


  netsh advfirewall firewall add rule name="SQL Server" dir=in action=allow program="C:\Program Files\Microsoft SQL Server\MSSQL16.SCPENTERPRISE\MSSQL\Binn\sqlservr.exe" enable=yes remoteip=localsubnet profile=DOMAIN


请注意,根据您运行的 SQL Server 具体版本不同,sqlserver.exe 程序所在的位置可能会有所不同。