Windows防火墙阻止了SQL server远程调试
对于SQL server初学者而言,当你写的几百行满是bug的T-SQL语句不能正常输出想要的结果时,这时候就需要开启调试器进行调试了。而此时假如数据库环境是新搭建的,那么SQL server远程调试就会要求开通DCOM(TCP端口 135) 和IPSEC(UDP 4500 /UDP 500)
如图,点击调试按钮,出现如下弹框
此三项含义为:
- 取消远程调试:取消启动调试的尝试。您的计算机的安全设置保持不变。
- 取消禁止从本地网络(子网)中的计算机进行远程调试的限制(N):启用本地子网上计算机的远程调试。此设置可能会暴露您的本地子网上计算机的安全漏洞,但防火墙会继续阻止来自子网外的信息。
- 取消禁止从任何计算机上的远程调试的限制(A):启用网络上任意位置的计算机的远程调试。此设置最不安全。
很明显,通常为了安全起见,服务端数据库开启本地子网内的远程调试权限就够了。
此时选择‘取消禁止从本地网络(子网)中的计算机进行远程调试的限制’ (真TM拗口)并点击确定时,
又出现以下弹框:
再点击“确定”
到了这一步,先不要慌,问题不大。只需要手工配置下服务器端 以及客户端的防火墙入站规则即可。
服务端需配置的入站规则:
- SQL sever数据库引擎实例sqlserver.exe
- svchost.exe 针对DCOM(TCP 135端口)
- IPSEC(UDP 4500、500端口)
客户端需配置的入站规则:
- svchost.exe
- SQL server management Studio :ssms.exe
附:SQL server官网教程: