共用方式為


將您的應用程式連線到 Azure SQL 受控執行個體

適用於:Azure SQL 受控執行個體

本文說明如何在 Azure 虛擬網路內部或之間的數個不同應用程式案例中,將應用程式連線到 Azure SQL 受控執行個體。

您在決定如何及何處裝載應用程式時,目前有多個選擇。 您可以選擇使用 Azure App Service 或某些 Azure 的虛擬網路整合式選項,在雲端裝載應用程式。 例如 Azure App Service 環境、Azure 虛擬機器和虛擬機器擴展集。 您也可以採用混合式 (「混合」) 雲端方法,將您的應用程式留在內部部署環境。 無論您做出任何選擇,您的應用程式都可以在 Azure 虛擬網路內部或虛擬網路之間的許多不同應用程式案例中連線到 Azure SQL 受控執行個體。

您也可以從虛擬網路外部啟用 SQL 受控執行個體的資料存取,例如,從 Power BI 和 Azure App Service 等多租用戶 Azure 服務,或從未透過 VPN 連線到虛擬網路的內部部署網路。 若要完成這些和類似的案例,請參閱在 Azure SQL 受控執行個體中設定公用端點

圖示顯示高可用性。

從相同的虛擬網路內部連線

將同一個虛擬網路內的應用程式當作 SQL 受控執行個體來連線是最簡單的案例。 虛擬網路內的虛擬機器即使位於不同的子網路,彼此也可以直接連線。 這表示,若要在 App Service 環境中,或在與 SQL 受控執行個體相同虛擬網路內部署的虛擬機器上連線應用程式,必須將連接字串設定為指向其 VNet 本機端點

從不同的虛擬網路內部連線

當應用程式位於與 SQL 受控執行個體不同的虛擬網路時,連線應用程式必須先存取部署 SQL 受控執行個體的虛擬網路,或 SQL 受控執行個體本身。 兩個虛擬網路不一定要在相同的訂用帳戶中。

有三個選項可連線到不同虛擬網路中的 SQL 受控執行個體:

在這三個選項中,私人端點是最安全且最具資源經濟效益的選項,因為它們:

  • 僅會從其虛擬網路公開 SQL 受控執行個體。
  • 僅允許單向連線。
  • 僅需要應用程式虛擬網路中的一個 IP 位址。

如果私人端點無法完全符合您案例的需求,請考慮改用虛擬網路對等互連。 對等互連使用 Azure 骨幹網路,因此跨虛擬網路邊界的通訊不會有明顯的延遲影響。 所有區域的網路之間都支援虛擬網路對等互連 (全域虛擬網路對等互連)。 不過,託管 在 2020 年 9 月 22 日之前建立的子網路中的執行個體 僅支援其區域內的對等互連。

從內部部署連線

您可以將內部部署應用程式連線至 SQL 受控執行個體的 VNet 本機端點。 若要從內部部署環境加以存取,您需要進行應用程式與 SQL 受控執行個體虛擬網路之間的站對站連線。 如果 SQL 受控執行個體的僅限資料存取權已足夠,您可以透過公用端點從虛擬網路外部連線到它 - 檢閱 在 Azure SQL 受控執行個體中設定公用端點以 深入瞭解。

將內部部署的應用程式連線至 Azure 虛擬網路的方法有兩個:

如果您可以建立從內部部署到 Azure 的連線,但無法建立與 SQL 受控執行個體的連線,請檢查從用戶端到 SQL 受控執行個體的網路路徑是否符合所選 連線類型的連線需求。

連接開發箱

您也可以將開發人員方塊連線至 SQL 受控執行個體。 若要透過虛擬網路從開發人員方塊進行存取,您必須先建立開發人員方塊與 SQL 受控執行個體虛擬網路之間的連線。 若要這麼做,請使用原生 Azure 憑證驗證設定虛擬網路的點對站連線。 如需詳細資訊,請參閱設定點對站連線以從內部部署電腦連線到 Azure SQL 受控執行個體

如需從虛擬網路外部存取 SQL 受控執行個體的資料,請參閱 在 Azure SQL 受控執行個體中設定公用端點

連線至輪輻網路

另一個常見的案例是 VPN 閘道安裝在不同的虛擬網路 (,可能是訂用帳戶) - 輪輻網路 中,而不是裝載 SQL 受控執行個體 (中樞網路) 的虛擬網路。 從輪輻網路連線到 SQL 受控執行個體是透過從 不同虛擬網路內部連線中列出的其中一個選項來設定:私人端點、Azure 虛擬網路對等互連或 VNet 對 VNet 閘道。

下列範例架構圖顯示虛擬網路對等互連:

顯示虛擬網路對等互連的圖表。

如果是對等互連中樞和輪輻網路,請確定 VPN 閘道會看到來自中樞網路的 IP 位址。 若要這麼做,請在 [對等互連設定] 下方進行下列變更:

  1. 在託管 VPN 閘道的虛擬網路 (輪輻網路) 中,前往 [對等互連]、移至 SQL 受控執行個體的對等互連虛擬網路連線,然後選取 [允許閘道傳輸]
  2. 在託管 SQL 受控執行個體的虛擬網路(中樞網路)中,前往 [對等連結],找到 VPN 閘道的對等虛擬網路連接,並選取 [使用遠端閘道]

