SQL Server Browser Service
- 03/14/2017
- 6 minutes to read
-
- M
- M
- M
- J
- C
-
+3
適用対象製品。 SQL Server (サポートされるすべてのバージョン) – Windows のみ Azure SQL Managed Instance
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 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 2000(8.x)では、SQL Serverの複数インスタンスのサポートが導入され、SQL Server Resolution Protocol(SSRP)が開発され、UDPポート1434で待機するようになりました。 このリスナーサービスは、インストールされているインスタンスの名前と、そのインスタンスが使用するポートまたは名前付きパイプをクライアントのリクエストに応答しました。 SSRP システムの制限を解決するために、SQL Server 2005 (9.x) では、SSRP の代わりとして SQL Server Browser サービスを導入しました。
How SQL Server Browser Works
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 はレジストリを読み取り、コンピュータ上のすべての SQL Server インスタンスを識別し、それらが使用するポートと名前付きパイプを記録します。 サーバーに2つ以上のネットワークカードがある場合、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 Book Online を参照してください。
SQL Server Browser の使用
SQL Server Browser サービスが実行されていなくても、正しいポート番号または名前付きパイプを提供すれば、SQL Server に接続することができます。 たとえば、SQL Server のデフォルトのインスタンスがポート 1433 で実行されていれば、TCP/IP で接続できます。
しかしながら、SQL Server Browser サービスが実行されていない場合、次の接続は機能しません:
-
すべてのパラメーター(TCP/IP ポートまたは名前付きパイプなど)を完全に指定せずに名前付きインスタンスに接続しようとするすべてのコンポーネント。
-
Any component that generates or passes serverinstance information that could later be used by other components to reconnect.
-
Connecting to a named instance without providing the port number or pipe.
-
Connecting to a named instance without providing the port number or pip.
-
TCP/IP ポート 1433 を使用していない場合、名前付きインスタンスまたはデフォルト インスタンスへの DAC。
-
The OLAP redirector service.
-
Enumating servers in SQL Server Management Studio, Enterprise Manager または Query Analyzer.NET。
クライアント/サーバー シナリオで SQL Server を使用している場合(たとえば、アプリケーションがネットワーク経由で SQL Server にアクセスしている場合)、SQL Server Browser サービスを停止または無効にすると、インスタンスごとに特定のポート番号を割り当て、クライアント アプリケーション コードが常にそのポート番号を使用するよう記述しなければならなくなります。 このアプローチには次のような問題があります。
-
適切なポートに接続するようにクライアント アプリケーションのコードを更新および保守する必要があります。
-
各インスタンスに選択したポートが、サーバー上の別のサービスまたはアプリケーションによって使用され、SQL Server のインスタンスが使用できなくなる可能性がある。
Clustering
SQL Server Browser はクラスター化リソースではなく、あるクラスタ ノードから他のクラスタ ノードへのフェールオーバーはサポートされていない。 そのため、クラスタの場合は、クラスタの各ノードに対して SQL Server Browser をインストールし、オンにする必要があります。 クラスターでは、SQL Server Browser は IP_ANY で待ち受けます。
注意
特定の IP で待ち受けることを有効にすると、SQL Server Browser は最初に遭遇した IP/ ポート ペアを返すので、ユーザーは各 IP で同じ TCP ポートを構成する必要があります。
インストール、アンインストール、およびコマンド ラインからの実行
SQL Server の最後のインスタンスが削除されると、SQL Server Browser サービスはアンインストールされます。
SQL Server Browser は、トラブルシューティングのために、-c スイッチを使用してコマンド プロンプトから起動することができます。 SQL Server Browser は、悪意のある攻撃にさらされるのを最小限に抑えるために、低特権ユーザーのセキュリティ コンテキストで実行する必要があります。 ログオンアカウントは、SQL Server Configuration Managerを使用して変更することができます。 SQL Server Browserの最小限のユーザー権限は、以下の通りです。
-
ネットワークからこのコンピューターへのアクセスを拒否する
-
ローカルにログオンしない
-
バッチジョブとしてログオンしない
-
Terminal Services を通じてログオンしない
-
1 ユーザーとしてログオンしない
-
1 ユーザーとしてログオンしない
-
1 ユーザーとしてログオンしない service
-
ネットワーク通信(ポートとパイプ)に関連する SQL Server レジストリ キーの読み取りと書き込み
Default Account
セットアップは、SQL Server Browser が設定中にサービスに選択されたアカウントを使用するように構成します。 その他の可能なアカウントは次のとおりです:
-
Any domainlocal account
-
The local service account
-
The local system account (not recommended as having unnecessary privileges)
Hiding SQL Server
Hidden インスタンスは共有メモリ接続だけをサポートする SQL Server インスタンスを指します。 SQL Server では、SQL Server Browser がこのサーバー インスタンスの情報で応答しないことを示すために HideInstance
フラグを設定します。
Using a Firewall
Firewall 内のサーバー上の SQL Server Browser サービスと通信するには、SQL Server が使用する TCP ポート(例:1433)に加えて UDP ポート 1434 を開放してください。 ファイアウォールでの作業については、「How to: 1355>
See Also
Network Protocols and Network Libraries
の「How to: Configure a Firewall for SQL Server Access」を参照してください。