SQLServer 網路通訊協定(一),sqlserver網路通訊協定

來源:互聯網
上載者:User

SQLServer 網路通訊協定(一),sqlserver網路通訊協定

SQLserver目前的主要3種協議為:Shared Memory、TCP/IP 和 Named Pipe

 

SharedMemory:

Shared Memory最快最簡單的協議,使用SharedMemory協議的用戶端僅可以串連到同一台伺服器上的SQLserver執行個體。如果其他協議有誤,可以通過Shared Memory串連到本機伺服器進行故障處理。

 

TCP/IP:

TCP/IP 是Internet上使用廣泛的通訊協定,它包括路由網路通訊協定的標準,提供進階的安全功能。

 

NamedPipe:

Named Pipe 是為區域網路而開發的協議。具名管道運行在TCP、NETBEUI等基礎協議之上,並不是一個基層網路傳送協議。用戶端串連具名管道的時候,它會首先訪問伺服器的IPC$共用,訪問IPC$共用必須通過Windows認證協議。如果沒有訪問SQLserver伺服器的檔案系統的許可權,就無法使用具名管道訪問SQLserver。

用戶端使用具名管道串連的基本過程如下:

(1)      SQLserver伺服器使用createNamedPipe函數建立具名管道並對其進行監聽。

(2)      用戶端使用createFile和writeFile函數試圖串連到伺服器的具名管道。

 

 

如果用戶端和SQLserver在同一個本網裡,有能通過Windows認證,可使用Named Pipe協議。如果用戶端和SQLserver是誇網段,而Windows認證又不那麼容易,還是使用TCP、IP協議。

 

SQLserver協議的選擇:伺服器網路通訊協定配置開啟某個網路通訊協定,用戶端才可以選擇使用。用戶端也可以配置連線協定的先後順序,讓串連優先嘗試串連某個協議。用戶端可以設定SQLserver服務的別名,指定串連的協議連接埠。用戶端可以緩衝上次的串連資訊。

 

 

SQLserver網路設定:

 

開啟“SQLserver組態管理員”,選擇“SQLserver網路設定”,可設定伺服器端的訪問協議。


執行命令cliconfg.exe開啟“用戶端網路工具 + 生產力”,也可以設定。


SQLserver組態管理員中的“SQLserver網路設定”儲存在註冊表位置為:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQL Server\MSSQL10_50.MSSQLSERVER\MSSQLServer\SuperSocketNetLib

 


SQLserver用戶端協議配置:

 

開啟“SQLserver組態管理員”,選擇“SQL Native Client 10.0 配置”,可設定用戶端的訪問協議。

 

如果沒有安裝用戶端工具,可以開啟註冊表修改:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client

 


SQLserveraliases(別名)配置:

 

預設情況下,SQL Server 使用“共用記憶體”協議串連到 SQL Server 的本地執行個體,使用“TCP/IP”或“具名管道”串連到其他電腦上的 SQL Server 執行個體。在以下情況下建立別名:使用 TCP/IP、具名管道或 VIA 並且希望提供自訂連接字串時;希望使用伺服器名稱之外的其他名稱進行串連時。



預設情況下,Microsoft Windows XP Service Pack 2 將啟用 Windows 防火牆,這將預設關閉連接埠1433。因為 Microsoft SQL Server 通過連接埠 1433 進行通訊,因此,如果將 SQL Server 配置為使用 TCP/IP 偵聽傳入用戶端串連,則必須重新開啟該連接埠。

 

 

給別名之後,本地用戶端串連本機伺服器執行個體時,可以串連進去。看到使用的是TCP串連。

 

 

但是在區域網路內的其他電腦串連時卻串連不上

(註:伺服器端的防火牆已經關閉。資料庫也允許了遠端存取。如果ip正常,伺服器名稱ping不同,可能DNS問題。實在不行,更改本地C:\WINDOWS\system32\drivers\hosts,綁定伺服器名稱和IP地址。再Telnet 檢查連接埠)

 

另一種串連方式是給定額外的串連參數:;SERVER=192.168.1.11;DATABASE=master,伺服器名任意填寫。

 

 

 

連接埠:

 

SQLserver TCP/IP協議預設監聽1433連接埠,SQLserver伺服器將在該連接埠上監聽並接受用戶端的TCP/IP通訊端串連請求。可以更改預設連接埠號碼, TCP用戶端和伺服器串連時,用戶端必須分配一個動態連接埠,預設情況下這個動態連接埠的分配範圍為 1024-5000。

 

設定TCP串連設定及連接埠範圍的註冊表路徑如下:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters

 

連接埠範圍(由IANA 保留):0 到 1023 

· 臨時連接埠範圍:1025 到5000 註冊表設定值

· 可用作特定連接埠:從0 到65535 的任何未封鎖連接埠

· 保留連接埠的可用範圍:1025 到5000 以及 49152 到65535 

· 封鎖連接埠的可用範圍:5001 到65535

 

註冊表預留了1433和1434連接埠:


 

更多參考:Windows 伺服器系統的服務概述和網路連接埠要求


 



相關文章

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.