Мы пытаемся настроить серверное приложение для работы в Windows Server 2008 R2 с использованием SQL Server 2012 Express. Когда брандмауэр сервера полностью отключен, приложение может нормально взаимодействовать с сервером, но когда брандмауэр включен и включены обычные порты 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
В документации по SQL Server есть очень хорошая глава по настройке брандмауэра Windows для SQL Server. Обратите особое внимание на раздел «динамические порты»: Настройте брандмауэр Windows для разрешения доступа к SQL Server
Я предполагаю, что у вашего экземпляра есть брокер, который прослушивает 1433, а затем использует динамические порты для экземпляра SQL DB. В этом случае вы можете либо отключить динамические порты, либо с помощью расширенного брандмауэра Windows предоставить доступ к sqlservr.exe вместо определенного порта (согласно документации).