Azure 上にある SQL Server 仮想マシンへの接続

適用対象:Azure VM 上の SQL Server

概要

この記事では、Azure 仮想マシン (VM) 上の SQL に接続する方法について説明します。 その中で一般的な接続シナリオをいくつか取り上げています。 ポータルの外部で接続のトラブルシューティングや構成を行う必要がある場合は、このトピックの最後の手動構成に関するセクションをご覧ください。

プロビジョニングと接続の両方に関する完全なチュートリアルについては、Azure 上での SQL Server 仮想マシンのプロビジョニングに関するページをご覧ください。

接続のシナリオ

クライアントから仮想マシン上で実行されている SQL Server VM に接続する方法は、クライアントの場所とネットワークの構成によって異なります。

Azure Portal で SQL Server VM をプロビジョニングする場合、SQL 接続の種類を指定するオプションが用意されています。

Screenshot showing the public SQL connectivity option during provisioning.

接続のオプションは次のとおりです。

オプション 説明
パブリック インターネット経由で SQL Server に接続します。
プライベート 同一仮想ネットワーク内の SQL Server に接続します。
ローカル 同一仮想マシン内の SQL Server にローカルに接続します。

次のセクションでは、パブリックおよびプライベート オプションの詳細について説明します。

インターネット経由で SQL Server に接続する

インターネットからご使用の SQL Server データベース エンジンに接続する場合は、プロビジョニング時にポータル内で [SQL 接続] の種類に [パブリック] を選択します。 ポータルは自動的に次の手順を実行します。

  • SQL Server の TCP/IP プロトコルを確立します。
  • SQL Server の TCP ポート (既定は 1433) を開くファイアウォール規則を構成します。
  • パブリック アクセスに必要な SQL Server 認証を有効にします。
  • SQL Server ポート上のすべての TCP トラフィックに VM のネットワーク セキュリティ グループを構成します。

重要

SQL Server Developer および Express エディション用の仮想マシン イメージでは、TCP/IP プロトコルは自動では有効になりません。 Developer または Express エディションでは、VM の作成後に、SQL Server 構成マネージャーを使用して TCP/IP プロトコルを手動で有効にする 必要があります。

インターネットにアクセスできるクライアントは、仮想マシンのパブリック IP アドレスまたはその IP アドレスに割り当てられている任意の DNS ラベルを指定することによって、SQL Server インスタンスに接続できます。 SQL Server のポートが 1433 である場合は、接続文字列でそれを指定する必要はありません。 次の接続文字列は、SQL 認証を使用して (パブリック IP アドレスも使用できます)、sqlvmlabel.eastus.cloudapp.azure.com の DNS ラベルで SQL VM に接続します。

Server=sqlvmlabel.eastus.cloudapp.azure.com;Integrated Security=false;User ID=<login_name>;Password=<your_password>

この接続文字列でクライアントからインターネット経由での接続は有効になりますが、すべてのユーザーがご使用の SQL Server インスタンスに接続できるわけではありません。 外部のクライアントは、正しいユーザー名とパスワードを使用する必要があります。 ただし、セキュリティを強化するために、既知のポート 1433 を使用しないこともできます。 たとえば、ポート 1500 でリッスンするように SQL Server を構成し、適切なファイアウォール規則とネットワーク セキュリティ グループ規則を設定すると、サーバー名にポート番号を追加して接続できます。 次の例では、カスタム ポート番号 1500 をサーバー名に追加することで、以前のポート番号を変更しています。

Server=sqlvmlabel.eastus.cloudapp.azure.com,1500;Integrated Security=false;User ID=<login_name>;Password=<your_password>"

Note

インターネット経由で VM 上の SQL Server に対してクエリを実行した場合、Azure データセンターから送信されたすべてのデータには、通常の送信データ転送の価格が適用されます。

仮想ネットワーク内で SQL Server に接続する方法

ポータルで [SQL 接続] の種類に [プライベート] を選択した場合、Azure では [パブリック] とほぼ同一の設定を構成します。 1 つの相違点は、SQL Server ポート (既定は 1433) に外部トラフィックを許可するネットワーク セキュリティ グループの規則がないことです。

