轻松掌握使用 SQL Server 浏览器,解决SQL Server 2005跨网段不能连接问题
SQL Server Browser? 作為 Windows 服務(wù)在服務(wù)器上運行。SQL Server Browser 偵聽對 SQL Server 資源的傳入請求,并提供計算機上安裝的 SQL Server 實例的相關(guān)
信息。SQL Server Browser 可用于執(zhí)行下列三種操作:SQL Server Browser 服務(wù) (sqlbrowser) 為數(shù)據(jù)庫引擎的每個實例提供實例名稱和版本號。SQL Server Browser 隨 SQL Server 2005 一起安裝,為該計算機上運行的早期版本的 SQL Server(從 SQL Server 7.0 開始)提供幫助。
默認情況下,不為 SQL Server Express 啟用 SQL Server Browser 服務(wù)。SQL Server Browser 可以使用外圍應(yīng)用配置器工具進行初始配置,并使用 SQL Server 配置管理器進行管理。
背景
在 SQL Server 2000 之前,一臺計算機上只能安裝一個 SQL Server 實例。SQL Server 偵聽 1433 端口傳入的請求,此端口由官方的 Internet 號碼分配機構(gòu) (IANA) 分配給 SQL Server。只有一個 SQL Server 實例可以使用端口,因此當 SQL Server 2000 引入對 SQL Server 多個實例的支持時,便開發(fā)了 SQL Server 解析協(xié)議 (SSRP),用于偵聽 1434 端口。此偵聽器服務(wù)用已安裝的實例的名稱以及實例使用的端口或命名管道來響應(yīng)客戶端請求。為解決 SSRP 系統(tǒng)的限制,SQL Server 2005 提供了 SQL Server Browser 服務(wù)來替代 SSRP。
SQL Server 瀏覽器工作原理
啟動一個 SQL Server 實例后,如果為 SQL Server 啟用了 TCP/IP 或 VIA 協(xié)議,服務(wù)器將被分配一個 TCP/IP 端口。如果啟用了命名管道協(xié)議,SQL Server 將偵聽特定的命名管道。該特定實例將使用此端口或管道與客戶端應(yīng)用程序交 換數(shù)據(jù)。在安裝過程中,1433 端口和管道 sqlquery 將分配給默認實例,但服務(wù)器管理員可以隨后使用 SQL Server 配置管理器進行更改。由于只有一個 SQL Server 實例可以使用端口或管道,因此,會將不同的端口號和管道名稱分配給命名實例,包括 SQL Server Express。默認情況下,命名實例被配置為使用動態(tài)端口,因此在啟動 SQL Server 時分配可用的端口。可以為 SQL Server 實例分配特定端口。連接時,客戶端可以指定所需端口。但是如果端口是動態(tài)分配的,端口號可能會在重新啟動 SQL Server 時被更改,因此正確的端口號對于客戶端來說是不確定的。
啟動后,SQL Server Browser 將啟動并使用 UDP 1434 端口。SQL Server Browser 將讀取注冊表,識別計算機上的所有 SQL Server 實例,并注明它們使用的端口和命名管道。當一臺服務(wù)器具有兩個或多個網(wǎng)卡時,SQL Server Browser 會為 SQL Server 返回啟用的所有端口。SQL Server 2005 和 SQL Server Browser 支持 ipv6 和 ipv4。
如果 SQL Server 2000 和 SQL Server 2005 客戶端請求 SQL Server 資源,客戶端網(wǎng)絡(luò)庫將使用 1434 端口向服務(wù)器發(fā)送一條 UDP 消息。SQL Server Browser 將用請求的實例的 TCP/IP 端口或命名管道做出響應(yīng)。然后,客戶端應(yīng)用程序中的網(wǎng)絡(luò)庫將使用所需實例的端口或命名管道向服務(wù)器發(fā)送請求來完成連接。
使用 SQL Server 瀏覽器
當 SQL Server Browser 服務(wù)不運行時,如果您提供了正確的端口號或命名管道,仍可以連接到 SQL Server。例如,如果 SQL Server 的默認實例在 1433 端口上運行,則可以使用 TCP/IP 連接到此默認實例。
無法進行以下連接:
在未完全指定所有參數(shù)(例如 TCP/IP 端口或命名管道)的情況下,組件嘗試連接到命名實例。
生成或傳遞其他組件隨后要用來進行重新連接的服務(wù)器或?qū)嵗畔⒌慕M件。
未提供端口號或管道就連接到命名實例。這包括對命名實例的數(shù)據(jù)鏡像和聚集命名實例。
到命名實例或默認實例(如果未使用 TCP/IP 1434 端口)的專用管理員連接。
OLAP 重定向程序服務(wù)。
枚舉 SQL Server Management Studio、企業(yè)管理器或查詢分析器中的服務(wù)器。
如果在客戶端服務(wù)器方案中使用 SQL Server(例如,應(yīng)用程序通過網(wǎng)絡(luò)訪問 SQL Server),那么,若要停止或禁用 SQL Server Browser 服務(wù),必須為每個實例分配一個特定端口號,并編寫客戶端應(yīng)用程序代碼以便始終使用該端口號。此方法存在如下問題:
必須更新和維護客戶端應(yīng)用程序代碼才能確保它連接到正確的端口。
如果服務(wù)器上的其他服務(wù)或應(yīng)用程序可以使用您為每個實例選擇的端口,則會導致 SQL Server 實例不可用。
并行安裝 SQL Server 2000
在 SQL Server 2000 中,通過 SQL Server 服務(wù)識別服務(wù)器連接端點。在 SQL Server 2005 中,該功能是通過 SQL Server Browser 服務(wù)實現(xiàn)的。如果在還運行 SQL Server 2000 或 MSDE 的計算機上安裝 SQL Server,則必須將它們升級到 SP3 或更高版本。SP3 之前的版本無法正確共享 1434 端口,并且可能會使 SQL Server 實例不能用于請求客戶端應(yīng)用程序。盡管可以通過更改啟動順序,使 SQL Server Browser 服務(wù)在 SQL Server 2000 或 MSDE 之前啟動,但建議您將所有較舊版本的 SQL Server 更新為最新的 Service Pack。
在計算機中裝有 SQL Server 2000 實例的情況下,如果 SQL Server Browser 未運行,將啟動 SQL Server 2000 偵聽器服務(wù)。如果 SQL Server Browser 在偵聽器服務(wù)啟動之后啟動,將用 5 秒鐘來等待 SQL Server 2000 放棄 1434 端口。如果未放棄該端口,SQL Server Browser 將無法啟動。對于 SP3 之前的 SQL Server 2000 版本,若要解決此問題,需要停止 SQL Server 2000,啟動 SQL Server Browser,然后重新啟動 SQL Server 2000。SQL Server 2000 偵聽器服務(wù)將繼續(xù)嘗試使用 1434 端口進行啟動,因此應(yīng)盡快將 SQL Server 2000 實例升級到 SP3。
SQL Server 7.0 與 SQL Server Browser 沒有沖突。
通過命令行進行安裝、卸載和運行
默認情況下,SQL Server Browser 程序安裝在 C:Program FilesMicrosoft SQL Server90Sharedsqlbrowser.exe 處。如果 SQL Server 2000 已安裝在計算機上,但尚未升級到 SP 3,而且 SQL Server 2000 實例也未進行升級,則應(yīng)在安裝 SQL Server 2005 期間停止 SQL Server 2000。如果 SQL Server 2000 正在運行,SQL Server Browser 將無法啟動,也無法使用 1434 端口,而安裝可能會因缺少連接而失敗。
SQL Server Browser 服務(wù)在刪除 SQL Server 2005 的最后一個實例后被卸載。SQL Server 2000 的實例將恢復(fù)其原始行為。
可以使用 -c 開關(guān),從命令行啟動 SQL Server Browser 來排除故障。
????? sqlbrowser.exe -c
安全性
帳戶權(quán)限
SQL Server Browser 使用 SQL Server 解析協(xié)議 (SSRP) 偵聽 UDP 端口,并接受未經(jīng)身份驗證的請求。SQL Server Browser 應(yīng)該在低特權(quán)用戶的安全上下文中運行,以將受到惡意攻擊的幾率降到最低。默認情況下,使用本地系統(tǒng)帳戶啟動 SQL Server Browser。通過使用 Windows 服務(wù)程序可以更改登錄帳戶。SQL Server Browser 的最低用戶權(quán)限如下:
拒絕通過網(wǎng)絡(luò)訪問該計算機。
拒絕本地登錄。
拒絕以批處理作業(yè)登錄。
拒絕通過“終端服務(wù)”登錄。
以服務(wù)身份登錄。
讀取和寫入與網(wǎng)絡(luò)通信(端口和管道)相關(guān)的 SQL Server 注冊表項。
默認帳戶
安裝程序?qū)?SQL Server 瀏覽器配置為使用安裝期間為服務(wù)選定的帳戶。其他可能的帳戶包括:
所有“域本地”帳戶
本地服務(wù)帳戶(不可以在 W2K 平臺上使用)
本地系統(tǒng)帳戶(不推薦使用,因為其具有不必要的權(quán)限)
隱藏 SQL Server
隱藏的實例是僅支持共享內(nèi)存連 接的 SQL Server 實例。對于 SQL Server 2005,HideInstance 注冊表項指示 SQL Server Browser 不應(yīng)對此服務(wù)器實例的相關(guān)信息做出響應(yīng)。SQL Server Browser 還支持 SQL Server 2000 隱藏實例的方法,這些實例是通過在服務(wù)器網(wǎng)絡(luò)實用工具中設(shè)置 HideServer 選項啟用的。有關(guān)詳細信息,請參閱 SQL Server 2005 聯(lián)機叢書中的如何隱藏 SQL Server 數(shù)據(jù)庫引擎實例。
使用防火墻
若要與服務(wù)器上有防火墻保護的 SQL Server Browser 服務(wù)進行通信,除了打開 SQL Server 使用的 TCP 端口(如 1433)之外,還要打開 UDP 1434 端口。
? ? ? 總之,如果不使用默認的1433端口,只要另外啟用你設(shè)置的端口 +1的端口即可,如啟用1333端口,則要同時啟用1334端口。
?
轉(zhuǎn)載于:https://www.cnblogs.com/niceboy/archive/2009/02/06/1385526.html
總結(jié)
以上是生活随笔為你收集整理的轻松掌握使用 SQL Server 浏览器,解决SQL Server 2005跨网段不能连接问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 栈+模拟(大鱼吃小鱼)
- 下一篇: linux 一键安装字体,在deepin