只讓指定的機器串連SQLServer伺服器

來源:互聯網
上載者:User

背景

只想使某個IP的電腦才能串連到SQL Server伺服器,不允許其他用戶端串連。

解決方案

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

其他解決方案1(限從指定IP接入的用戶端)

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

1.      在“SQL Server 組態管理員”的“SQL Server 2005網路設定中”,禁止除TCP/IP之外的所有協議;

2.      使用如下的T-SQL禁止預設的TCP端點

ALTER ENDPOINT [TSQL Default TCP]

STATE = STOPPED

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

USE master

GO

-- 建立一個新的端點

CREATE ENDPOINT [TSQL User TCP]

STATE = STARTED

AS TCP(

   LISTENER_PORT = 1433,

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

)

FOR TSQL()

GO

 

-- 授予所有登入(或者指定登入)使用此端點的串連許可權

GRANT CONNECT ON ENDPOINT::[TSQL User TCP]

TO [public]

完成上述配置之後,只有通過網路地址配置為192.168.1.1的網卡接入的用戶端才能訪問SQL Server;另外,如果只授予指定登入對端點的串連許可權,則只有指定的登入才能接入SQL Server執行個體。

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

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

執行下面的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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.