MS-SQL 名前付きインスタンスへの接続

Microsoft SQL Server(MS-SQL)には、名前付きインスタンスという機能があります。この機能を使用すると、同じホスト(またはクラスタ化されたホスト)で複数のデータベースを別々の設定で実行できます。各データベース インスタンスは専用のポートで実行されます。ただし、Windows で実行されている MS-SQL 対応クライアントを使用する場合は、ポート番号ではなく名前で接続できます。たとえば、ホスト名が dbserver で、インスタンスの名前が proddb の場合、ホスト名 dbserver\proddb を使用して接続します。

MS-SQL 名前付きインスタンスの接続方法

  1. クライアントは、デフォルトの MS-SQL ポート(1433)で名前が指定されたホストに接続します。
  2. MS-SQL は、名前付きインスタンスのポートで応答します。
  3. クライアントはそのポートに接続します。

この方法では、Looker は名前付きインスタンスのポート番号を見つけることができません。Looker がポートに接続すると、クエリを実行できると想定され、他のポートには接続しません。

MS-SQL 名前付きインスタンスを Looker に接続する方法

MS-SQL は起動時にランダムなポートを選択します。Looker が MS-SQL 名前付きインスタンスに接続するには、名前付きインスタンスが実行されているポートを見つける必要があります。

  • ポートを見つける方法については、SQL Server - SQL インスタンスがリッスンしている TCP ポート番号の検索をご覧ください。この記事は 2012 年のものですが、手順は MS-SQL のさまざまなバージョンで同様です。
  • ポートを見つけたら、Looker のデータベース接続構成の Host:Port フィールドにポート名を入力します。たとえば、ポートが 61499 で、ホスト名が dbserver の場合、Looker での接続は次のようになります。

      host: dbserver
      port: 61499
  • 注: インスタンス名で接続する場合とは異なり、データベース ホスト名は dbserver\proddb 形式にはなりません
  • サーバーが再起動されるたびに、MS-SQL が名前付きインスタンスに別のポートを選択する可能性があるので注意してください。この場合、MS-SQL でファイアウォール ルールを変更し、新しいポートを使用するように Looker を再構成する必要があります。ポートが変更されないようにするために、名前付きインスタンスに静的ポートを割り当てることができます。このプロセスの詳細については、SQL Server 名前付きインスタンスに静的ポートを割り当てる方法 - 一般的な落とし穴を回避するをご覧ください。