適用対象:SQL Server - Windows のみ
SQL Server ブラウザー (sqlbrowser
) は、クライアント コンピューターが Windows を実行しているサーバー上で SQL Server のインスタンスを見つけるのに役立つサービスとして実行されます。 SQL Server Browser は SQL Server と一緒にインストールされます。 SQL Server Browser サービスを構成する必要はありませんが、一部の接続シナリオで実行する必要があります。
SQL Server ブラウザーは、次の場合に役立ちます。
使用可能なサーバーの一覧の参照。 データベース エンジンと SQL Server Analysis Services (SSAS) の各インスタンスに対して、SQL Server Browser サービスによってインスタンス名とバージョン番号が提供されます。
適切なサーバー インスタンスへの接続。
専用管理者接続 (DAC) のエンドポイントへの接続。
SQL Server Browser サービスを構成する
SQL Server Browser は、セットアップ時に、または SQL Server 構成マネージャーを使用して構成できます。 既定では、SQL Server Browser サービスは次の場合に自動的に開始されます。
- インストールをアップグレードする場合
- クラスターにインストールする場合
- SQL Server Express のすべてのインスタンスを含む、データベース エンジンの名前付きインスタンスをインストールする場合
- SSAS の名前付きインスタンスをインストールする場合
SQL Server Browser のしくみ
次のセクションでは、SQL Server Browser サービスのしくみについて説明します。
TCP/IP ポートまたは名前付きパイプの割り当て
SQL Server のインスタンスが起動し、SQL Server に対して TCP/IP プロトコルが有効になると、そのインスタンスには TCP/IP ポートが割り当てられます。 名前付きパイプのプロトコルが有効な場合、SQL Server は特定の名前付きパイプでリッスンします。 クライアント アプリケーションとのデータの交換には、このポート、つまり名前付きパイプがその固有のインスタンスで使用されます。 TCP/IP ポート 1433
とパイプ \sql\query
は、インストール時に既定のインスタンスに割り当てられます。 サーバー管理者は、SQL Server 構成マネージャーを使用してポートまたは名前付きパイプを変更できます。
名前付きインスタンスと動的ポート
ポートまたはパイプを使用できる SQL Server のインスタンスは 1 つだけであるため、SQL Server Express エディションを含む名前付きインスタンスには異なるポート番号とパイプ名が割り当てられます。 有効にすると、既定では、名前付きインスタンスと SQL Server Express は動的ポートを使用するように構成されます。 つまり、SQL Server の起動時に使用可能なポートが割り当てられます。
必要であれば、SQL Server のインスタンスに特定のポートを割り当てることができます。 SQL Server 接続時に、クライアントは特定のポートを指定できます。 ただし、ポートが動的に割り当てられている場合、SQL Server インスタンスが再起動されるたびにポート番号が変更される可能性があるため、正しいポート番号はクライアントには不明です。
SQL Server のスタートアップ プロセスとポート検出
起動時に、SQL Server ブラウザーが起動し、ユーザー データグラム プロトコル (UDP) ポート 1434
を要求します。 SQL Server Browser はレジストリを読み取って、コンピューター上の SQL Server のすべてのインスタンスを識別し、使用されているポートと名前付きパイプを確認します。 サーバーに複数のネットワーク カードがある場合は、SQL Server Browser は、SQL Server に対して最初に検出した有効なポートを返します。 SQL Server Browser では、IPv4 と IPv6 がサポートされています。
SQL Server クライアントが SQL Server リソースを要求すると、クライアント ネットワーク ライブラリはポート 1434
を使用して UDP メッセージをサーバーに送信します。 SQL Server Browser は、要求されたインスタンスの TCP/IP ポートまたは名前付きパイプで応答します。 その後、クライアント アプリケーションのネットワーク ライブラリが、目的のインスタンスのポートまたは名前付きパイプを使用しているサーバーに要求を送って接続を完了します。
SQL Server Browser サービスの開始と停止の詳細については、「SQL Server サービスの 開始、停止、一時停止、再開、再起動」を参照してください。
SQL Server Browser を使用する
SQL Server Browser サービスが実行されていない場合でも、正しいポート番号か名前付きパイプを指定すれば、SQL Server に接続できます。 たとえば、ポート 1433
で実行されている場合は、TCP/IP を使用して SQL Server の既定のインスタンスに接続できます。
ただし、SQL Server Browser サービスが実行されていない場合は、次の接続は機能しません。
パラメーター (たとえば TCP/IP ポートや名前付きパイプ) を完全に指定せずに名前付きインスタンスに接続しようとするコンポーネント。
他のコンポーネントが後で再接続に使用できる
<server>\<instance>
情報を生成または渡すコンポーネント。ポート番号やパイプを指定せずに名前付きインスタンスに接続する。
TCP/IP ポート
1433
を使用していない場合は、名前付きインスタンスまたは既定のインスタンスへのデータベース管理者の診断接続。オンライン分析処理 (OLAP) リダイレクター サービス。
SQL Server Management Studio でのサーバーの列挙。
クライアント サーバーのシナリオで SQL Server を使用しているとします (アプリケーションがネットワーク経由で SQL Server にアクセスしている場合など)。 SQL Server Browser サービスを停止または無効にする場合は、各インスタンスに特定のポート番号を割り当て、そのポート番号を使用するようにクライアント アプリケーション コードを構成する必要があります。 この方法には次の問題があります。
クライアント アプリケーションが必ず適切なポートに接続するように、コードを更新および管理しておく必要があります。
各インスタンスに対して選択したポートは、サーバー上の別のサービスまたはアプリケーションによって使用され、SQL Server のインスタンスが使用できなくなる可能性があります。
クラスターと SQL Server Browser
SQL Server Browser はクラスター化されたリソースではなく、クラスター ノード間のフェールオーバーはサポートしません。 そのため、クラスターの場合は、クラスター ノードごとに SQL Server Browser をインストールしてオンにする必要があります。 クラスターでは、SQL Server Browser は IP_ANY
で受信待ちします。
注
SQL Server ブラウザーが IP_ANY
でリッスンし、特定の IP アドレスでのリッスンを有効にする場合は、各 IP アドレスで同じ TCP/IP ポートを構成する必要があります。これは、SQL Server Browser が検出した最初の IP アドレスとポート ペアを返すからです。
コマンド ラインからインストール、アンインストール、実行する
既定では、SQL Server Browser プログラムは <drive>:\Program Files (x86)\Microsoft SQL Server\<nn>\Shared\sqlbrowser.exe
にインストールされます。
SQL Server の最後のインスタンスを削除すると、SQL Server Browser サービスがアンインストールされます。
SQL Server Browser は、 -c
スイッチを使用して、トラブルシューティングのためにコマンド プロンプトから起動できます。
<drive>\<path>\sqlbrowser.exe -c
セキュリティ
SQL Server Browser サービスは、SQL Server インスタンスとのネットワーク通信を容易にする上で非常に重要です。
SQL Server Browser サービスのセキュリティ対策には次のようなものがあります。
トラフィックを許可するようにファイアウォールを構成する。
信頼済み IP アドレスへのアクセスを制限する。
脆弱性のパッチのために更新を定期的に適用する。
さらに、許可されていないアクセスを防ぎ、SQL Server 環境の整合性を維持するために、強力な認証と承認ポリシーを実装する必要があります。
アカウントの権限
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 の場合は、SQL Server Browser がこのサーバー インスタンスに関する情報を返さないことを示すために HideInstance
フラグを設定します。
ファイアウォールを使用する
ファイアウォールの背後にあるサーバー上の SQL Server Browser サービスと通信するには、UDP ポート 1434
と SQL Server で使用される TCP/IP ポート ( 1433
など) を開きます。 ファイアウォールの操作については、「 SQL Server アクセスを許可するように Windows ファイアウォールを構成する」を参照してください。