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 sul database SQL di Azure o su Azure Synapse Analytics chiamato, ad esempio, mysqlserver, un firewall a livello di server blocca l'accesso all'endpoint pubblico per il server (accessibile su mysqlserver.database.windows.net). Per semplicità, il termine database SQL viene usato per fare riferimento sia al database SQL che al database di Azure Synapse Analytics. Questo articolo non si applica a Istanza gestita di SQL di Azure. Per informazioni sulla configurazione della rete, consultare Connetti l'applicazione all’Istanza gestita di SQL di Azure.

Nota

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

Funzionamento del firewall

I tentativi di collegamento provenienti da Internet e da Azure devono superare il firewall prima di raggiungere il server o il database, come mostra il seguente diagramma.

Diagramma di configurazione del firewall

Importante

Azure Synapse supporta solo regole del firewall IP a livello di server. Non supporta 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. Queste regole sono archiviate nel database master. Il numero massimo di regole del firewall IP è limitato a 256 per 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 il portale di Azure, PowerShell o le istruzioni Transact-SQL.

Nota

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

  • Per usare il portale o PowerShell, è necessario essere il proprietario o un contributore della sottoscrizione.
  • Per usare Transact-SQL, è necessario connettersi al database master come account di accesso dell'entità di livello 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 SQL server logico dal portale di Azure, l’impostazione Consenti ai servizi e alle 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. Queste regole vengono create per ciascun database (incluso il database master) e vengono archiviate nei singoli 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 di regole del firewall IP a livello di database per un database è di 256. Per altre informazioni sulla configurazione delle regole del firewall IP a livello di database, vedere l'esempio presente in questo articolo e vedere sp_set_database_firewall_rule (Database SQL di Azure).

Consigli su come fare a impostare le regole del firewall

Quando è possibile, è consigliabile usare le regole del firewall IP a livello di database. Questa pratica migliora la sicurezza e rende più portabile il database. Usare le regole del firewall IP a livello di server per gli amministratori. È anche possibile usare queste regole quando sono disponibili molti database che presentano gli stessi requisiti di accesso e non si vuole dedicare tempo alla configurazione di ogni singolo database.

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 delle regole del firewall IP a livello di server che consentono l'accesso attraverso il firewall a tutti i database. Ciò potrebbe ridurre l’efficacia delle misure di difesa.

Gli utenti degli indirizzi IP devono avere accesso 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 ha accesso solo tramite il portale di Azure, PowerShell o l'API REST?

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.

Alla persona o al team che configura le regole del firewall IP è vietato avere autorizzazioni elevate a livello di database?

In tale caso, usare regole del firewall IP a livello di server. È necessaria almeno l'autorizzazione CONTROLLO DATABASE 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 gestisce centralmente le regole del firewall IP per molti database (forse centinaia)?

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 le 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 CONTROLLO nel database hanno creato le 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, come gli amministratori, potrebbero aver bisogno di 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 cerca di connettersi al server da Internet, il firewall verifica prima 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 all’interno della richiesta rientra in uno degli intervalli specificati nelle regole del firewall IP a livello di database, la connessione al database che contiene le regole viene concessa.
  • Se l'indirizzo della richiesta non rientra in uno degli intervalli specificati nelle regole del firewall IP a livello di database, il firewall controlla le regole del firewall IP a livello di server. Se l'indirizzo all’interno della richiesta rientra in uno degli intervalli specificati nelle regole del firewall IP a livello di database, la connessione al database viene concessa. Le regole del firewall IP a livello di server si applicano a tutti i database gestiti dal server.
  • Se l'indirizzo della richiesta non rientra in nessuna delle regole del firewall IP a livello di database o di server, la richiesta di connessione ha esito negativo.

Nota

Per accedere al database SQL di Azure dal computer locale, verificare che il firewall in rete e nel computer locale consenta le comunicazioni in uscita sulla porta TCP 1433.

Connessione dall'interno di Azure

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

Quando un'applicazione di Azure tenta di connettersi al server, il firewall controlla che le connessioni di Azure siano consentite verificando che questa regola del firewall esista. È possibile abilitare questa opzione direttamente dalla pagina del portale di Azure impostando Consenti ai servizi e alle risorse di Azure di accedere al server su ON nelle impostazioni del firewall e delle reti virtuali. Abilitando l’impostazione su ON, viene creata una regola del firewall in ingresso per IP 0.0.0.0 - 0.0.0.0 denominata AllowAllWindowsAzureIps. La regola può essere visualizzata nella master finestra sys.firewall_rules del database. Usare PowerShell o l'interfaccia della riga di comando di Azure per creare una regola del firewall con indirizzi IP di partenza e di arrivo impostati su 0.0.0.0 se non si usa il portale.

