So erlauben Sie die Remoteverbindung zur SQL Server-Instanz nur für bestimmte öffentliche IP-Adressen (Whitelist) und beschränken den Zugriff auf alle anderen IPs

So erlauben Sie die Remoteverbindung zur SQL Server-Instanz nur für bestimmte öffentliche IP-Adressen (Whitelist) und beschränken den Zugriff auf alle anderen IPs

Wie lasse ich eine Remoteverbindung zur SQL Server-Instanz nur für bestimmte öffentliche IP-Adressen (Whitelist) zu?

Melden Sie sich beispielsweise von SSMS bei einer SQL Server-Instanz an, die auf einem dedizierten Windows-Server gehostet wird und den Zugriff nur von einer bestimmten öffentlichen IP-Adresse aus zulässt.

Außerdem muss der Zugriff auf alle anderen IPs beschränkt werden, d. h. die Anmeldung über SSMS muss verhindert werden.

Unten ist ein Quelltrigger: Kann ich zu Remotehost wechseln, um bestimmten öffentlichen IP-Zugriff zu ermöglichen?

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

Antwort1

Klingt nach etwas, das Sie mit der Windows-Firewall tun würden (Sie können die SQL Server-Ports blockieren und Ausnahmen für bestimmte IP-Adressen zulassen).

Sie können dies beispielsweise mit einemAnmeldetriggerdas die IP-Adresse mit sys.dm_exec_connections überprüft hat, aber ich denke, das ist eine weitaus weniger wünschenswerte Option, als den Datenverkehr direkt zu blockieren.

Auf Datenbankebene ist dies sicherlich viel schwieriger.

Antwort2

Nicht.

Wirklich, bitte nicht.

Installieren Sie ein VPN.

verwandte Informationen