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.
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:
- nel ruolo di Collaboratore di SQL Server
- nel ruolo di Manager della sicurezza di SQL
- il proprietario della risorsa che contiene il server SQL di Azure
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
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.
Verrà visualizzata la pagina di Rete per il server.
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.
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.
Per impostare una regola a livello di server da questa pagina, selezionare Rete dal menu Impostazioni a sinistra.
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:
- Accedere al portale.
- Accedere alla scheda Configura nel server che ospita il database.
- 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
- Confermare che l'ambiente di rete aziendale consenta la comunicazione in ingresso dagli intervalli di indirizzi IP di calcolo (inclusi gli intervalli SQL) usati dai data center di Azure. Potrebbe essere necessario aggiungere tali indirizzi IP all'elenco autorizzati. Vedere: Intervalli IP del data center di Microsoft Azure.
- Vedere la guida introduttiva sulla creazione di un database singolo in database SQL di Azure.
- Per aiuto online sulla connessione a un database SQL di Azure da applicazioni open source o di terzi, vedere Esempi di codice di avvio rapido del client per il database SQL.
- Per informazioni sulle porte aggiuntive che si possono dover aprire vedere la sezione “Database SQL: Esterno rispetto all'interno” di Porte successive alla 1433 per ADO.NET 4.5 e database SQL
- Per informazioni generali sulla sicurezza del Database SQL di Azure vedere Protezione del Database.