Windows Server 2008 R2 for Workgroup 上的 SQL Server 2012 Express 防火墙配置

Windows Server 2008 R2 for Workgroup 上的 SQL Server 2012 Express 防火墙配置

我们正在尝试配置一个服务器应用程序,使用 SQL Server 2012 Express 在 Windows Server 2008 R2 上运行。在服务器防火墙完全关闭的情况下,应用程序可以与服务器正常通信,但是当防火墙打开并启用常用的 SQL Server 端口时,通信失败。

防火墙是否有任何特殊技巧可使其在工作组网络上工作?应用程序支持人员习惯于在基于域的网络上工作,并且惊讶于防火墙在打开其常用端口的情况下无法工作。

谢谢你,

更新:

我们获得了以下批处理文件来打开服务器上所需的端口。我们尝试了此操作,并在防火墙例外列表中看到了所有相应的 SQL 条目,但它仍然不起作用(我们确实尝试了服务器重新启动)。

@echo =========  SQL Server Ports  ===================
@echo Enabling SQLServer default instance port 1433
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Enabling Dedicated Admin Connection port 1434
netsh firewall set portopening TCP 1434 "SQL Admin Connection" 
@echo Enabling conventional SQL Server Service Broker port 4022  
netsh firewall set portopening TCP 4022 "SQL Service Broker" 
@echo Enabling Transact-SQL Debugger/RPC port 135 
netsh firewall set portopening TCP 135 "SQL Debugger/RPC" 
@echo =========  Analysis Services Ports  ==============
@echo Enabling SSAS Default Instance port 2383
netsh firewall set portopening TCP 2383 "Analysis Services" 
@echo Enabling SQL Server Browser Service port 2382
netsh firewall set portopening TCP 2382 "SQL Browser" 
@echo =========  Misc Applications  ==============
@echo Enabling HTTP port 80 
netsh firewall set portopening TCP 80 "HTTP" 
@echo Enabling SSL port 443
netsh firewall set portopening TCP 443 "SSL" 
@echo Enabling port for SQL Server Browser Service's 'Browse' Button
netsh firewall set portopening UDP 1434 "SQL Browser" 
@echo Allowing multicast broadcast response on UDP (Browser Service Enumerations OK)
netsh firewall set multicastbroadcastresponse ENABLE

答案1

SQL Server 文档中有一章关于为 SQL Server 配置 Windows 防火墙的精彩内容。请特别注意“动态端口”部分:配置 Windows 防火墙以允许 SQL Server 访问

我假设您的实例有一个代理在 1433 上监听,然后为 SQL DB 实例使用动态端口。在这种情况下,您可以禁用动态端口,或者使用 Windows 高级防火墙授予对 sqlservr.exe 的访问权限,而不是特定端口(根据文档)。

相关内容