Importante

Questa opzione configura il firewall in modo da 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 ai soli 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

La prima impostazione del firewall a livello di server può essere creata usando il Portale di Azure o a livello di programmazione tramite Azure PowerShell, l'interfaccia della riga di comando di Azure, o un'API REST di Azure. Le regole del firewall IP a livello di server aggiuntive possono essere create e gestite usando questi metodi o Transact-SQL.

Importante

Le regole del firewall IP a livello di database possono essere create e gestite solo usando 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 servizio di controllo del database per controllare le modifiche del firewall a livello di server e 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 nel portale di Azure, è possibile consultare la pagina Panoramica per il database o per 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 dell'impostazione firewall del server nel portale di Azure.

    Verrà visualizzata la pagina di Rete per il server.

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

    Screenshot della pagina Rete dove è possibile impostare la regola del firewall IP a livello di server.

Dalla pagina di panoramica del server

Si apre la pagina di panoramica del server in questione. Mostra il nome completo del server completo (ad esempio mynewserver20170403.database.windows.net) e offre altre opzioni di 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, 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 della 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

Nell’esempio seguente si rivedono le regole esistenti, si abilita un intervallo di indirizzi IP nel server di Contoso e si 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 di PowerShell Azure Az consigliato per l'interazione 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 Azure Resource Manager di PowerShell è ancora supportato da Database SQL di Azure, ma tutte le attività di sviluppo future sono ora incentrate sul 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

Nell'esempio seguente viene usata una regola del firewall IP per impostare una regola del firewall IP a livello di server con PowerShell:

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 un avvio rapido, vedere Creare un database usando PowerShell e Creare un database singolo e configurare una regola del firewall IP a livello di server di database SQL usando PowerShell.

Usare la CLI 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 Aggiorna una regola del firewall IP
az sql server firewall-rule delete Server Elimina una regola del firewall IP

Nell'esempio seguente viene usata la CLI 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 di CLI nel contesto di una procedura di avvio rapido, vedere Creare un DB - interfaccia della riga di comando di Azure e Creare un database singolo e configurare una regola del firewall a livello di server usando l'interfaccia della riga di comando di Azure.

Per Azure Synapse Analytics, vedere i seguenti esempi:

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 la CLI in uno stato di attesa fino a quando non viene soddisfatta una condizione di una regola del firewall

Nell'esempio seguente viene usata la CLI per impostare una regola del firewall IP a livello di server su 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 la regola 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 al database SQL di Azure non si comporta come previsto, considerare i seguenti punti.

  • 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 effettuare connessioni all'interno del limite del cloud di Azure, può essere necessario aprire porte aggiuntive. Per altre informazioni, vedere la sezione “Database SQL: Esterno rispetto all'interno” di Porte successive alla 1433 per ADO.NET 4.5 e Database SQL di Azure.

  • Network address translation:

    A causa di Network Address Translation (NAT), l'indirizzo IP usato dal computer per connettersi al database SQL di Azure potrebbe 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. Accedere al portale.
    2. Accedere alla scheda Configura nel server che ospita il database.
    3. L'attuale indirizzo IP client viene visualizzato nella sezione Indirizzi IP consentiti. Selezionare Aggiungi o Indirizzi IP consentiti per consentire al computer di accedere al server.
  • Le modifiche all'elenco autorizzati non sono state ancora applicate:

    Per rendere effettive le modifiche apportate alla configurazione del firewall del database SQL di Azure possono essere necessari fino a cinque minuti.

  • L'accesso non è autorizzato oppure è stata usata una password errata:

    Quando un account di accesso non dispone di autorizzazioni per il server o la password usata non è corretta, la connessione al server viene negata. La creazione di un'impostazione del firewall offre solo ai client l’opportunità di tentare una connessione al server. Il client deve fornire le credenziali di sicurezza necessarie, in ogni caso. Per altre informazioni sulla preparazione degli accessi, vedere Controllo e concessione dell'accesso al database.

  • Indirizzo IP dinamico:

    Se si dispone di una connessione Internet che usa l’indirizzo IP dinamico e si riscontrano problemi di comunicazione attraverso il firewall, provare una delle seguenti soluzioni:

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

Passaggi successivi