程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何限制訪問SQL Server的客戶端IP地址

如何限制訪問SQL Server的客戶端IP地址

編輯:關於SqlServer


有時候,我們只想使某個IP的計算機才能連接到SQLServer服務器,不允許其他客戶端連接,怎麼辦呢?

  解決方法:可以直接在防火牆中做限制,只允許與指定的IP地址建立1433的通訊。當然,從更為安全的角度來考慮,應該把1433端口改成其他的端口。

  其他解決方法1(限從指定IP接入的客戶端):如果使用SQLServer2005,還可以通過端點限制的方法來實現,此方法要求一塊專門的網卡,所有可以連接SQLServer的客戶端均通過此網卡接入(假設此網卡的IP是192.168.1.1):

  1.在“SQL Server配置管理器”的“SQLServer2005網絡配置中”,禁止除TCP/IP之外的所有協議;

  2.使用如下的T-SQL禁止默認的TCP端點

!--

  Code highlighting produced byActiproCodeHighlighter(freeware)

  http://www.CodeHighlighter.com/

  --> ALTER ENDPOINT [TSQL Default TCP]

  STATE = STOPPED

  3.使用如下的T-SQL建立新的TCP端點和授權

!--

  Code highlighting produced byActiproCodeHighlighter(freeware)

  http://www.CodeHighlighter.com/

  --> USE master

  GO

  -- 建立一個新的端點

!--

  Code highlighting produced byActiproCodeHighlighter(freeware)

  http://www.CodeHighlighter.com/

  --> CREATE ENDPOINT [TSQL User TCP]

  STATE = STARTED

  AS TCP(

  LISTENER_PORT = 1433,

  LISTENER_IP = (192.168.1.1) -- 偵聽的網絡地址

  )

  FOR TSQL()

  GO



  -- 授予所有登錄(或者指定登錄)使用此端點的連接權限

!--

  Code highlighting produced byActiproCodeHighlighter(freeware)

  http://www.CodeHighlighter.com/

  --> GRANT CONNECT ON ENDPOINT::[TSQL User TCP]

  TO [public]

  完成上述配置之後,只有通過網絡地址配置為192.168.1.1的網卡接入的客戶端才能訪問SQLServer;另外,如果只授予指定登錄對端點的連接權限,則只有指定的登錄才能接入SQLServer實例。

  其他解決方法2(限指定IP的客戶端接入)

  當SQL Server 2005升級到SP2或者更高的版本的時候,還可以通過新增的觸發器來實現控制。

  執行下面的T-SQL後,將使除IP地址為192.168.1.1之外的客戶端連接失敗。

!--

  Code highlighting produced byActiproCodeHighlighter(freeware)

  http://www.CodeHighlighter.com/

  --> USE master

  GO

  CREATE TRIGGER tr_LoginCheck

  ON ALL SERVER

  FOR LOGON

  AS

  ROLLBACK TRAN

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved