特定のパブリック 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をインストールします。