Как разрешить удаленное подключение к экземпляру SQL Server только с определенного публичного IP-адреса (белый список)?
Например, вход из SSMS в экземпляр SQL Server, размещенный на выделенном сервере Windows, разрешающий доступ только с определенного публичного 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-адресов).
Вы можете сделать это с помощью чего-то вродетриггер входа в системукоторый проверил IP-адрес с помощью sys.dm_exec_connections, но я думаю, что это гораздо менее желательный вариант, чем прямая блокировка трафика.
Конечно, на уровне базы данных это сделать гораздо сложнее.
решение2
Не.
Серьёзно, пожалуйста, не надо.
Установите VPN.