Connettere l'applicazione a un'istanza gestita di SQL di Azure

Si applica a: Istanza gestita di SQL di Azure SQL

Questo articolo descrive come connettere un'applicazione a Istanza gestita di SQL di Azure in diversi scenari di applicazione all’interno o tra reti virtuali di Azure.

Ora sono disponibili diverse possibilità quando si decide come e dove ospitare un'applicazione. È possibile scegliere di ospitare un'applicazione nel cloud tramite il servizio app di Azure o alcune delle opzioni integrate nella rete virtuale di Azure come l'ambiente del servizio app di Azure, le macchine virtuali di Azure e il set di scalabilità di macchine virtuali. È anche possibile scegliere un approccio cloud ibrido (“misto”) e mantenere le applicazioni in locale. Indipendentemente dalla scelta effettuata, l'applicazione può connettersi a Istanza gestita di SQL di Azure in diversi scenari di applicazioni all'interno o tra reti virtuali di Azure.

È anche possibile abilitare l'accesso ai dati all'istanza gestita dall'esterno di una rete virtuale, ad esempio da servizi di Azure multi-tenant come Power BI e servizio app Azure o da una rete locale non connessa alle reti virtuali tramite VPN. Per eseguire questi scenari e scenari simili, vedere Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure.

Diagramma che illustra la disponibilità elevata.

Connettersi dall'interno della stessa rete virtuale

La connessione di un'applicazione nella stessa rete virtuale di Istanza gestita di SQL è lo scenario più semplice. Le macchine virtuali all'interno della rete virtuale possono connettersi tra loro direttamente anche se si trovano in subnet diverse. Ciò significa che per connettere un'applicazione all'interno di ambiente del servizio app o una macchina virtuale distribuita nella stessa rete virtuale di Istanza gestita di SQL consiste nel configurare la stringa di connessione come destinazione dell'endpoint locale della rete virtuale.

Connettersi dall’interno di una rete virtuale diversa

Connessione un'applicazione quando si trova in una rete virtuale diversa da quella di Istanza gestita di SQL richiede che l'applicazione possa accedere prima alla rete virtuale in cui Istanza gestita di SQL viene distribuita o a Istanza gestita di SQL stessa. Le due reti virtuali non devono trovarsi nella stessa sottoscrizione.

Sono disponibili tre opzioni per connettersi a un’Istanza gestita di SQL in una rete virtuale diversa:

Tra i tre, gli endpoint privati sono l'opzione più sicura ed economica in quanto:

  • esporre solo l’Istanza gestita di SQL dalla rete virtuale.
  • consentire solo la connettività unidirezionale.
  • richiedere un solo indirizzo IP nella rete virtuale dell'applicazione.

Se gli endpoint privati non possono soddisfare completamente i requisiti dello scenario, prendere in considerazione il peering di rete virtuale. Il peering usa la rete backbone di Azure, quindi non c'è alcuna penalità di latenza notevole per la comunicazione tra i limiti della rete virtuale. Il peering di rete virtuale è supportato tra reti in tutte le aree (peering di rete virtuale globale), mentre le istanze ospitate nelle subnet create prima del 22 settembre 2020 supportano solo il peering all'interno dell'area.

Connettersi da locale

È possibile connettere l'applicazione locale all'endpoint locale della rete virtuale dell’Istanza gestita di SQL. Per accedere all'istanza in locale, è necessario stabilire una connessione da sito a sito tra l'applicazione e la rete virtuale dell'istanza gestita di SQL. Se l'accesso solo ai dati all'istanza gestita è sufficiente, è possibile connettersi all'utente dall'esterno di una rete virtuale tramite un endpoint pubblico. Per altre informazioni, vedere Configurare un endpoint pubblico in Istanza gestita di SQL di Azure.

Sono disponibili due opzioni per connettere un’applicazione locale a una rete virtuale di Azure:

Se è stata stabilita una connessione dall'ambiente locale ad Azure e non è possibile stabilire una connessione all'istanza gestita di SQL, controllare se il firewall ha la connessione in uscita aperta sulla porta SQL 1433 e sull'intervallo di porte 11000 11999 per il reindirizzamento.

Connettere un ambiente di sviluppo

È anche possibile connettere l’ambiente di sviluppo a Istanza gestita di SQL. Per accedervi dall’ambiente di sviluppo tramite la rete virtuale, è prima necessario stabilire una connessione tra l’ambiente di sviluppo e la rete virtuale Istanza gestita di SQL. Per eseguire questa operazione, configurare una connessione da punto a sito a una rete virtuale usando l'autenticazione del certificato di Azure nativo. Per maggiori informazioni, vedere Configurare una connessione da punto a sito per una connessione a un'Istanza gestita di SQL di Azure da computer locale.

Per l'accesso ai dati dell'istanza gestita dall'esterno della rete virtuale, vedere Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure.

Connessione a una rete spoke

Un altro scenario comune è quello in cui un gateway VPN viene installato in una rete virtuale (e forse in una sottoscrizione) - rete spoke - separata da quella che ospita Istanza gestita di SQL (rete hub). La connettività all’istanza gestita di SQL dalla rete spoke viene configurata tramite una delle opzioni elencate in Connessione dall’interno di una rete virtuale differente: endpoint privati, peering di reti virtuali un gateway da rete virtuale a rete virtuale.

