¿Cómo permito la conexión remota a la instancia de SQL Server solo a una dirección IP pública específica (lista blanca)?
Por ejemplo, inicie sesión desde SSMS en una instancia de SQL Server alojada en un servidor dedicado de Windows que permita el acceso solo desde una IP pública específica.
Además, la necesidad de restringir el acceso a todas las demás IP, es decir, evitar el inicio de sesión desde SSMS.
A continuación se muestra un desencadenante de origen: ¿puedo cambiar a host remoto para permitir el acceso a una IP pública específica?
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
Respuesta1
Suena como algo que haría usando el firewall de Windows (puede bloquear los puertos de SQL Server y permitir excepciones para ciertas direcciones IP).
Podrías hacer esto con algo como undisparador de inicio de sesióneso verificó la dirección IP usando sys.dm_exec_connections pero creo que es una opción mucho menos deseable que bloquear el tráfico directamente.
Ciertamente, es mucho más difícil de hacer a nivel de base de datos.
Respuesta2
No.
De verdad, por favor no lo hagas.
Instale una VPN.