重要

SQL Server Developer および Express エディション用の仮想マシン イメージでは、TCP/IP プロトコルは自動では有効になりません。 Developer または Express エディションでは、VM の作成後に、SQL Server 構成マネージャーを使用して TCP/IP プロトコルを手動で有効にする 必要があります。

プライベート接続は、多くの場合、いくつかのシナリオを可能にする仮想ネットワークと共に使用されます。 同じ仮想ネットワーク内の VM が異なるリソース グループに存在する場合でも、それらの VM に接続できます。 また サイト間 VPNを使うと、VM をオンプレミスのネットワークおよびマシンと接続するハイブリッド アーキテクチャを作成できます。

仮想ネットワークを使うと、Azure VM をドメインに参加させることもできます。 これは、SQL Server に Windows 認証を使用する唯一の方法です。 その他の接続シナリオでは、ユーザー名とパスワードによる SQL 認証が必要です。

仮想ネットワークで DNS を構成してあると、接続文字列で SQL Server VM コンピューターの名前を指定することによって、SQL Server インスタンスに接続できます。 次の例でも、Windows 認証も構成されていることと、ユーザーが SQL Server インスタンスへのアクセスを許可されていることを前提としています。

Server=mysqlvm;Integrated Security=true

Developer および Express エディションの TCP/IP を有効にする

SQL Server 接続の設定を変更するとき、Azure は SQL Server Developer および Express エディション の TCP/IP プロトコルを自動的に有効にしません。 TCP/IP を手動で有効にして IP アドレスでリモート接続できるようにするための手順を次に示します。

最初に、リモート デスクトップを使用して、SQL Server 仮想マシンに接続します。

  1. Azure 仮想マシンが作成されて実行されたら、[仮想マシン] を選んで、新しい VM を選びます。

  2. [接続] を選び、ドロップダウンから [RDP] を選んで RDP ファイルをダウンロードします。

    Connect to VM in portal

  3. ブラウザーによって VM のためにダウンロードされた RDP ファイルを開きます。

  4. リモート デスクトップ接続で、このリモート接続の発行元が特定できないことが通知されます。 [接続] をクリックして続行します。

  5. [Windows セキュリティ] ダイアログで、[別のアカウントを使う] をクリックします。 これを表示するには、[その他] をクリックする必要があります。 VM の作成時に構成したユーザー名とパスワードを指定します。 ユーザー名の前にバックスラッシュを追加する必要があります。

    Remote desktop authentication

  6. [OK] をクリックして接続します。

次に、SQL Server 構成マネージャーを使用して、TCP/IP プロトコルを有効にします。

  1. リモート デスクトップを使用して仮想マシンに接続している状態で、構成マネージャーを検索します。

    Open SSCM

  2. SQL Server 構成マネージャーのコンソール ペインで、 [SQL Server ネットワークの構成] を展開します。

  3. コンソール ペインで、 [MSSQLSERVER のプロトコル] (既定のインスタンス名) をクリックします。詳細ウィンドウで、 [TCP] を右クリックし、 [有効] をクリックします (既に有効になっていない場合)。

    Enable TCP

  4. コンソール ペインで、 [再起動] をクリックします。 詳細ペインで、[SQL Server (インスタンス名)] (既定のインスタンスは [SQL Server (MSSQLSERVER)]) を右クリックし、[再起動] をクリックして、SQL Server のインスタンスを停止および再起動します。

    Restart Database Engine

  5. SQL Server 構成マネージャーを閉じます。

SQL Server データベース エンジン用のプロトコルを有効にする方法の詳細については、「 サーバー ネットワーク プロトコルの有効化または無効化」を参照してください。

SSMS との接続

次の手順では、ご使用の Azure VM の省略可能な DNS ラベルを作成し、SQL Server Management Studio (SSMS) と接続する方法を示します。

パブリック IP アドレスの DNS ラベルの構成