Il seguente diagramma di architettura di esempio mostra il peering di reti virtuali:

Diagramma che mostra un peering di reti virtuali.

Se si esegue il peering di reti hub e spoke, assicurarsi che il gateway VPN veda gli indirizzi IP dalla rete hub. Per fare ciò, apportare le seguenti modifiche in Impostazioni di peering:

  1. Nella rete virtuale che ospita il gateway VPN (rete spoke), passare a Peering, passare alla connessione di rete virtuale con peering per Istanza gestita di SQL e selezionare Consenti transito tramite gateway.
  2. Nella rete virtuale che ospita Istanza gestita di SQL (rete hub), passare a Peering, passare alla connessione di rete virtuale con peering per il gateway VPN e selezionare Usa gateway remoti.

Connettere il Servizio app di Azure

È anche possibile connettere un'applicazione ospitata dal Servizio app di Azure quando è integrata con la rete virtuale. A tale scopo, selezionare uno dei meccanismi elencati in Connessione dall'interno di una rete virtuale diversa. Per l'accesso ai dati dell'istanza gestita dall'esterno della rete virtuale, vedere Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure.

Un caso speciale di connessione di Servizio app di Azure a Istanza gestita di SQL consiste nell'integrazione di Servizio app di Azure in una rete con peering a una rete virtuale di Istanza gestita di SQL. Tale caso richiede la configurazione seguente:

  • La rete virtuale di Istanza gestita di SQL NON deve avere un gateway
  • La rete virtuale di Istanza gestita di SQL deve avere il set di opzioni Use remote gateways
  • La rete virtuale con peering deve avere il set di opzioni Allow gateway transit

Questo scenario è illustrato nel diagramma seguente:

Diagramma per il peering integrato delle app.

Nota

La funzionalità Integrazione rete virtuale non consente l'integrazione di un'app con una rete virtuale dotata di un gateway ExpressRoute. Anche se il gateway ExpressRoute è configurato in modalità di coesistenza, l'integrazione rete virtuale non funziona. Se è necessario accedere alle risorse tramite una connessione ExpressRoute, è possibile usare un ambiente del servizio app eseguito nella rete virtuale.

Per risolvere i problemi relativi all'accesso al Servizio app di Azure tramite la rete virtuale, vedere Risoluzione dei problemi relativi a reti virtuali e applicazioni.

Risolvere i problemi di connettività

Per la risoluzione dei problemi di connettività, verificare quanto segue:

  • Se non è possibile connettersi a Istanza gestita di SQL da una macchina virtuale di Azure all'interno della stessa rete virtuale ma da una subnet diversa, verificare se si dispone di un gruppo di sicurezza di rete impostato nella subnet della VM che potrebbe bloccare l'accesso. Inoltre, aprire la connessione in uscita nella porta SQL 1433, nonché le porte nell'intervallo 11000-11999, poiché sono necessarie per la connessione tramite reindirizzamento all'interno del limite di Azure.

  • Assicurarsi che la propagazione dei percorsi del gateway sia disabilitata per la tabella di route associata alla rete virtuale.

  • Se si utilizza la VPN da punto a sito, controllare la configurazione nel portale di Azure per vedere se si vedono i numeri Ingresso/Uscita. I numeri diversi da zero indicano che Azure indirizza il traffico da/per un’istanza locale.

    Screenshot che mostra i numeri in ingresso/uscita nel portale di Azure.

  • Verificare che il computer client (che sta eseguendo il client VPN) disponga di voci di route per tutte le reti virtuali a cui è necessario accedere. Le route vengono archiviate in %AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    Screenshot che mostra il route.txt.

    Come mostrato in questa immagine, ci sono due voci per ogni rete virtuale coinvolta e una terza voce per l'endpoint VPN configurato nel portale.

    Un altro modo per verificare le route è tramite il comando seguente. L'output mostra le route verso subnet diverse:

    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
    
  • Se si usa il peering di reti virtuali, assicurarsi di aver seguito le istruzioni per l'impostazione di Consenti transito Gateway e Usa gateway remoti.

  • Se si usa il peering di reti virtuali per connettere un'applicazione ospitata da un servizio app Azure e la rete virtuale dell'istanza gestita di SQL ha un intervallo di indirizzi IP pubblici, assicurarsi che le impostazioni dell'applicazione ospitata consentano il routing del traffico in uscita alle reti IP pubbliche. Seguire le istruzioni riportate in Integrazione della rete virtuale regionale.

Anche se le versioni precedenti possono funzionare, nella tabella seguente sono elencate le versioni minime consigliate degli strumenti e dei driver per la connessione a Istanza gestita di SQL:

Driver/strumento Versione
.NET Framework 4.6.1 (o .NET Core)
Driver ODBC v17
PHP driver 5.2.0
Driver JDBC 6.4.0
Driver Node.js 2.1.1
Driver OLEDB 18.0.2.0
SSMS 18.0 o successiva
SMO 150 o successiva