SQL Server 「SQL Browserサービス」とは何か?

SQL Browser サービスについて解説しています。

SQL Serverがデフォルトインスタンスの場合は常にポート番号を1433で待ち受けているのでクライアントが接続要求する場合はシンプルですが、名前付きインスタンスへの接続は少し複雑になります。なぜなら、名前付きインスタンスがクライアントからの接続要求を待つために使用するポート番号は、一定しているとは限らないからです。名前付きインスタンスが使用するポート番号は動的に決定されます。インスタンス起動時に、コンピュータ上ですでに使用されているポート番号を確認して、未使用の番号を自身に割り当てます。通常の場合は一度使用したポート番号を、次の起動時にも使おうと試みます。しかし、そのポート番号がほかのアプリケーションによってすでに使用されている場合は、新たな空き番号を探して自らに割り当てます。

そのような動作が行なわれているため、クライアントが接続先のインスタンスを発見するのは容易ではありません。この場合に使用されるのが「SQL Browser サービス」です。名前付きインスタンスに接続を行なうクライアントは、まず最初に SQL Browser サービスに問い合わせを行ない、ポート番号などの情報を得ます。その情報を基に、本来の接続対象である名前付きインスタンスへ到達することができます。

図1:SQL Browserサービス

1,クライアントはSQL Browserにポート番号を問い合わせる

図1:SQL Browserサービス

2,クライアントはSQL Browserはクライアントへ名前付きインスタンスのポート番号を返す

図1:SQL Browserサービス

3,クライアントはSQL Browserから返されたポート番号を使用して名前付きインスタンスへ接続する

図1:SQL Browserサービス