특정 공용 IP 주소(화이트리스트)로만 SQL Server 인스턴스에 대한 원격 연결을 허용하고 다른 모든 IP에 대한 액세스를 제한하는 방법

특정 공용 IP 주소(화이트리스트)로만 SQL Server 인스턴스에 대한 원격 연결을 허용하고 다른 모든 IP에 대한 액세스를 제한하는 방법

특정 공용 IP 주소(화이트리스트)에 대해서만 SQL Server 인스턴스에 대한 원격 연결을 허용하려면 어떻게 해야 합니까?

예를 들어 SSMS에서 Windows 전용 서버에 호스팅된 SQL Server 인스턴스에 로그인하면 특정 공용 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

답변1

Windows 방화벽을 사용하여 수행하는 작업처럼 들립니다(SQL Server 포트를 차단하고 특정 IP 주소에 대한 예외를 허용할 수 있음).

당신은 다음과 같은 것으로 이것을 할 수 있습니다로그온 트리거sys.dm_exec_connections를 사용하여 IP 주소를 확인했지만 트래픽을 완전히 차단하는 것보다 훨씬 덜 바람직한 옵션이라고 생각합니다.

확실히 데이터베이스 수준에서 수행하는 것이 훨씬 더 어렵습니다.

답변2

하지 않다.

정말 그러지 마세요.

VPN을 설치하세요.

관련 정보