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