「SQL Server 2005 Express Edition」を使い始め,管理ツールの「SQL Server Configuration Manager(SQL Server構成マネージャ)」や「SQL Server 2005 Surface Area Configuration(機能のセキュリティ構成)ツール」に付属する様々なオプションを試しているならば,Windowsのサービスである「SQL Server Browserサービス」が,分かりにくく謎めいたものであることに気が付くだろう。

 SQL Server Browserは,デフォルトでは有効化されていない。SQL Server Browserの主な目的は,ネットワーク上にあるシステムにおけるSQL Serverデータベース・エンジンの名前付きインスタンスの場所を特定することだ。

 SQL Server Expressは,SQL Server 2005の完全なサブセットなので,1つのコンピュータ上で複数の名前付きデータベース・インスタンスをサポートする。SQL Server Browserが重要なのは,このためだ。各SQL Serverインスタンスは,それぞれのポート番号で待機し,クライアントからの個別の要求に応答する。SQL Serverシステムを開始すると,ポート番号が名前付きデータベース・インスタンスに動的に割り当てられる。割り当ては動的に行われるため,システムを再起動すると,これらのポート番号は変更されることがある。SQL Server Browserの役割は,レジストリに問い合わせ,すべてのアクティブなSQL Serverの名前付きインスタンスの場所を特定し,クライアント・アプリケーションに報告することだ。デフォルトでは,SQL Server BrowserはUDP 1434ポートを使ってネットワークにあるクライアントにアクティブなSQL Serverデータベース・インスタンスを報告する。

 では,SQL Server ExpressにSQL Server Browserは必要だろうか?厳密に言えば,答えはノーだ。

 シングル・ユーザーのデスクトップ・アプリケーションでは,ネットワーク・システムにデータベースの存在を通知する必要はないため,SQL Server Browserは必要ない。また,稼働しているデータベースのインスタンスが1つしかない場合,ネットワークで使用されているアプリケーションは標準のSQL ServerのTCPポート1433を使ってそのデータベースに接続している。言い換えれば,デフォルトのSQL Serverインスタンスを使っているなら,SQL Server Browserは不要である。

 SQL Server Browserが必要なのは,SQL Serverデータベースの名前付きインスタンスが複数ある場合だ。その場合,ネットワーク上のクライアントは接続文字列の一部としてインスタンス名を特定でき,SQL Server Browserはインスタンス名と合致するTCPポートを解決できる。技術的に言えば,クライアント・アプリケーションはアプリケーションの接続文字列にある名前付きインスタンスのポート番号を指定すれば,異なる名前のインスタンスに接続できる。しかし,サービスが次に再起動されたときにポート番号が変更されることもあるため,これは望ましい方法ではない。

 SQL Server Browserサービスを有効化する場合,スタート・メニューから[すべてのプログラム]-[Microsoft SQL Server 2005]-[構成ツール]-[SQL Serverセキュリティ構成]を順に選択する。[サービスと接続のセキュリティ構成]をクリックするとSQL Server 2005 Surface Area Configuration(サービスと接続のセキュリティ構成)ツールが起動するので,[コンポーネント別に表示]のタブから「SQL Server Browser」を選択する。サービスを開始するには[開始]をクリックし,[スタートアップの種類]のドロップダウン・ボックスを使って,スタートアップの種類を[自動]に変更する。

 SQL Server ExpressのBrowserについて詳しくは,SQL Server Books Online(BOL)のトピック「Using the SQL Server Browser」と「SQL Server Browser Service」を参照していただきたい。