Regole del firewall IP del database SQL di Azure e Azure Synapse

Si applica a:database SQL di Azure Azure Synapse Analytics

Quando si crea un nuovo server in database SQL di Azure o In Azure Synapse Analytics denominato mysqlserver, ad esempio, un firewall a livello di server blocca l'accesso all'endpoint pubblico per il server (accessibile a mysqlserver.database.windows.net). Per semplicità, database SQL viene usato per fare riferimento sia a database SQL che ad Azure Synapse Analytics. Questo articolo non si applica a Istanza gestita di SQL di Azure. Per informazioni sulla configurazione di rete, vedere Connessione'applicazione per Istanza gestita di SQL di Azure.

Nota

Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).

Funzionamento del firewall

Connessione tentativi da Internet e Azure devono passare attraverso il firewall prima di raggiungere il server o il database, come illustrato nel diagramma seguente.

Firewall configuration diagram

Importante

Azure Synapse supporta solo le regole del firewall IP a livello di server. Non supporta le regole del firewall IP a livello di database.

Regole del firewall IP a livello di server

consentono ai client di accedere all'intero server ovvero a tutti i database gestiti dal server. Le regole vengono archiviate nel database master . Il numero massimo di regole del firewall IP a livello di server è limitato a 256 per un server. Se è abilitata l'impostazione Consenti alle risorse e ai servizi di Azure di accedere a questo server, viene considerata come una singola regola del firewall per il server.

È possibile configurare le regole del firewall IP a livello di server usando le istruzioni portale di Azure, PowerShell o Transact-SQL.

Nota

Il numero massimo di regole del firewall IP a livello di server è limitato a 256 durante la configurazione tramite il portale di Azure.

  • Per usare il portale o PowerShell, è necessario essere il proprietario della sottoscrizione o un collaboratore alla sottoscrizione.
  • Per usare Transact-SQL, è necessario connettersi al database master come account di accesso dell'entità a livello di server o come amministratore di Microsoft Entra. Una regola del firewall IP a livello di server deve essere creata prima da un utente con autorizzazioni a livello di Azure.

Nota

Per impostazione predefinita, durante la creazione di un nuovo server SQL logico dalla portale di Azure, l'impostazione Consenti a Servizi e risorse di Azure di accedere a questo server è impostata su No.

Regole del firewall IP a livello di database

Le regole del firewall IP a livello di database consentono ai client di accedere a determinati database sicuri. Si creano le regole per ogni database (incluso il database master ) e vengono archiviate nel singolo database.

  • È possibile creare e gestire le regole del firewall IP a livello di database per i database utente e master solo usando le istruzioni Transact-SQL e solo dopo aver configurato il primo firewall a livello di server.
  • Se nella regola del firewall IP a livello di database si specifica un intervallo di indirizzi IP che non rientra nell'intervallo nella regola del firewall IP a livello di server, solo i client che dispongono di indirizzi IP compresi nell'intervallo a livello di database possono accedere al database.
  • Il valore predefinito è fino a 256 regole del firewall IP a livello di database per un database. Per altre informazioni sulla configurazione delle regole del firewall IP a livello di database, vedere l'esempio più avanti in questo articolo e vedere sp_set_database_firewall_rule (database SQL di Azure).

Consigli come impostare le regole del firewall

È consigliabile usare le regole del firewall IP a livello di database, quando possibile. Questa pratica migliora la sicurezza e rende più portabile il database. Usare le regole del firewall IP a livello di server per gli amministratori. Usarli anche quando si hanno molti database con gli stessi requisiti di accesso e non si vuole configurare ogni database singolarmente.

Nota

Per informazioni sui database portabili per la continuità aziendale, vedere nel contesto della continuità aziendale, vedere i requisiti di autenticazione per il ripristino di emergenza.

Regole del firewall IP a livello di server e a livello di database a confronto

Gli utenti di un database devono essere completamente isolati da un altro database?

In caso affermativo, usare le regole del firewall IP a livello di database per concedere l'accesso. Questo metodo evita l'uso di regole del firewall IP a livello di server, che consentono l'accesso tramite il firewall a tutti i database. Ciò ridurrebbe la profondità delle difese.

Gli utenti degli indirizzi IP devono accedere a tutti i database?

In caso affermativo, usare le regole del firewall IP a livello di server per ridurre il numero di volte in cui è necessario configurare le regole del firewall IP.

La persona o il team che configura le regole del firewall IP hanno accesso solo tramite l'API REST, powerShell o portale di Azure portale di Azure?

In tal caso, è necessario usare le regole del firewall IP a livello di server. Le regole del firewall IP a livello di database possono essere configurate solo tramite Transact-SQL.

