背景 只想使某個 IP 的計算機才能連接到 SQL Server 服務器,不允許其他客戶端連接。 解決方法 可以直接在防火墻中做限制,只允許與指定的 IP 地址建立 1433 的通訊。當然,從更為安全的角度來考慮,應該把 1433 端口改成其他的端口。 其他解決方法 1 (限從
背景
只想使某個IP的計算機才能連接到SQL Server服務器,不允許其他客戶端連接。
解決方法
可以直接在防火墻中做限制,只允許與指定的IP地址建立1433的通訊。當然,從更為安全的角度來考慮,應該把1433端口改成其他的端口。
其他解決方法1(限從指定IP接入的客戶端)
如果使用SQL Server 2005,還可以通過端點限制的方法來實現(xiàn),此方法要求一塊專門的網(wǎng)卡,所有可以連接SQL Server的客戶端均通過此網(wǎng)卡接入(假設此網(wǎng)卡的IP是192.168.1.1):
1. 在“SQL Server 配置管理器”的“SQL Server 2005網(wǎng)絡配置中”,禁止除TCP/IP之外的所有協(xié)議;
2. 使用如下的T-SQL禁止默認的TCP端點
ALTER ENDPOINT [TSQL Default TCP]
STATE = STOPPED
3. 使用如下的T-SQL建立新的TCP端點和授權
USEmaster
GO
-- 建立一個新的端點
CREATE ENDPOINT [TSQL User TCP]
STATE = STARTED
AS TCP(
LISTENER_PORT = 1433,
LISTENER_IP = (192.168.1.1) -- 偵聽的網(wǎng)絡地址
)
FOR TSQL()
GO
-- 授予所有登錄(或者指定登錄)使用此端點的連接權限
GRANT CONNECT ON ENDPOINT::[TSQL User TCP]
TO [public]
完成上述配置之后,只有通過網(wǎng)絡地址配置為192.168.1.1的網(wǎng)卡接入的客戶端才能訪問SQL Server;另外,如果只授予指定登錄對端點的連接權限,則只有指定的登錄才能接入SQL Server實例。
其他解決方法2(限指定IP的客戶端接入)
當SQL Server 2005升級到SP2或者更高的版本的時候,還可以通過新增的觸發(fā)器來實現(xiàn)控制。
執(zhí)行下面的T-SQL后,將使除IP地址為192.168.1.1之外的客戶端連接失敗。
USE master
GO
CREATE TRIGGER tr_LoginCheck
ON ALL SERVER
FOR LOGON
AS
IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)') <> '192.168.1.1'
ROLLBACK TRAN
GO
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com