熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

僅允許指定的機器連接SQL Server服務器

2013-11-15 14:50:45  來源: SQL Server 

  問題希望僅僅允許某個指定IP的計算機連接到SQL Server服務器但不允許其他的客戶端進行連接

  解決方法如下

  你可以直接在防火牆中做限制只允許與指定的IP地址建立的通訊(注從安全的角度來考慮應該把端口改成其他的端口)

  其他的解決方法

  一限從指定IP接入的客戶端:

  如果使用SQL Server 還可以通過端點限制的方法來實現此方法要求一塊專門的網卡所有可以連接SQL Server的客戶端均通過此網卡接入(假設此網卡的IP是)

  SQL Server 配置管理器SQL Server 網絡配置中禁止除TCP/IP之外的所有協議;

  使用如下的TSQL禁止默認的TCP端點

  ALTER ENDPOINT [TSQL Default TCP]
  STATE = STOPPED

  使用如下的TSQL建立新的TCP端點和授權

  USE master
  GO
   建立一個新的端點
  CREATE ENDPOINT [TSQL User TCP]
  STATE = STARTED
  AS TCP(
  LISTENER_PORT =
  LISTENER_IP = () 偵聽的網絡地址
  )
  FOR TSQL()
  GO

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

  GRANT CONNECT ON ENDPOINT::[TSQL User TCP]
  TO [public]

  完成以上的配置之後只有通過網絡地址配置為的網卡接入的客戶端才能訪問SQL Server;此外假如只授予指定登錄對端點的連接權限則只有指定的登錄才能接入SQL Server實例

  二限指定IP的客戶端接入

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

  執行一下的TSQL後IP地址為以外的客戶端連接將會出現失敗的現象

  USE master
  GO
  CREATE TRIGGER tr_LoginCheck
  ON ALL SERVER
  FOR LOGON
  AS
  IF EVENTDATA()value((/EVENT_INSTANCE/ClientHost)[] varchar()) <>
  ROLLBACK TRAN
  GO


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22427.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.