La persona o il team che configura le regole del firewall IP non è consentito disporre di autorizzazioni di alto livello a livello di database?

In tal caso, usare le regole del firewall IP a livello di server. È necessaria almeno l'autorizzazione CONTROL DATABA edizione Standard a livello di database per configurare le regole del firewall IP a livello di database tramite Transact-SQL.

La persona o il team che configura o controlla le regole del firewall IP gestiscono centralmente le regole del firewall IP per molti (forse centinaia) di database?

In questo scenario, le procedure consigliate sono determinate dalle esigenze e dall'ambiente. Le regole del firewall IP a livello di server potrebbero essere più facili da configurare, tuttavia lo scripting consente di configurare le regole a livello di database. E anche se si usano regole del firewall IP a livello di server, potrebbe essere necessario controllare le regole del firewall IP a livello di database per verificare se gli utenti con autorizzazione CONTROL per il database creano regole del firewall IP a livello di database.

È possibile usare una combinazione di regole del firewall IP a livello di server e a livello di database?

Sì. Alcuni utenti, ad esempio gli amministratori, potrebbero richiedere regole del firewall IP a livello di server. Altri utenti, ad esempio gli utenti di un'applicazione di database, potrebbero aver bisogno di regole del firewall IP a livello di database.

Connessioni da Internet

Quando un computer tenta di connettersi al server da Internet, il firewall controlla innanzitutto l'indirizzo IP di origine della richiesta rispetto alle regole del firewall IP a livello di database per il database richiesto dalla connessione.

  • Se l'indirizzo è compreso in un intervallo specificato nelle regole del firewall IP a livello di database, la connessione viene concessa al database che contiene la regola.
  • Se l'indirizzo non rientra in un intervallo nelle regole del firewall IP a livello di database, il firewall controlla le regole del firewall IP a livello di server. Se l'indirizzo è compreso in un intervallo incluso nelle regole del firewall IP a livello di server, viene concessa la connessione. Le regole del firewall IP a livello di server si applicano a tutti i database gestiti dal server.
  • Se l'indirizzo non rientra in un intervallo compreso tra le regole del firewall IP a livello di database o a livello di server, la richiesta di connessione ha esito negativo.

Nota

Per accedere database SQL di Azure dal computer locale, assicurarsi che il firewall nella rete e nel computer locale consenta la comunicazione in uscita sulla porta TCP 1433.

Connessione ions dall'interno di Azure

Per consentire alle applicazioni ospitate in Azure di connettersi al server SQL, è necessario abilitare le connessioni di Azure. Per abilitare le connessioni di Azure, è necessario che esista una regola del firewall con indirizzi IP iniziali e finali impostati su 0.0.0.0. Questa regola consigliata è applicabile solo a database SQL di Azure.

Quando un'applicazione di Azure tenta di connettersi al server, il firewall verifica che le connessioni di Azure siano consentite verificando che questa regola del firewall esista. Questa opzione può essere attivata direttamente dal riquadro portale di Azure passando alle impostazioni Consenti a Servizi e risorse di Azure di accedere a questo server su ON nelle impostazioni Firewall e reti virtuali. Se si passa a ON, viene creata una regola del firewall in ingresso per IP 0.0.0.0 - 0.0.0.0 denominato AllowAllWindowsAzureIps. La regola può essere visualizzata nella master vista sys.firewall_rules database. Usare PowerShell o l'interfaccia della riga di comando di Azure per creare una regola del firewall con indirizzi IP iniziali e finali impostati su 0.0.0.0 se non si usa il portale.

Importante

Questa opzione configura il firewall per consentire tutte le connessioni da Azure, incluse le connessioni dalle sottoscrizioni di altri clienti. Se si seleziona questa opzione, assicurarsi che l'account di accesso e le autorizzazioni utente limitino l'accesso solo agli utenti autorizzati.

Autorizzazioni

Per poter creare e gestire le regole del firewall IP per SQL Server di Azure, sarà necessario avere:

Creare e gestire le regole del firewall IP

Creare la prima impostazione del firewall a livello di server usando il portale di Azure o a livello di codice usando Azure PowerShell, l'interfaccia della riga di comando di Azure o un'API REST di Azure. È possibile creare e gestire regole del firewall IP a livello di server aggiuntive usando questi metodi o Transact-SQL.

Importante

Le regole del firewall IP a livello di database possono essere create e gestite solo tramite Transact-SQL.

Per migliorare le prestazioni, le regole del firewall IP a livello di server vengono temporaneamente memorizzate nella cache a livello di database. Per aggiornare la cache, vedere DBCC FLUSHAUTHCACHE.

