首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 限制指定機器連接的實作方案

     編輯:Oracle 資料庫相關知識

問題背景

SQL Server 內建無「限特定機器連接」功能,亦無連接觸發預存程序機制。需透過外部架構或間接手段實現存取控制。

三種可行方案比較

方案一:防火牆層級管控(推薦)

將 SQL Server 置於防火牆後方,利用防火牆規則僅允許授權 IP 存取埠(預設 1433)。此為最安全、功能最完整的作法,符合纵深防禦原則。

方案二:ODS 閘道器代理

開發自訂 ODS Gateway,客戶端連線至 Gateway,由 Gateway 驗證來源後轉發至 SQL Server。缺點:若客戶端發現真實 SQL Server 位址,仍可繞過 Gateway 直連。參考程式碼可至 Microsoft SQL Programmers Toolkit 取得。

方案三:排程預存程序巡檢與強制中斷

建立持續執行的預存程序,定期查詢 sysprocesses.net_address(MAC 位址),對不符合清單的連線發出 KILL 指令。缺點:

  • 僅支援 MAC 位址識別,易偽造
  • 屬事後阻斷,惡意連線可能在被偵測前已竊改資料
  • 屬權宜之計,非根本解決

最佳實務建議

採用防火牆 + 網路分段架構:資料庫置於隔離網段,僅應用伺服器可存取;應用層實作身分驗證與授權邏輯。若需資料庫層面管控,SQL Server 2017+ 提供連線攔截器與行級安全性,可作為補充防線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved