僅允許特定 IP 連線 SQL Server,三種做法:
僅開放指定 IP 的 1433 通訊。建議修改預設連接埠提高安全性。
-- 停用預設 TCP 端點
ALTER ENDPOINT [TSQL Default TCP] STATE = STOPPED;
-- 建立新端點綁定特定 IP (192.168.1.1)
CREATE ENDPOINT [TSQL User TCP]
STATE = STARTED
AS TCP (LISTENER_PORT = 1433, LISTENER_IP = (192.168.1.1))
FOR TSQL();
-- 授權 public 使用
GRANT CONNECT ON ENDPOINT::[TSQL User TCP] TO [public];
僅透過該網卡 IP 連入的用戶端能存取;可改授權特定登入帳號。
CREATE TRIGGER tr_LoginCheck ON ALL SERVER FOR LOGON AS
BEGIN
IF ORIGINAL_LOGIN() NOT IN ('allowed_login') -- 或檢查 CLIENT_HOST()
ROLLBACK;
END;
範例:封鎖非 192.168.1.1 的連線。靈活可程式化,但需注意效能與鎖定風險。