Suggerimento

È possibile usare Il controllo del database per controllare le modifiche del firewall a livello di server e a livello di database.

Usare il portale di Azure per gestire le regole del firewall IP a livello di server

Per impostare una regola del firewall IP a livello di server nella portale di Azure, passare alla pagina di panoramica per il database o il server.

Suggerimento

Per un'esercitazione, vedere Creare un database usando il portale di Azure.

Dalla pagina di panoramica del database

  1. Per impostare una regola del firewall IP a livello di server dalla pagina di panoramica del database, selezionare Imposta firewall server sulla barra degli strumenti, come illustrato nell'immagine seguente.

    Screenshot of the set server firewall setting in the Azure portal.

    Verrà visualizzata la pagina Rete per il server.

  2. Aggiungere una regola nella sezione Regole del firewall per aggiungere l'indirizzo IP del computer in uso e quindi selezionare Salva. Una regola del firewall IP a livello di server viene creata per l'indirizzo IP corrente.

    Screenshot shows the Networking page where you can set the server-level IP firewall rules.

Dalla pagina di panoramica del server

Verrà visualizzata la pagina di panoramica per il server. Mostra il nome completo del server (ad esempio mynewserver20170403.database.windows.net) e fornisce opzioni per un'ulteriore configurazione.

  1. Per impostare una regola a livello di server da questa pagina, selezionare Rete dal menu Impostazioni a sinistra.

  2. Aggiungere una regola nella sezione Regole del firewall per aggiungere l'indirizzo IP del computer in uso e quindi selezionare Salva. Una regola del firewall IP a livello di server viene creata per l'indirizzo IP corrente.

Usare Transact-SQL per gestire le regole del firewall IP

Vista del catalogo o stored procedure Livello Descrizione
sys.firewall_rules Server Visualizza le regole del firewall IP a livello di server correnti
sp_set_firewall_rule Server Crea o aggiorna regole del firewall IP a livello di server
sp_delete_firewall_rule Server Rimuove regole del firewall IP a livello di server
sys.database_firewall_rules Database Visualizza le regole del firewall IP a livello di database correnti
sp_set_database_firewall_rule Database Crea o aggiorna regole del firewall IP a livello di database
sp_delete_database_firewall_rule Database Rimuove le regole del firewall IP a livello di database

L'esempio seguente esamina le regole esistenti, abilita un intervallo di indirizzi IP nel server Contoso ed elimina una regola del firewall IP:

SELECT * FROM sys.firewall_rules ORDER BY name;

Aggiungere quindi una regola del firewall IP a livello di server.

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

Per eliminare una regola del firewall IP a livello di server, eseguire la stored procedure sp_delete_firewall_rule . Nell'esempio seguente viene eliminata la regola ContosoFirewallRule:

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Usare PowerShell per gestire le regole del firewall IP a livello di server

Nota

Questo articolo usa il modulo Azure Az PowerShell, che è il modulo PowerShell consigliato per interagire con Azure. Per iniziare a usare il modulo Az PowerShell, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Importante

Il modulo Di Azure Resource Manager di PowerShell è ancora supportato da database SQL di Azure, ma tutto lo sviluppo è ora destinato al modulo Az.Sql. Per informazioni su questi cmdlet, vedere AzureRM.Sql. Gli argomenti per i comandi nei moduli Az e AzureRm sono sostanzialmente identici.

Cmdlet Livello Descrizione
Get-AzSqlServerFirewallRule Server Restituisce le regole del firewall a livello di server correnti
New-AzSqlServerFirewallRule Server Crea una nuova regola del firewall a livello di server
Set-AzSqlServerFirewallRule Server Aggiorna le proprietà di una regola del firewall a livello di server esistente
Remove-AzSqlServerFirewallRule Server Rimuove regole del firewall a livello di server

L'esempio seguente usa PowerShell per impostare una regola del firewall IP a livello di server:

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
    -ServerName $servername `
    -FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Suggerimento

Per $servername specificare il nome del server e non il nome DNS completo, ad esempio specificare mysqldbserver anziché mysqldbserver.database.windows.net

Per esempi di PowerShell nel contesto di una guida introduttiva, vedere Creare un database - PowerShell e Creare un database singolo e configurare una regola del firewall IP a livello di server usando PowerShell.

Usare l'interfaccia della riga di comando per gestire le regole del firewall IP a livello di server

Cmdlet Livello Descrizione
az sql server firewall-rule create Server Crea una regola del firewall IP del server
az sql server firewall-rule list Server Elenca le regole del firewall IP in un server
az sql server firewall-rule show Server Mostra i dettagli di una regola del firewall IP
az sql server firewall-rule update Server Aggiornamenti una regola del firewall IP
az sql server firewall-rule delete Server Elimina una regola del firewall IP

L'esempio seguente usa l'interfaccia della riga di comando per impostare una regola del firewall IP a livello di server:

az sql server firewall-rule create --resource-group myResourceGroup --server $servername \
-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255

Suggerimento

Per $servername, specificare il nome del server e non il nome DNS completo. Usare, ad esempio, mysqldbserver invece di mysqldbserver.database.windows.net.

Per un esempio dell'interfaccia della riga di comando nel contesto di una guida introduttiva, vedere Creare un database - Interfaccia della riga di comando di Azure e Creare un database singolo e configurare una regola del firewall IP a livello di server usando l'interfaccia della riga di comando di Azure.

Per Azure Synapse Analytics, vedere gli esempi seguenti:

Cmdlet Livello Descrizione
az synapse workspace firewall-rule create Server Creare una regola del firewall
az synapse workspace firewall-rule delete Server Eliminare una regola del firewall
az synapse workspace firewall-rule list Server Elencare tutte le regole del firewall
az synapse workspace firewall-rule show Server Ottenere una regola del firewall
az synapse workspace firewall-rule update Server Aggiornare una regola del firewall
az synapse workspace firewall-rule wait Server Posizionare l'interfaccia della riga di comando in uno stato di attesa fino a quando non viene soddisfatta una condizione di una regola del firewall

L'esempio seguente usa l'interfaccia della riga di comando per impostare una regola del firewall IP a livello di server in Azure Synapse:

az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

Usare un'API REST per gestire le regole del firewall IP a livello di server

API Livello Descrizione
Elencare le regole del firewall Server Visualizza le regole del firewall IP a livello di server correnti
Creare o aggiornare le regole del firewall Server Crea o aggiorna regole del firewall IP a livello di server
Eliminare le regole del firewall Server Rimuove regole del firewall IP a livello di server
Ottenere le regole del firewall Server Ottiene regole del firewall IP a livello di server

Eseguire la risoluzione dei problemi del firewall del database

Quando l'accesso a database SQL di Azure non si comporta come previsto, tenere presente quanto segue.

  • Configurazione del firewall locale:

    Per consentire al computer di accedere al database SQL di Azure, è necessario creare un'eccezione del firewall sul computer per la porta TCP 1433. Per stabilire connessioni all'interno del limite del cloud di Azure, potrebbe essere necessario aprire porte aggiuntive. Per altre informazioni, vedere la sezione "database SQL: All'esterno e all'interno" di Porte successive a 1433 per ADO.NET 4.5 e database SQL di Azure.

  • Traduzione degli indirizzi di rete:

    A causa di NAT (Network Address Translation), l'indirizzo IP usato dal computer per connettersi a database SQL di Azure può essere diverso dall'indirizzo IP nelle impostazioni di configurazione IP del computer. Per vedere l'indirizzo IP usato dal computer per connettersi ad Azure:

    1. Accedi al portale.
    2. Accedere alla scheda Configura nel server che ospita il database.
    3. L'indirizzo IP client corrente viene visualizzato nella sezione Indirizzi IP consentiti. Selezionare Aggiungi per Indirizzi IP consentiti per consentire al computer di accedere al server.
  • Le modifiche apportate all'elenco elementi consentiti non sono ancora state applicate:

    Potrebbero essere previsti fino a cinque minuti di ritardo per rendere effettive le modifiche alla configurazione del firewall database SQL di Azure.

  • L'account di accesso non è autorizzato o è stata usata una password non corretta:

    Se un account di accesso non dispone delle autorizzazioni per il server o la password non è corretta, la connessione al server viene negata. La creazione di un'impostazione del firewall offre solo ai client la possibilità di provare a connettersi al server. Il client deve comunque fornire le credenziali di sicurezza necessarie. Per altre informazioni sulla preparazione degli account di accesso, vedere Controllo e concessione dell'accesso al database.

  • Indirizzo IP dinamico:

    Se si dispone di una connessione Internet che usa indirizzi IP dinamici e si verificano problemi durante il passaggio del firewall, provare una delle soluzioni seguenti:

    • Richiedere al provider di servizi Internet l'intervallo di indirizzi IP assegnato ai computer client che accedono al server. Aggiungere l'intervallo di indirizzi IP come regola del firewall IP.
    • Ottenere invece indirizzi IP statici per i computer client. Aggiungere gli indirizzi IP come regole del firewall IP.

Passaggi successivi