我們只想使某個IP的計算機才能連接到SQLServer服務器不允許其他客戶端連接怎麼操作呢?
解決方法
可以直接在防火牆中做限制
只允許與指定的IP地址建立
的通訊
當然
從更為安全的角度來考慮
應該把
端口改成其他的端口
其他解決方法
(限從指定IP接入的客戶端)
如果使用SQLServer
還可以通過端點限制的方法來實現
此方法要求一塊專門的網卡
所有可以連接SQLServer的客戶端均通過此網卡接入(假設此網卡的IP是
)
在“SQL Server配置管理器”的“SQLServer
網絡配置中”
禁止除TCP/IP之外的所有協議
使用如下的T
SQL禁止默認的TCP端點
!
Code highlighting produced byActiproCodeHighlighter(freeware)
> ALTER ENDPOINT [TSQL Default TCP]
STATE = STOPPED
使用如下的T
SQL建立新的TCP端點和授權
!
Code highlighting produced byActiproCodeHighlighter(freeware)
> USE master
GO
建立一個新的端點
!
Code highlighting produced byActiproCodeHighlighter(freeware)
> CREATE ENDPOINT [TSQL User TCP]
STATE = STARTED
AS TCP(
LISTENER_PORT =
LISTENER_IP = (
)
偵聽的網絡地址
)
FOR TSQL()
GO
授予所有登錄(或者指定登錄)使用此端點的連接權限
!
Code highlighting produced byActiproCodeHighlighter(freeware)
> GRANT CONNECT ON ENDPOINT::[TSQL User TCP]
TO [public]
完成上述配置之後
只有通過網絡地址配置為
的網卡接入的客戶端才能訪問SQLServer;另外
如果只授予指定登錄對端點的連接權限
則只有指定的登錄才能接入SQLServer實例
其他解決方法
(限指定IP的客戶端接入)
當SQL Server
升級到SP
或者更高的版本的時候
還可以通過新增的觸發器來實現控制
執行下面的T
SQL後
將使除IP地址為
之外的客戶端連接失敗
!
Code highlighting produced byActiproCodeHighlighter(freeware)
> USE master
GO
CREATE TRIGGER tr_LoginCheck
ON ALL SERVER
FOR LOGON
AS
ROLLBACK TRAN
GO
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22356.html