如何仅允许特定公共 IP 地址(白名单)远程连接到 SQL Server 实例并限制对所有其他 IP 的访问

如何仅允许特定公共 IP 地址(白名单)远程连接到 SQL Server 实例并限制对所有其他 IP 的访问

如何仅允许特定公共 IP 地址(白名单)远程连接到 SQL Server 实例?

例如,从 SSMS 登录到托管在 Windows 专用服务器上的 SQL Server 实例,仅允许从特定的公共 IP 访问。

此外,需要限制对所有其他 IP 的访问,即防止从 SSMS 登录。

以下是源触发器:我可以更改为 remotehost 以允许特定的公共 IP 访问吗

EXEC sp_cycle_errorlog ;  
GO  
CREATE TRIGGER trigLogon_CheckForIPAddress
ON ALL SERVER
FOR LOGON
AS
BEGIN
  IF NOT EXISTS (
    SELECT
      client_net_address AS ipaddress
    FROM sys.dm_exec_connections
    WHERE session_id = @@spid
      AND ISNULL(client_net_address ,'Named Pipes?') IN('<localhost>','Named Pipes?','192.168.0.1','192.168.0.2','192.168.0.40') )
    BEGIN
      RAISERROR('Unauthorized use of login from inpermissible machine IP.', 16, 1)
      ROLLBACK
    END
END;
GO
ENABLE TRIGGER trigLogon_CheckForIPAddress ON ALL SERVER

答案1

听起来像是使用 Windows 防火墙所做的事情(您可以阻止 SQL Server 端口,并允许某些 IP 地址例外)。

你可以用类似的东西来做到这一点登录触发器使用 sys.dm_exec_connections 检查 IP 地址,但我认为这比直接阻止流量要不太理想。

在数据库层面上做到这一点当然要困难得多。

答案2

不。

真的,请不要这样做。

安装 VPN。

相关内容