連接 Azure App Service

您也可以在與虛擬網路整合時,連接由 Azure App Service 託管的應用程式。 若要這樣做,請從 不同的虛擬網路內選取 [連線] 中列出的其中一個機制。 如需從虛擬網路外部存取 SQL 受控執行個體的資料,請參閱 在 Azure SQL 受控執行個體中設定公用端點

在將 Azure App Service 連接到 SQL 受控執行個體時,一個特殊情況是將 Azure App Service 整合到對等連接的 SQL 受控執行個體虛擬網路中。 這種情況下需要設定下列組態:

  • SQL 受控執行個體虛擬 網路不得有 閘道
  • SQL 受控執行個體虛擬網路必須設定 Use remote gateways 選項
  • 必須為對等連接的虛擬網路設置 Allow gateway transit 選項

下圖說明此案例:

整合應用程式點對點連接的圖表。

注意

虛擬網路整合功能不會將應用程式與具有 ExpressRoute 閘道的虛擬網路整合。 即使 ExpressRoute 閘道設定為共存模式,虛擬網路整合也無法運作。 如果需要透過 ExpressRoute 連線存取資源,您可以使用在虛擬網路中執行的 App Service 環境。

若要針對透過虛擬網路的 Azure App Service 存取進行疑難排解,請參閱針對虛擬網路和應用程式進行疑難排解

針對連線問題進行疑難排解

若要針對連線問題進行疑難排解,請檢閱下列設定:

  • 如果您無法從相同虛擬網路內的 Azure 虛擬機器連線到 SQL 受控執行個體,但子網路不同,請檢查您是否在 VM 子網路上設定了可能封鎖存取的網路安全性群組 (NSG)。 此外,允許 SQL 埠 1433 上的輸出流量,因為需要透過 Azure 界限內的重新導向進行連線。 如需詳細資訊,請檢閱 Azure SQL 受控執行個體連線類型中的需求。

  • 針對與虛擬網路建立關聯的路由表,確定已停用閘道路由的傳播。

  • 如果使用點對站 VPN,請檢查 Azure 入口網站中的組態,以確認您是否看到輸入/輸出數值。 非零的數值表示 Azure 會將流量路由至內部部署,或從中輸出流量。

    螢幕擷取畫面顯示 Azure 入口網站中的輸入/輸出數值。

  • 確認用戶端電腦 (執行 VPN 用戶端的電腦) 具有您需要存取之所有虛擬網路的路由入口。 路由會儲存在 %AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    螢幕擷取畫面顯示 route.txt。

    如圖所示,每個相關的虛擬網路都有兩個入口,而在入口網站中設定的 VPN 端點會有第三個入口。

    除此之外,也可以透過下列命令來檢查路由。 下列輸出顯示各種子網路的路由:

    C:\ >route print -4
    ===========================================================================
    Interface List
    14...54 ee 75 67 6b 39 ......Intel(R) Ethernet Connection (3) I218-LM
    57...........................rndatavnet
    18...94 65 9c 7d e5 ce ......Intel(R) Dual Band Wireless-AC 7265
    1...........................Software Loopback Interface 1
    Adapter===========================================================================
    
    IPv4 Route Table
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
           0.0.0.0          0.0.0.0       10.83.72.1     10.83.74.112     35
          10.0.0.0    255.255.255.0         On-link       172.26.34.2     43
          10.4.0.0    255.255.255.0         On-link       172.26.34.2     43
    ===========================================================================
    Persistent Routes:
    None
    
  • 如果您使用虛擬網路對等互連,請確定您已遵循設定 [允許閘道傳輸] 和 [使用遠端閘道] 的指示。

  • 如果您正在使用虛擬網路對等互連來連線 Azure App Service 裝載的應用程式,且 SQL 受控執行個體虛擬網路具有公用 IP 位址範圍,請確認裝載的應用程式設定允許將輸出流量路由傳送至公用 IP 網路。 請遵循區域虛擬網路整合中的指示。

雖然較舊版本可能會運作,但下表列出了建議的工具和驅動程式最低版本,以連線到 SQL 受控執行個體:

驅動程式/工具 版本
.NET Framework 4.6.1 (或 .NET Core)
ODBC 驅動程式 v17
PHP 驅動程式 5.2.0
JDBC 驅動程式 6.4.0
Node.js 驅動程式 2.1.1
OLEDB 驅動程式 18.0.2.0
SSMS 18.0 或 更高版本
SMO 150 或更高

注意

舊版的 JDBC 4.0 和 4.1 驅動程式 (分別適用於 Java SE 6 和 Java SE 7) 在伺服器上顯示為支援 TDS 7.4 ,即使它們未完全實作 TDS 7.4。 這些驅動程式的 連線類型 設定為重新導向,因而無法連接 SQL 受控執行個體。 將驅動程式升級至 JDBC 4.2 或更新版本,或將執行個體的連線類型切換為 Proxy。