連線到 Azure 上的 SQL Server 虛擬機器

適用於:Azure VM 上的 SQL Server

概觀

本文說明了如何連線到 Azure 虛擬機器 (VM) 上的 SQL。 它涵蓋部分一般連線案例。 如果您需要疑難排解或設定入口網站以外的連線,請參閱本主題結尾的手動設定

如需有關佈建和連線能力的完整逐步解說,請參閱在 Azure 上佈建 SQL Server 虛擬機器

連接案例

用戶端連線到 SQL Server VM 的方式取決於用戶端的位置與網路組態。

如果您是在 Azure 入口網站中佈建 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 驗證。
  • 將 VM 上的網路安全性群組設定為 SQL Server 連接埠上的所有 TCP 流量。

重要

SQL Server Developer 和 Express 版本的虛擬機器映像不會自動啟用 TCP/IP 通訊協定。 在 Developer 和 Express 版本中,您必須在建立 VM 之後,使用「SQL Server 組態管理員」來手動啟用 TCP/IP 通訊協定

任何能夠存取網際網路的用戶端都能藉由指定虛擬機器的公用 IP 位址或指派給該 IP 位址的任何 DNS 標籤,連線到 SQL Server 執行個體。 如果 SQL Server 連接埠是 1433,則不需要在連接字串中指定它。 下列連接字串會使用 SQL 驗證 (您也可以使用公用 IP 位址) 連線到具有 DNS 標籤的 SQL VMsqlvmlabel.eastus.cloudapp.azure.com

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

雖然此字串可讓用戶端透過網際網路連線,但這不表示任何人都可以連接您的 SQL Server 執行個體。 外部用戶端必須使用正確的使用者名稱和密碼。 不過,為了增加安全性,您可以避免使用已知的連接埠 1433。 舉例來說,如果您要將 SQL Server 設定為在連接埠 1500 進行接聽,並建立適當的防火牆和網路安全性群組規則,您就可以在伺服器名稱附加連接埠號碼來進行連線。 下列範例會將自訂連接埠號碼 1500 新增至伺服器名稱,來改變上一個:

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

注意

當您透過網際網路查詢 VM 上的 SQL Server 時,所有從 Azure 資料中心傳出的資料都會以一般輸出資料傳輸價格計費。

連線到相同虛擬網路內的 SQL Server

當您在入口網站中針對 [SQL 連線能力]類型選擇 [私用] 時,Azure 會將大部分設定設定為與公用的相同。 其中一項差異是沒有任何網路安全性群組規則可允許 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. 按一下 [確定] 進行連線。

接下來,使用 SQL Server 組態管理員來啟用 TCP/IP 通訊協定。

  1. 透過遠端桌面連線到虛擬機器時,請搜尋 [組態管理員]

    Open SSCM

  2. 在 SQL Server 組態管理員的主控台窗格中,展開 [SQL Server 網路組態]。

  3. 在 [主控台] 窗格中,按一下 [MSSQLSERVER 的通訊協定] (預設執行個體名稱) 在 [詳細資料] 窗格中,以滑鼠右鍵按一下 [TCP],且若其尚未啟用,請按一下 [啟用]。

    Enable TCP

  4. 在主控台窗格中,按一下 [SQL Server 服務]。 在詳細資料窗格中,以滑鼠右鍵按一下 [SQL Server (執行個體名稱)] \(預設執行個體是 SQL Server (MSSQLSERVER)),然後按一下 [重新啟動] 以停止及重新啟動 SQL Server 執行個體。

    Restart Database Engine

  5. 關閉 SQL Server 組態管理員。

如需啟用 SQL Server Database Engine 之通訊協定的詳細資訊,請參閱 啟用或停用伺服器網路通訊協定

使用 SSMS 連線

下列步驟示範如何建立 Azure VM 的選擇性 DNS 標籤,然後與 SQL Server Management Studio (SSMS) 連線。

設定公用 IP 位址的 DNS 標籤

若要從網際網路連線到 SQL Server Database Engine,請考慮建立公用 IP 位址的 DNS 標籤。 您可以經由 IP 位址連線,但 DNS 標籤可建立較容易識別的 A 記錄並擷取基礎公用 IP 位址。

注意

如果您計畫只連線到同一個虛擬網路中或只連線到本機的 SQL Server 執行個體,則不需要 DNS 標籤。

若要建立 DNS 標籤,請先在入口網站選取 [虛擬機器] 。 選取 SQL Server VM 以顯示其屬性。

  1. 在虛擬機器概觀中,選取您的 [公用 IP 位址]

    public ip address

  2. 在公用 IP 位址屬性中,展開 [組態]

  3. 輸入 DNS 標籤名稱。 此名稱是「A 紀錄」,可用來透過名稱 (而非直接透過 IP 位址) 連線到 SQL Server VM。

  4. 選取 [儲存] 按鈕。

    dns label

從另一部電腦連接 Database Engine

  1. 在已連線網際網路的電腦上開啟 SQL Server Management Studio (SSMS)。 如果您沒有 SQL Server Management Studio,您可以在這裡下載。

  2. 在 [連接到伺服器] 或 [連接到 Database Engine] 對話方塊中,編輯 [伺服器名稱] 值。 輸入虛擬機器的 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 入口網站所需的唯一步驟。

提示

在入口網站中設定連線時,系統會為您完成上表中的步驟。 僅使用這些步驟確認您的設定,或手動設定 SQL Server 的連線。

使用 Microsoft Entra ID 連線至 Azure VM 上的 SQL Server

透過 Azure 入口網站在 Azure 虛擬機器上為您的 SQL Server 啟用 Microsoft Entra ID 驗證 (先前稱為 Azure Active Directory)。 僅 SQL Server 2022 (16.x) 和更新版本支援具有 Microsoft Entra 驗證的 SQL Server。

下一步

若要查看佈建指示以及連線步驟,請參閱在 Azure 上佈建 SQL Server 虛擬機器

如需在 Azure VM 上執行 SQL Server 的其他相關主題,請參閱 Azure 虛擬機器上的 SQL Server