Windows SQL Management Studio 的防火墙规则

Windows Firewall Rules For SQL Management Studio

这个 post 的目的是找出为什么我无法从 Windows 10 系统登录远程 SQL 服务器实例。我的 Windows 10 系统连接正常,防火墙规则太多而且没有限制。

因此,我想收紧我的 Windows10/Windows Defender 入站和出站防火墙规则,我认为这些规则允许 SQL Server Management Studio 与 SQL 远程节点上的服务器。客户端和服务器都在同一个域中。

远程服务器上的 SQL 实例使用动态端口 49365。

我有一个入站规则,本地和远程端口不受限制的 TCP。此规则应缩小到哪些端口?

对于我的出站规则,我有一个适用于所有本地端口和远程端口 1434 的 UDP 协议。

我相信这种疯狂的配置允许 SQL Management Studio 与动态端口 49365 上的远程 SQL 服务器通信。

问题 1:我的防火墙规则设置究竟应该是什么?

(我将把问题 2 作为一个单独的 OP 问。)

我认为您必须在 SQL 服务器中创建允许端口 1433/ 1433 的入站规则。 动态端口对于此配置并不重要。

首先是简单的部分:客户端不需要任何入站连接,因为它不接收任何连接(它创建连接),因此您可以安全地阻止所有入站连接。

现在是即将离任的人。服务器本身只需要TCP访问它正在监听的端口,所以如果你有一个固定端口,你就打开它(默认1433对于默认实例),你很高兴。

但是由于您使用的是动态端口,因此设置会有点困难。基本上,“动态端口”意味着服务器每次启动时都监听一个“随机”端口,SQL 浏览器服务 告诉客户端每个实例监听哪个端口(这是命名实例的默认设置)。

因此,为此,首先您需要允许到 SQL 浏览器的传出连接,该浏览器侦听 UDP 1434。现在你还需要像以前一样的正常服务器连接,它仍然是 TCP,但这次端口是未知的(因为它是随机的)。因此,最多您可以制定的最严格的规则是允许所有 TCP 端口,也可能被客户端程序(例如 ssms.exe)或您的防火墙支持的任何其他参数过滤。