Como permito a conexão remota à instância do SQL Server apenas para um endereço IP público específico (lista branca)?
Por exemplo, faça login do SSMS na instância do SQL Server hospedada em um servidor dedicado Windows, permitindo acesso apenas a partir de um IP público específico.
Além disso, a necessidade de restringir o acesso a todos os outros IPs, ou seja, impedir o login do SSMS.
Abaixo está um gatilho de origem: posso mudar para host remoto para permitir acesso IP público específico
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
Responder1
Parece algo que você faria usando o firewall do Windows (você pode bloquear as portas do SQL Server e permitir exceções para determinados endereços IP).
Você poderia fazer isso com algo como umgatilho de logonque verificou o endereço IP usando sys.dm_exec_connections, mas acho que é uma opção muito menos desejável do que bloquear completamente o tráfego.
Certamente muito mais difícil de fazer no nível do banco de dados.
Responder2
Não.
Sério, por favor, não faça isso.
Instale uma VPN.