關於SQl browser

轉載(http://msdn.microsoft.com/zh-cn/library/ms181087(SQL.90).aspx

SQL Server 2005 聯機叢書(2007 年 9 月)
SQL Server Browser 服務

更新日期: 2006 年 4 月 14 日

SQL Server 瀏覽器程序以 Windows 服務的形式運行。 SQL Server 瀏覽器偵聽對 Microsoft SQL Server 資源的傳入請求,並提供計算機上安裝的 SQL Server 實例的相關信息。 SQL Server 瀏覽器可用於執行下列操作:

  • 瀏覽可用服務器列表
  • 連接到正確的服務器實例
  • 連接到專用管理員連接 (DAC) 端點

SQL Server Browser 服務 (sqlbrowser) 爲數據庫引擎和 SSAS 的每個實例提供實例名稱和版本號。 SQL Server 瀏覽器隨 Microsoft SQL Server 2005 一起安裝,爲該計算機上運行的早期版本的 SQL Server(從 Microsoft SQL Server 7.0 開始)提供此服務。

SQL Server 瀏覽器可以在安裝過程中進行配置,或者可以使用外圍應用配置器工具進行配置。 該程序可以使用 SQL Server 配置管理器進行管理。 默認情況下,SQL Server Browser 服務會自動啓動:

  • 升級安裝時。
  • 與 SQL Server 2000 實例並行安裝時。
  • 安裝在羣集上時。
  • 安裝 SQL Server 2005 Enterprise Edition、Standard Edition 或 Workgroup Edition 的命名實例時。
  • 安裝 Analysis Services 的命名實例時。

在 Microsoft SQL Server 2000 之前,一臺計算機上只能安裝一個 SQL Server 實例。SQL Server 偵聽 1433 端口傳入的請求,此端口由官方的 Internet 號碼分配機構 (IANA) 分配給 SQL Server。 只有一個 SQL Server 實例可以使用端口,因此當 SQL Server 2000 引入對 SQL Server 多個實例的支持時,便開發了 SQL Server 解析協議 (SSRP),用於偵聽 1434 端口上的 UDP。此偵聽器服務用已安裝的實例的名稱以及實例使用的端口或命名管道來響應客戶端請求。 爲解決 SSRP 系統的限制,SQL Server 2005 引入了 SQL Server Browser 服務來替代 SSRP。

啓動一個 SQL Server 實例後,如果爲 SQL Server 啓用了 TCP/IP 或 VIA 協議,服務器將被分配一個 TCP/IP 端口。 如果啓用了 Named Pipes 協議,SQL Server 將偵聽特定的命名管道。 該特定實例將使用此端口(或“管道”)與客戶端應用程序交換數據。 在安裝過程中,TCP 1433 端口和管道 /sql/query 將分配給默認實例,但服務器管理員可以隨後使用 SQL Server 配置管理器進行更改。 由於只有一個 SQL Server 實例可以使用端口或管道,因此,會將不同的端口號和管道名稱分配給命名實例,包括 SQL Server Express。 默認情況下,命名實例和 SQL Server Express 在啓用時便配置爲使用動態端口,也就是說,當 SQL Server 啓動時就分配了可用端口。 如果需要,可以爲 SQL Server 實例分配特定端口。 連接時,客戶端可以指定特定端口,但是如果端口是動態分配的,端口號可能會在重新啓動 SQL Server 時被更改,因此正確的端口號對於客戶端來說是不確定的。

啓動後,SQL Server 瀏覽器將啓動並使用 UDP 1434 端口。SQL Server 瀏覽器將讀取註冊表,識別計算機上的所有 SQL Server 實例,並註明它們使用的端口和命名管道。 當一臺服務器具有兩個或多個網卡時,SQL Server 瀏覽器會爲 SQL Server 返回其遇到的第一個啓用的端口。SQL Server 2005 和 SQL Server 瀏覽器支持 ipv6 和 ipv4。

當 SQL Server 2000 和 SQL Server 2005 客戶端請求命名實例上的 SQL Server 資源時,客戶端網絡庫使用端口 1434 向服務器發送一條 UDP 消息。 SQL Server Browser 將用所請求實例的 TCP/IP 端口或命名管道做出響應。 然後,客戶端應用程序中的網絡庫將使用所需實例的端口或命名管道向服務器發送請求來完成連接。

有關啓動和停止 SQL Server Browser 服務的信息,請參閱 SQL Server 聯機叢書中的“如何啓動和停止 SQL Server Browser 服務”。

當 SQL Server Browser 服務不運行時,如果您提供了正確的端口號或命名管道,仍可以連接到 SQL Server。 例如,如果 SQL Server 的默認實例在 1433 端口上運行,則可以使用 TCP/IP 連接到此默認實例。

但是,如果 SQL Server Browser 服務未運行,則以下連接無效:

  • 在未完全指定所有參數(例如 TCP/IP 端口或命名管道)的情況下,組件嘗試連接到命名實例。
  • 生成或傳遞其他組件隨後要用來進行重新連接的服務器/實例信息的組件。
  • 未提供端口號或管道就連接到命名實例。
  • 在未使用 TCP/IP 1434 端口的情況下,將 DAC 連接到命名實例或默認實例。
  • OLAP 重定向程序服務。
  • 枚舉 SQL Server Management Studio、企業管理器或查詢分析器中的服務器。

如果在客戶端服務器方案中使用 SQL Server(例如,應用程序通過網絡訪問 SQL Server),那麼,若要停止或禁用 SQL Server Browser 服務,必須爲每個實例分配一個特定端口號,並編寫客戶端應用程序代碼以便始終使用該端口號。 此方法存在如下問題:

  • 必須更新和維護客戶端應用程序代碼才能確保它連接到正確的端口。
  • 如果服務器上的其他服務或應用程序可以使用您爲每個實例選擇的端口,則會導致 SQL Server 實例不可用。

在 SQL Server 2000 中,通過 SQL Server 服務識別服務器連接端點。在 SQL Server 2005 中,該功能是通過 SQL Server Browser 服務實現的。 如果安裝 SQL Server 的計算機還運行 SQL Server 2000 或 MSDE,必須確保 SQL Server 2000 或 MSDE 已升級到 Service Pack 3a (SP3a) 或更高版本。 SP3a 之前的版本無法正確共享 1434 端口,並且可能會使 SQL Server 實例對於發出請求的客戶端應用程序不可用。 儘管可以更改服務啓動順序,使 SQL Server Browser 服務在 SQL Server 2000 或 MSDE 之前啓動,但建議您將所有較早版本的 SQL Server 更新爲最新的 Service Pack。

如果計算機上安裝的 SQL Server 2000 實例沒有至少更新爲 Service Pack 3a,則當 SQL Server Browser 未運行時,將啓動 SQL Server 2000 偵聽器服務。 如果 SQL Server 瀏覽器在偵聽器服務啓動之後啓動,將用 5 秒鐘來等待 SQL Server 2000 放棄 1434 端口。如果未放棄該端口,SQL Server 瀏覽器將無法啓動。 對於 Service Pack 3a 之前的 SQL Server 2000 版本,若要解決此問題,需要停止 SQL Server 2000,啓動 SQL Server Browser,然後重新啓動 SQL Server 2000。 SQL Server 2000 偵聽器服務將繼續嘗試在 1434 端口上啓動,因此應儘快將 SQL Server 2000 實例升級到 Service Pack 3a。

SQL Server 7.0 不具備類似功能,因此不會與 SQL Server 瀏覽器發生衝突。

SQL Server 瀏覽器不是羣集資源,不支持從一個羣集節點到其他羣集節點的故障轉移。 因此,在使用羣集的情況下,應安裝 SQL Server 瀏覽器,併爲羣集的每個節點啓用該瀏覽器。 在羣集中,SQL Server 瀏覽器偵聽 IP_ANY。

ms181087.note(zh-cn,SQL.90).gif注意:
偵聽 IP_ANY 時,如果啓用偵聽特定的 IP,用戶必須爲每個 IP 配置相同的 TCP 端口,因爲 SQL Server 瀏覽器將返回它遇到的第一個 IP/端口對。

默認情況下,SQL Server 瀏覽器程序安裝在 C:/Program Files/Microsoft SQL Server/90/Shared/sqlbrowser.exe 處。 如果 SQL Server 2000 已安裝在計算機上,但尚未升級到 Service Pack 3,而且 SQL Server 2000 實例也未進行升級,則應在安裝 SQL Server 2005 期間停止 SQL Server 2000。 如果 SQL Server 2000 正在運行,SQL Server 瀏覽器將無法啓動,也無法使用 1434 端口,而安裝可能會因缺少連接而失敗。

SQL Server Browser 服務在刪除 SQL Server 2005 的最後一個實例後被卸載。 SQL Server 2000 的實例將恢復其原始行爲。

可以使用 -c 開關,通過命令提示符啓動 SQL Server 瀏覽器來排除故障。

<drive>/<path>/sqlbrowser.exe -c

帳戶權限

SQL Server 瀏覽器使用 SQL Server 解析協議 (SSRP) 偵聽 UDP 端口,並接受未經身份驗證的請求。 SQL Server 瀏覽器應該在低特權用戶的安全上下文中運行,以將受到惡意攻擊的機率降到最低。 通過使用 SQL Server 配置管理器更改登錄帳戶。 SQL Server 瀏覽器的最小用戶權限如下:

  • 拒絕通過網絡訪問該計算機
  • 拒絕本地登錄
  • 拒絕以批處理作業登錄
  • 拒絕通過“終端服務”登錄
  • 作爲服務登錄
  • 讀取和寫入與網絡通信(端口和管道)相關的 SQL Server 註冊表項

默認帳戶

安裝程序將 SQL Server 瀏覽器配置爲使用安裝期間爲服務選定的帳戶。 其他可能的帳戶包括:

  • 所有“域/本地”帳戶
  • 本地服務帳戶(不可以在 W2K 平臺上使用)
  • 本地系統帳戶(不推薦使用,因爲其具有不必要的權限)

隱藏 SQL Server

隱藏的實例是僅支持共享內存連接的 SQL Server 實例。 對於 SQL Server 2005,設置 HideInstance 標記來指示 SQL Server 瀏覽器不應對此服務器實例的相關信息做出響應。 通過在服務器網絡實用工具中設置 HideServer 選項,SQL Server 瀏覽器還支持 SQL Server 2000 隱藏實例方法。 有關配置 HideServer 選項的信息,請參閱 SQL Server 聯機叢書中的“如何隱藏 SQL Server 數據庫引擎實例”。

使用防火牆

若要與服務器上有防火牆保護的 SQL Server Browser 服務進行通信,除了打開 SQL Server 使用的 TCP 端口(如 1433)之外,還要打開 UDP 1434 端口。 有關使用防火牆的信息,請參閱 SQL Server 聯機叢書中的“如何將防火牆配置爲允許 SQL Server 訪問”。

發佈日期 歷史記錄

2006 年 4 月 14 日

更改的內容:
  • 明晰了“使用 SQL Server 瀏覽器”一節,指明瞭需要 SQL Server Browser 服務連接類型的列表。

2005 年 12 月 5 日

更改的內容:
  • 修改了說明 SQL Server Browser 服務何時自動啓動的列表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章