SQL Server Browser サービス (データベース エンジンと SSAS)
適用対象 SQL Server
SQL ServerBrowser プログラムは Windows サービスとして実行されます。 SQL Server Browser では、Microsoft SQL Server の各種リソースに関する着信要求を受信し、このコンピューター上にインストールされている SQL Server インスタンスに関する情報を提供します。 SQL Server Browser は次の操作に役立ちます。
使用可能なサーバーの一覧の参照
適切なサーバー インスタンスへの接続
専用管理者接続 (DAC) のエンドポイントへの接続
データベース エンジン Browser サービス (sqlbrowser) は、 SSASと SQL Server の各インスタンスに対してインスタンス名とバージョン番号を提供します。 SQL Server Browser は SQL Serverと共にインストールされます。
SQL Server Browser は、セットアップ時に、または SQL Server 構成マネージャーを使用して構成できます。 既定では、 SQL Server Browser サービスは次の場合に自動的に開始されます。
インストールをアップグレードする場合
クラスターにインストールする場合
SQL Server Express のすべてのインスタンスを含む、データベース エンジンの名前付きインスタンスをインストールする場合
Analysis Servicesの名前付きインスタンスをインストールする場合
バックグラウンド
SQL Server 2000 (8.x) より前は、コンピューターにインストールできる SQL Server のインスタンスは 1 つだけでした。 SQL Server は、公式の Internet Assigned Numbers Authority (IANA) によって SQL Server に割り当てられたポート 1433 で着信要求を待ちます。 SQL Server の 1 つのインスタンスしかポートを使用できないので、 SQL Server 2000 (8.x) で SQL Serverの複数のインスタンスをサポートするようになったとき、 SQL Server Resolution Protocol (SSRP) が開発され、UDP ポート 1434 で受信待ちするようになりました。 このリスナー サービスは、インストールされているインスタンスの名前と、そのインスタンスが使用しているポートまたは名前付きパイプでクライアント要求に応答していました。 SSRP システムの制限を解消するため、 SQL Server 2005 (9.x) では SSRP の代わりに SQL Server Browser サービスを導入しています。
SQL Server Browser のしくみ
SQL Server のインスタンスを起動すると、SQL Server に対して TCP/IP プロトコルが有効な場合は、サーバーに TCP/IP ポートが割り当てられます。 名前付きパイプのプロトコルが有効な場合、 SQL Server は特定の名前付きパイプでリッスンします。 クライアント アプリケーションとのデータの交換には、このポート、つまり "パイプ" がそのインスタンスで使用されます。 インストール中、TCP ポート 1433 とパイプ \sql\query
が既定のインスタンスに割り当てられますが、これは後でサーバー管理者が SQL Server 構成マネージャーを使用して変更できます。 ポートまたはパイプを使用できるのは SQL Server の 1 つのインスタンスだけなので、 SQL Server Expressを含めて、名前付きインスタンスには別のポート番号とパイプ名が割り当てられます。 既定では、名前付きインスタンスと SQL Server Express が有効な場合、両方とも動的ポートを使用するように設定されています。つまり、SQL Server の起動時に使用可能なポートが割り当てられます。 必要であれば、SQL Server のインスタンスに特定のポートを割り当てることができます。 クライアントは接続時に特定のポートを指定できますが、ポートが動的に割り当てられる場合は、SQL Server が再起動されるたびにポート番号が変わる可能性があるので、クライアントは正しいポート番号を特定できません。
起動時に SQL Server Browser が開始されて UDP ポート 1434 が要求されます。 SQL Server Browser はレジストリを読み取って、コンピューター上の SQL Server のすべてのインスタンスを識別し、使用されているポートと名前付きパイプを確認します。 サーバーに複数のネットワーク カードがある場合は、SQL Server Browser は、SQL Server に対して最初に検出した有効なポートを返します。 SQL Server Browser では ipv6 と ipv4 をサポートしています。
SQL Server クライアントが SQL Server リソースを要求すると、ポート 1434 を使用しているサーバーにクライアント ネットワーク ライブラリが UDP メッセージを送信します。 SQL Server Browser は、要求されたインスタンスの TCP/IP ポートまたは名前付きパイプで応答します。 その後、クライアント アプリケーションのネットワーク ライブラリが、目的のインスタンスのポートまたは名前付きパイプを使用しているサーバーに要求を送って接続を完了します。 SQL Server Browser サービスでは、既定のインスタンスのポートは解決しません。
SQL Server Browser サービスの開始と停止の詳細については、「 データベース エンジン、SQL Server エージェント、SQL Server Browser サービスの開始、停止、一時停止、再開、および再起動」を参照してください。
SQL Server Browser の使用
SQL Server Browser サービスが実行されていない場合でも、正しいポート番号か名前付きパイプを指定すれば SQL Server に接続できます。 たとえば、 SQL Server の既定のインスタンスがポート 1433 で実行されている場合は、TCP/IP を使用して接続できます。
ただし、 SQL Server Browser サービスが実行されていない場合は、次の接続が機能しません。
パラメーター (たとえば TCP/IP ポートや名前付きパイプ) を完全に指定せずに名前付きインスタンスに接続しようとするコンポーネント。
後で他のコンポーネントが再接続に使用する可能性のあるサーバーまたはインスタンス情報を生成するかまたは渡すコンポーネント。
ポート番号やパイプを指定せずに名前付きインスタンスに接続する。
TCP/IP ポート 1433 を使用していない場合は、名前付きインスタンスや既定のインスタンスへの DAC。
OLAP リダイレクター サービス。
SQL Server Management Studio、Enterprise Manager、またはクエリ アナライザーでのサーバーの列挙。
SQL Server をクライアント/サーバーのシナリオで使用している場合 (たとえば、アプリケーションがネットワーク経由で SQL Server にアクセスしている場合)、 SQL Server Browser サービスを停止または無効化するには、各インスタンスに特定のポート番号を割り当て、常にそのポート番号が使用されるようにクライアント アプリケーションのコードを記述する必要があります。 この方法には次の問題があります。
クライアント アプリケーションが必ず適切なポートに接続するように、コードを更新および管理しておく必要があります。
各インスタンスに対して選択したポートがサーバー上の別のサービスまたはアプリケーションによって使用されている場合があります。この場合、 SQL Server のインスタンスは使用できません。
クラスタリング
SQL Server Browser はクラスター化されたリソースではなく、クラスター ノード間のフェールオーバーはサポートしません。 そのため、クラスターの場合は、クラスターのノードごとに SQL Server Browser をインストールして有効にする必要があります。 クラスターでは、SQL Server Browser は IP_ANY で受信待ちします。
Note
SQL Server Browser では最初に検出された IP とポートのペアが返されるため、IP_ANY で受信待ちのときに特定の IP での受信待ちを有効にする場合は、各 IP に同じ TCP ポートを構成する必要があります。
コマンド ラインからのインストール、アンインストール、実行
既定では、SQL Server Browser プログラムは C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe にインストールされます。
SQL Server の最後のインスタンスを削除すると、 SQL Server Browser サービスがアンインストールされます。
SQL Server Browser は、トラブルシューティングの目的で、コマンド プロンプトから -c スイッチを使用して起動できます。
<drive>\<path>\sqlbrowser.exe -c
セキュリティ
アカウントの権限
SQL Server Browser は UDP ポートで受信待ちし、 SQL Server Resolution Protocol (SSRP) を使用して、認証されていない要求を受け入れます。 SQL Server Browser を権限が制限されているユーザーのセキュリティ コンテキストで実行することにより、悪意のある攻撃にさらされる危険性を最小限に抑える必要があります。 ログオン アカウントは SQL Server 構成マネージャーを使用して変更できます。 SQL Server Browser の最小限のユーザー権限は次のとおりです。
ネットワークからこのコンピューターへのアクセスを拒否
ローカルでのログオンを拒否
バッチ ジョブとしてのログオンを拒否
ターミナル サービス経由のログオンを拒否
サービスとしてログオン
ネットワーク通信に関連する SQL Server レジストリ キーの読み取りおよび書き込み (ポートおよびパイプ)
既定のアカウント
セットアップ プログラムは、セットアップ中にサービス用に選択したアカウントを SQL Server Browser が使用するように構成します。 他に可能なアカウントは次のとおりです。
すべての domain\local アカウント
ローカル サービス アカウント
ローカル システム アカウント (不要な権限があるので推奨しません)
SQL Server の非表示
非表示インスタンスは、共有メモリ接続のみをサポートする SQL Server のインスタンスです。 SQL Serverの場合は、 HideInstance
Browser がこのサーバー インスタンスに関する情報を返さないことを示すために SQL Server フラグを設定します。
ファイアウォールの使用
ファイアウォールの背後にある SQL Server Browser サービスと通信するには、 SQL Server で使用される TCP ポート (1433 など) のほかに UDP ポート 1434 も開きます。 ファイアウォールの使用方法については、次をご覧ください。「SQL Server のアクセス用にファイアウォールを構成する」(SQL Server オンライン ブック)