SQL Server 客戶端的IP地址限制訪問的破解
此文主要向大家講述的是正確限制訪問SQL Server 客戶端的IP地址的實際操作步驟,在實際操作中我們只想使某個IP的計算機(jī)才能連接到SQL Server數(shù)據(jù)庫的服務(wù)器,不允許其他客戶端連接,怎么辦呢?
解決方法
可以直接在防火墻中做限制,只允許與指定的IP地址建立1433的通訊。當(dāng)然,從更為安全的角度來考慮,應(yīng)該把1433端口改成其他的端口。
其他解決方法1(限從指定IP接入的SQL Server 客戶端)
如果使用SQL Server 2005,還可以通過端點限制的方法來實現(xiàn),此方法要求一塊專門的網(wǎng)卡,所有可以連接SQL Server 客戶端均通過此網(wǎng)卡接入(假設(shè)此網(wǎng)卡的IP是192.168.1.1):
1.在“SQL Server 配置管理器”的“SQL Server 2005網(wǎng)絡(luò)配置中”,禁止除TCP/IP之外的所有協(xié)議;
2.使用如下的T-SQL禁止默認(rèn)的TCP端點
- ALTERENDPOINT[TSQLDefaultTCP]
- STATE=STOPPED
3.使用如下的T-SQL建立新的TCP端點和授權(quán)
- USEmaster
- GO
建立一個新的端點
- CREATEENDPOINT[TSQLUserTCP]
- STATE=STARTED
- ASTCP(
- LISTENER_PORT=1433,
LISTENER_IP=(192.168.1.1)--偵聽的網(wǎng)絡(luò)地址
- )
- FORTSQL()
- GO
授予所有登錄(或者指定登錄)使用此端點的連接權(quán)限
- GRANTCONNECTONENDPOINT::[TSQLUserTCP]
- TO[public]
完成上述配置之后,只有通過網(wǎng)絡(luò)地址配置為192.168.1.1的網(wǎng)卡接入的SQL Server 客戶端才能訪問SQL Server;另外,如果只授予指定登錄對端點的連接權(quán)限,則只有指定的登錄才能接入SQL Server實例。
其他解決方法2(限指定IP的客戶端接入)
當(dāng)SQL Server 2005升級到SP2或者更高的版本的時候,還可以通過新增的觸發(fā)器來實現(xiàn)控制。
執(zhí)行下面的T-SQL后,將使除IP地址為192.168.1.1之外的客戶端連接失敗。
- USEmaster
- GO
- CREATETRIGGERtr_LoginCheck
- ONALLSERVER
- FORLOGON
- AS
- IFEVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]','varchar(15)')<>'192.168.1.1'
- ROLLBACKTRAN
- GO
以上的相關(guān)內(nèi)容就是對限制訪問SQL Server 客戶端IP地址的介紹,望你能有所收獲。
【編輯推薦】