如果我理解了我所读到的内容,那么为了允许远程访问 SQL Server,您需要做的就是在 Windows 防火墙中打开 TCP 端口 1433。但这将使您的服务器对整个 Internet 完全开放,并且 SQL Server 本身没有提供进一步的工具来微调连接源。
有没有办法只允许来自已知静态 IP 地址的连接访问此类端口?
如果我理解了我所读到的内容,那么为了允许远程访问 SQL Server,您需要做的就是在 Windows 防火墙中打开 TCP 端口 1433。但这将使您的服务器对整个 Internet 完全开放,并且 SQL Server 本身没有提供进一步的工具来微调连接源。
有没有办法只允许来自已知静态 IP 地址的连接访问此类端口?
为此,我使用 Windows 防火墙和 Powershell。当然,除非您想获得 ScaleArc 之类的东西来充当反向代理。您的选择实际上将仅限于利用其中一种技术的东西。防火墙/IPSec 或反向代理。
这是我用来验证此环境中存在规则的端口并添加它的脚本大纲。指定 -RemoteAddress 以限制对某些 IP 的访问:
New-NetFirewallRule Docs
.
Powershell脚本:
Windows 防火墙允许开箱即用地按 IP 地址进行过滤,只是在“新建规则”向导中没有为您提供选择。您必须先创建规则,然后编辑其属性:
您可以通过您的网络和路由/交换基础设施来控制它。每当我遇到类似情况时,我们的网络团队都会将访问 SQL 所在子网的权限限制为某些子网。例如,您希望您的内部开发人员能够访问开发系统,但不能访问生产系统。您不仅可以通过 Windows ID 或 SQL 用户来限制这一点,还可以为 SQL 所在的子网打开路由/隧道,来往/来自开发人员所在的子网。因此,您不仅可以控制 Windows/ SQL 帐户,但也按子网/网络。