Как разрешить удаленное подключение к экземпляру SQL Server только для определенного общедоступного IP-адреса (белый список) и ограничить доступ ко всем остальным IP-адресам

Как разрешить удаленное подключение к экземпляру SQL Server только к определенному общедоступному IP-адресу (белый список)?

Например, вход из SSMS в экземпляр SQL Server, размещенный на выделенном сервере Windows, разрешает доступ только с определенного общедоступного IP-адреса.

Кроме того, необходимо ограничить доступ ко всем другим IP-адресам, т. Е. Для предотвращения входа в систему из SSMS.

Ниже приведен исходный триггер: могу ли я перейти на удаленный хост, чтобы разрешить определенный общедоступный 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

2 ответа

Не надо.

На самом деле, пожалуйста, не надо.

Установите VPN.

Похоже, вы бы использовали брандмауэр Windows (вы можете заблокировать порт (-ы) SQL Server и разрешить исключения для определенных IP-адресов).

Вы можете сделать это с помощью чего-то вроде триггера входа в систему, который проверяет IP-адрес с помощью sys.dm_exec_connections, но я думаю, что это гораздо менее желательный вариант, чем прямая блокировка трафика.

Конечно, гораздо сложнее сделать на уровне базы данных.

Другие вопросы по тегам