インターネットから SQL Server データベース エンジンに接続する場合は、パブリック IP アドレスの DNS ラベルを作成することを検討してください。 IP アドレスで接続することはできますが、DNS ラベルを作成すると、識別が容易で、基になるパブリック IP アドレスを抽象化した A レコードが作成されます。

Note

同じ Virtual Network 内の SQL Server インスタンスのみに接続する場合、またはローカルでのみ接続する予定の場合は、DNS ラベルは必要ありません。

DNS ラベルを作成するには、最初にポータルで [Virtual Machines] を選びます。 SQL Server VM を選択し、そのプロパティを表示します。

  1. 仮想マシンの概要で、目的のパブリック IP アドレスを選択します。

    public ip address

  2. パブリック IP アドレスのプロパティで、 [構成]を展開します。

  3. DNS ラベル名を入力します。 この名前は、IP アドレスを直接使用するのではなく名前で SQL Server VM に接続するために使用できる A レコードです。

  4. [保存] ボタンを選択します。

    dns label

別のコンピューターからデータベース エンジンに接続する

  1. インターネットに接続されたコンピューターで、SQL Server Management Studio (SSMS) を開きます。 SQL Server Management Studio を保有していない場合は、ここからダウンロードできます。

  2. [サーバーへの接続] または [データベース エンジンへの接続] ダイアログ ボックスで、 [サーバー名] の値を編集します。 (前のタスクで確認した) 仮想マシンの IP アドレスまたは完全 DNS 名を入力します。 また、コンマを追加し、SQL Server の TCP ポートを指定することもできます。 たとえば、「 tutorial-sqlvm1.westus2.cloudapp.azure.com,1433 」のように入力します。

  3. [認証] ボックスで、 [SQL Server 認証] を選択します。

  4. [ログイン] ボックスに、有効な SQL ログインの名前を入力します。

  5. [パスワード] ボックスに、ログインのパスワードを入力します。

  6. [接続] を選択します。

    ssms connect

手動構成とトラブルシューティング

ポータルには接続を自動的に構成するオプションが用意されていますが、接続を手動で構成する方法も知っておくと便利です。 要件を把握しておくと、トラブルシューティングにも役立ちます。

Azure VM 上の SQL Server に接続するための要件を次の表に示します。

要件 説明
SQL Server 認証モードを有効にする 仮想ネットワーク上で Active Directory を構成済みである場合を除き、VM にリモート接続するには SQL Server 認証が必要になります。
SQL ログインを作成する SQL 認証を使用する場合、実際のターゲット データベースへのアクセス許可も持つ、ユーザー名とパスワードによる SQL ログインが必要です。
TCP/IP プロトコルを有効にする SQL Server では、TCP 経由の接続を許可する必要があります。
SQL Server ポートのファイアウォール規則を有効にする VM 上のファイアウォールでは、SQL Server ポート (既定では 1433) の受信トラフィックを許可する必要があります。
TCP 1433 のネットワーク セキュリティ グループの規則を作成する インターネット経由で接続する場合は、VM が SQL Server ポート (既定では 1433) でトラフィックを受信できるようにする必要があります。 ローカル接続と仮想ネットワーク専用の接続では不要です。 これは、Azure Portal で必要な唯一の手順です。

ヒント

ポータル内で接続を構成すると、上記の表の手順が自動的に実行されます。 これらの手順を使用するのは、ご自分の構成を確認する場合または SQL Server の接続を手動で設定する場合だけです。

Microsoft Entra ID を使用して Azure VM の SQL Server に接続する

Azure portal を使って Azure Virtual Machines 上の SQL Server に対して Microsoft Entra ID (旧 Azure Active Directory) 認証を有効にします。 Microsoft Entra 認証を使用する SQL Server は、SQL Server 2022 (16.x) 以降のバージョンでのみサポートされています。

次のステップ

これらの接続の手順とプロビジョニングの手順を確認するには、Azure 上での SQL Server 仮想マシンのプロビジョニングに関するページを参照してください。

Azure VM 上での SQL Server の実行に関するその他のトピックについては、Azure 仮想マシン上の SQL Server に関するページを参照してください。