Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Applies a:database SQL di Azure
Azure Synapse Analytics
Quando si crea un nuovo server in database SQL di Azure o Azure Synapse Analytics denominato mysqlserver, ad esempio, un firewall a livello di server blocca l'accesso all'endpoint pubblico per il server (accessibile in mysqlserver.database.windows.net). Per semplicità, Sql Database viene usato per fare riferimento sia al database SQL che al Azure Synapse Analytics. Questo articolo non si applica a Istanza gestita di SQL di Azure. Per informazioni sulla configurazione di rete, vedere Connettere l'applicazione a Istanza gestita di SQL di Azure.
Nota
Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).
Funzionamento del firewall
I tentativi di connessione da Internet e Azure devono passare attraverso il firewall prima di raggiungere il server o il database, come illustrato nel diagramma seguente.
Importante
Azure Synapse supporta solo le 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. Le regole vengono archiviate nel database. Il numero massimo di regole del firewall IP è limitato a 256 per server. Se l'impostazione Allow Azure Services and resources to access this server è attiva, viene considerata una singola regola del firewall per il server.
È possibile configurare le regole del firewall IP a livello di server usando le istruzioni Azure portale, 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 o un contributore della sottoscrizione.
- Per usare Transact-SQL, è necessario connettersi al database
mastercome account di accesso principale a livello di server o come amministratore Microsoft Entra. Una regola del firewall IP a livello di server deve prima essere creata da un utente che dispone di autorizzazioni a livello di Azure.
Nota
Per impostazione predefinita, durante la creazione di un nuovo server SQL logico dal portale di Azure, l'impostazione Allow Azure Services and resources to access this 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) e vengono archiviate nel singolo database.
- È possibile creare e gestire regole del firewall IP a livello di database solo per
mastere database utente usando 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 su come fare a impostare le regole del firewall
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. È 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 portatili nel contesto della continuità aziendale, vedere Configurare e gestire la sicurezza di database SQL di Azure per il ripristino geografico o il failover.
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 solo accesso 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 CONTROL 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 rientra in uno degli intervalli specificati nelle regole del firewall IP a livello di server, la connessione 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 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.
Connessioni dall'interno di Azure
Per consentire alle applicazioni ospitate all'interno di Azure di connettersi a SQL Server, è necessario abilitare le connessioni Azure. A tale scopo, creare una regola del firewall con indirizzi IP iniziali e finali impostati su 0.0.0.0. Questa regola si applica solo ai database SQL di Azure.
Quando un'applicazione da Azure tenta di connettersi al server, il firewall verifica che le connessioni Azure siano consentite verificando che questa regola del firewall esista. Questa opzione può essere attivata direttamente dal riquadro del portale di Azure passando Consenti ai servizi e alle risorse di Azure di accedere a questo server su ATTIVATO nelle impostazioni Firewall e 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 finestra sys.firewall_rules del database. Usare PowerShell o il 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.
Avviso
L'abilitazione di questa opzione consente le connessioni dai servizi all Azure, inclusi i servizi che operano nelle sottoscrizioni di altri clienti. Questa regola non limita l'accesso alla sottoscrizione o al gruppo di risorse. Qualsiasi risorsa Azure con connettività in uscita a database SQL di Azure può connettersi. Quando si abilita questa impostazione, assicurarsi che le autorizzazioni di accesso e utente limitino l'accesso solo agli utenti autorizzati.
I servizi Azure seguenti usano in genere questa regola per connettersi a database SQL di Azure:
- Servizio app di Azure e Funzioni di Azure
- Azure Data Factory
- Analisi di flusso di Azure
- App per la logica di Azure
- Azure Power BI
- Servizi di Azure AI
Per una maggiore sicurezza, valutare l’uso di endpoint di servizio di rete virtuale o endpoint privati anziché usare la regola AllowAllWindowsAzureIps. Queste alternative limitano la connettività a subnet o reti private specifiche anziché consentire tutti gli indirizzi IP Azure.
Autorizzazioni
Per creare e gestire le regole del firewall IP per l'SQL Server di Azure, è necessario avere uno dei ruoli seguenti:
- nel ruolo di Collaboratore del SQL Server
- nel ruolo di Manager della sicurezza di SQL
- proprietario della risorsa che contiene l'SQL Server di Azure
Creare e gestire le regole del firewall IP
Per creare la prima impostazione del firewall a livello di server, usare il portale Azure o a livello di codice usando Azure PowerShell, interfaccia della riga di comando di Azure o un'API Azure REST. È 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 Auditing per database SQL di Azure e Azure Synapse Analytics 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, passare alla pagina di panoramica per il database o il server.
Suggerimento
Per un'esercitazione, vedere Quickstart: Creare un database singolo - database SQL 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.
Screenshot che mostra la pagina Rete in cui è possibile impostare le regole 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.
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 procedura memorizzata | Livello | Descrizione |
|---|---|---|
| sys.firewall_rules | Servidor | Visualizza le regole del firewall IP a livello di server correnti |
| sp_set_firewall_rule | Servidor | Crea o aggiorna regole del firewall IP a livello di server |
| sp_delete_firewall_rule | Servidor | Rimuove regole del firewall IP a livello di server |
| sys.database_firewall_rules | Banca dati | Visualizza le regole del firewall IP a livello di database correnti |
| sp_set_database_firewall_rule | Banca dati | 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 Az PowerShell Azure, 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 Migrate Azure PowerShell da AzureRM ad Az.
Importante
Il modulo PowerShell Azure Resource Manager (AzureRM) è stato deprecato il 29 febbraio 2024. Tutto lo sviluppo futuro deve usare il modulo Az.Sql. È consigliabile eseguire la migrazione da AzureRM al modulo Az PowerShell per garantire il supporto e gli aggiornamenti continui. Il modulo AzureRM non è più gestito o supportato. Gli argomenti per i comandi nel modulo Az PowerShell e nei moduli AzureRM sono sostanzialmente identici. Per altre informazioni sulla compatibilità, vedere Introduzione al nuovo modulo Az PowerShell.
| Cmdlet (un piccolo script o comando in PowerShell) | Livello | Descrizione |
|---|---|---|
| Get-AzSqlServerFirewallRule | Servidor | Restituisce le regole del firewall a livello di server correnti |
| New-AzSqlServerFirewallRule | Servidor | Crea una nuova regola del firewall a livello di server |
| Set-AzSqlServerFirewallRule | Servidor | Aggiorna le proprietà di una regola del firewall a livello di server esistente |
| Remove-AzSqlServerFirewallRule | Servidor | Rimuove regole del firewall a livello di server |
Nel seguente esempio, viene utilizzato PowerShell per impostare una regola del firewall IP a livello server.
New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
-ServerName $servername `
-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"
Suggerimento
Per 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 esempi Azure PowerShell per database SQL di Azure e Usare PowerShell per creare un database singolo e configurare una regola del firewall a livello di server.
Usare la CLI per gestire le regole del firewall IP a livello di server
| Cmdlet (un piccolo script o comando in PowerShell) | Livello | Descrizione |
|---|---|---|
| crea regola firewall del server sql az | Servidor | Crea una regola del firewall IP del server |
| Comando per elencare le regole del firewall del server SQL: az sql server firewall-rule list | Servidor | Elenca le regole del firewall IP in un server |
| az sql server firewall-rule show (visualizza regola del firewall sql server) | Servidor | Mostra i dettagli di una regola del firewall IP |
| az sql server firewall-rule update - Aggiorna le regole del firewall per un server SQL di Azure. | Servidor | Aggiorna una regola del firewall IP |
| az sql server firewall-rule delete | Servidor | 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 , specificare il nome del server e non il nome DNS completo. Usare, ad esempio, invece di .
Per un esempio dell'interfaccia della riga di comando nel contesto di una guida introduttiva, vedere esempi interfaccia della riga di comando di Azure per database SQL di Azure e Creare un database singolo e configurare una regola del firewall usando il interfaccia della riga di comando di Azure.
Per Azure Synapse Analytics, vedere gli esempi seguenti:
| Cmdlet (un piccolo script o comando in PowerShell) | Livello | Descrizione |
|---|---|---|
| az synapse workspace firewall-rule create | Servidor | Creare una regola del firewall |
| az synapse workspace regola firewall elimina | Servidor | Eliminare una regola del firewall |
| az synapse workspace elenco delle regole del firewall | Servidor | Elencare tutte le regole del firewall |
| az synapse workspace visualizza regola del firewall | Servidor | Ottieni una regola del firewall |
| az synapse aggiornamento regola firewall del workspace | Servidor | Aggiornare una regola del firewall |
| az synapse workspace regolamento firewall in attesa | Servidor | Posizionare la CLI 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 | Servidor | Visualizza le regole del firewall IP a livello di server correnti |
| Creare o aggiornare la regola del firewall | Servidor | Crea o aggiorna regole del firewall IP a livello di server |
| Eliminare le regole del firewall | Servidor | Rimuove regole del firewall IP a livello di server |
| Ottenere le regole del firewall | Servidor | Ottiene regole del firewall IP a livello di server |
Informazioni sulla latenza degli aggiornamenti del firewall
Il modello di autenticazione server ha una latenza di 5 minuti per tutte le modifiche apportate alle impostazioni di sicurezza, a meno che il database non sia contenuto e senza un partner di failover. Le modifiche apportate ai database indipendenti senza un partner di failover sono istantanee. Per i database indipendenti con un partner di failover, ogni aggiornamento della sicurezza è istantaneo nel database primario, ma il database secondario può richiedere fino a 5 minuti per riflettere le modifiche.
La tabella seguente descrive la latenza delle modifiche alle impostazioni di sicurezza in base al tipo di database e alla configurazione del failover:
| Modello di autenticazione | Failover configurato | Latenza per le modifiche alle impostazioni di sicurezza | Istanze latenti |
|---|---|---|---|
| Autenticazione server | Sì | 5 minuti | tutti i database |
| Autenticazione server | NO | 5 minuti | tutti i database |
| Database contenuto | Sì | 5 minuti | database secondario |
| Database contenuto | NO | Nessuno | Nessuno |
Aggiornamento manuale delle regole del firewall
Se è necessario visualizzare le regole del firewall aggiornate più rapidamente rispetto alla latenza di 5 minuti, è possibile aggiornare manualmente le regole del firewall. Accedere all'istanza del database che richiede l'aggiornamento delle regole ed eseguire DBCC FLUSHAUTHCACHE. In questo modo l'istanza del database scarica la cache locale e aggiorna le regole del firewall.
DBCC FLUSHAUTHCACHE[;]
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:
Prima che il computer possa accedere database SQL di Azure, potrebbe essere necessario creare un'eccezione del firewall nel computer per la porta TCP 1433. Per stabilire connessioni all'interno del limite del cloud Azure, potrebbe essere necessario aprire porte aggiuntive. Per altre informazioni, vedere la sezione "Database SQL: esterno vs interno" di Ports oltre 1433 per ADO.NET 4.5.
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 potrebbe essere diverso dall'indirizzo IP nelle impostazioni di configurazione IP del computer. Per visualizzare l'indirizzo IP usato dal computer per connettersi a 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:
Potrebbero essere previsti fino a cinque minuti di ritardo per rendere effettive le modifiche alla configurazione del firewall database SQL di Azure.
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 ulteriori informazioni sulla preparazione dei logon, vedere Authorize database access to SQL Database, Istanza gestita di SQL e Azure Synapse Analytics.
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.