我最近在运行Windows Server 2012的一系列计算机上安装了 SQL Server Express 2014 。共有七台计算机。
其中只有1个位于同一本地域company.local
。
单个流氓计算机位于不同的公共域public.company.org
。
我们希望通过SQL Server身份验证,使用 SSMS 远程连接来自同一本地域 company.local 中的开发计算机。我们能够轻松打开。
至于允许远程连接,我们发现自己遇到了更多困难。
我们确保定义防火墙规则以允许端口1433上的TCP和TCP的1434上的入站连接。我们验证了这种情况。
我们已将此规则设置为适用于所有配置文件:域,公共,私有。
我们确保在 SQL Server配置管理器中允许SQLEXPRESS的所有协议,特别是TCP / IP。
我们已启用 SQL Server Browser 。
配置更改后,我们已多次重启所有服务。 我们甚至重新启动了机器。
我们仍然无法使用以下任何一个SQLEXPRESS实例:
machine-name.public.company.com\SQLEXPRESS
machine-name.public.company.com\SQLEXPRESS,1434
<ip-address>\SQLEXPRESS
<ip-address>\SQLEXPRESS,1434
Ping服务器显示它是响应式的。我们已经确认端口确实是开放的。
据我们所知,我们已经修改,比较并匹配了6台本地机器上的所有配置/环境设置与不同域上的设置。
当在所有级别一起禁用防火墙时,我们可以连接。
当然我们不想打开门,所以我们在防火墙上添加了入站规则,以允许与SQL Server(SQLEXPRESS)服务的各种连接。
< / LI>所以问题是我们所做的是正确的方法吗?
为什么在其他本地计算机中不需要为SQL Server进程本身添加此防火墙例外???
答案 0 :(得分:0)
我已经检查过你的帖子两次了,但我找不到任何关于你是否允许远程连接到那个SQL Express实例的信息。你确实允许所有协议,但这还不够。
默认情况下,禁用Express实例的所有远程连接(包括DAC)。要检查此设置,请重新启动计算机(或SQL实例)并查看SQL Server日志。具体来说,您将对以“SQL Server正在侦听...”开头的条目感兴趣 - 在那里,您将找到实例正在侦听的所有协议,端口和地址。 如果您看到的唯一IP是127.0.0.1,则实例会拒绝所有远程连接,无论防火墙或其他任何内容。
我没有2014 Express进行检查,但是在2012年,此设置是通过Configuration Manager在“SQL Server网络配置”部分中配置的。