2013年11月14日 星期四

遠端連線

這篇文章包含三個主題:

  • 如何啟用 TCP/IP 協定,提供遠端連線功能( remote access )。
  • 如何設定防火牆,允許遠端連線通過。
  • 如何設定遠端管理員連接( remote admin connections )。

設定允許遠端連線功能(remote connection)

SQL Server 的遠端連線功能,必須使用 TCP/IP 通訊協定,因此要允許遠端連線,除了啟用遠端連線功能,還得啟用 TCP/IP 通訊協定。

允許遠端連線,這個功能預設是啟用的,但是 TCP/IP 通訊協定,不同版本的 SQL Server ,其預設狀態不盡相同

啟用允許遠端連線

你可以在伺服器屬性視窗中,找到啟用遠端連線功能。

啟用 TCP/IP 通訊協定

1. 執行【SQL Server 組態管理員】,並針對 SQL Server 執行個體啟用 TCP/IP 通訊協定

2. 設定 TCP/IP 通訊協定內容:

一部主機可能有多組IP,例如內部IP、外部IP、本機IP等等,如果你要允許這些IP都開放遠端連線,就設定為「是」,否則就設定為「否」。

3. 設定 TCP/IP 通訊埠:輸入你要使用的 port number 。

上一步驟中,若全部接聽設定為「是」,此處你只要指定「IPAll」這個選項即可;否擇,則找到你要使用的那個IP選項。

  • TCP 動態通訊埠:若不使用動態通訊埠,請保留空白;若要使用動態通訊埠,請輸入0。
  • TCP 動態通:

4. 啟用 SQL Server Broswer

如果只有一台預設執行個體,那麼即使不啟用 SQL Server Broswer ,也可以找的到該台執行個體。 SQL Server Broswer 是用來管理與識別電腦上的所有 SQL Server 執行個體,當它啟動時,會要求 UDP 通訊埠 1434,並讀取 SQL Server 的登錄項目,以回應用戶端的要求。

5. 完成以上步驟後,你必須重新啟動 SQL Server 讓設定值生效。之後就可以使用 TCP/IP 通訊協定連線。

設定防火牆,允許遠端連線通過

SQL Server is a Winsock application that communicates over TCP/IP SQL Server listens for incoming connections on a particular port. The default port for SQL Server is 1433. The port doesn't need to be 1433, but 1433 is the official Internet Assigned Number Authority (IANA) socket number for SQL Server.

A client application communicates to SQL Server using the client-side network library Dbmssocn.dll When the client establishes a TCP/IP connection, a three-way handshake takes place.

  • The client opens a source port ( random value between 1024 and 5000 ) and sends traffic to a destination port ( which is 1433 by default ).
  • The SQL Server then communicates to the client by sending traffic from 1433 back to the port that the client established.

如果伺服器啟用了防火牆功能,若要允許遠端連線,就必須開啟 SQL 對外的通訊埠。

1.執行【控制台】-> 【系統及安全】->【Windows 防火牆】,點選進階設定。

2.新增規則

3.規則類別,選擇「通訊埠」。你也可以選擇「自訂」,可以更詳細的設定防火牆規則,例如限制允許連線的IP等等。

4.設定通訊埠

5.設定執行動作

6.設定套用規則

7.設定規則名稱

設定遠端管理員連接(remote admin connections)

專用管理員連接(dedicated administrator connection, DAC)

專用管理員連接可以提供管理員在伺服器遭到鎖定或在異常狀態下,仍然可以存取執行中的伺服器,進而執行診斷功能或 Transact-SQL 陳述式,以針對伺服器上的問題進行疑難排解。

根據預設,DAC 只會接聽回送 IP 位址 (127.0.0.1)、通訊埠 1434。 如果無法使用 TCP 通訊埠 1434,當 Database Engine 啟動時,會自動指派 TCP 通訊埠。 在電腦上安裝多個 SQL Server 執行個體時,請檢查錯誤記錄檔以取得 TCP 通訊埠編號。

remote admin connections 選項

  • 0:只允許使用 DAC 的本機連接。(default)
  • 1:允許使用 DAC 的遠端連接。
sp_configure 'remote admin connections', 1;
GO 
RECONFIGURE;
GO

設定遠端存取(remote access)

遠端存取(remote access)

遠端存取選項是用來控制本機或遠端伺服器上執行的預存程序。

remote access 選項

  • 0:只允許本機伺服器執行本機預存程序。
  • 1:允許從遠端伺服器執行本機預存程序,或從本機伺服器執行遠端預存程序。(default)
EXEC sp_configure 'remote access', 0 ;
GO
RECONFIGURE ;
GO

3 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 終於懂了SQL Server Broswer的啟用時機,謝謝~~
    如果只有一台預設執行個體,那麼即使不啟用 SQL Server Broswer ,也可以找的到該台執行個體。

    回覆刪除