SQL Server インスタンスへのリモート接続を特定のパブリック IP アドレス (ホワイト リスト) のみに許可し、他のすべての IP へのアクセスを制限する方法

SQL Server インスタンスへのリモート接続を特定のパブリック IP アドレス (ホワイト リスト) のみに許可し、他のすべての IP へのアクセスを制限する方法

特定のパブリック IP アドレス (ホワイト リスト) のみに SQL Server インスタンスへのリモート接続を許可するにはどうすればよいですか?

たとえば、特定のパブリック IP からのアクセスのみを許可する Windows 専用サーバー上でホストされている SQL Server インスタンスに SSMS からログインします。

また、他のすべての IP へのアクセスを制限する必要があります。つまり、SSMS からのログインを防ぐ必要があります。

以下はソーストリガーです: 特定のパブリックIPアクセスを許可するために、remotehostに変更できますか?

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をインストールします。

関連情報