Azure SQL Database och Azure Synapse IP-brandväggsregler
gäller för:Azure SQL DatabaseAzure Synapse Analytics
När du skapar en ny server i Azure SQL Database eller Azure Synapse Analytics med namnet mysqlserverblockerar till exempel en brandvägg på servernivå all åtkomst till den offentliga slutpunkten för servern (som är tillgänglig på mysqlserver.database.windows.net). För enkelhetens skull används SQL Database- för att referera till både SQL Database och Azure Synapse Analytics. Den här artikeln gäller inte för Azure SQL Managed Instance. Information om nätverkskonfiguration finns i Ansluta ditt program till Azure SQL Managed Instance.
Anteckning
Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).
Så här fungerar brandväggen
Anslutningsförsök från Internet och Azure måste passera genom brandväggen innan de når servern eller databasen, vilket visas i följande diagram.
Viktig
Azure Synapse stöder endast IP-brandväggsregler på servernivå. Den stöder inte IP-brandväggsregler på databasnivå.
IP-brandväggsregler på servernivå
Dessa regler gör det möjligt för klienter att komma åt hela servern, dvs. alla databaser som hanteras av servern. Reglerna lagras i huvuddatabas. Det maximala antalet IP-brandväggsregler på servernivå är begränsat till 256 för en server. Om du har Tillåt Att Azure-tjänster och resurser får åtkomst till den här servern inställningen aktiverad räknas detta som en enda brandväggsregel för servern.
Du kan konfigurera IP-brandväggsregler på servernivå med hjälp av Azure-portalen, PowerShell eller Transact-SQL-instruktioner.
Obs
Det maximala antalet IP-brandväggsregler på servernivå är begränsat till 256 när du konfigurerar med Hjälp av Azure-portalen.
- Om du vill använda portalen eller PowerShell måste du vara prenumerationsägare eller prenumerationsdeltagare.
- Om du vill använda Transact-SQL måste du ansluta till den huvuddatabasen som huvudinloggning på servernivå eller som Microsoft Entra-administratör. (En IP-brandväggsregel på servernivå måste först skapas av en användare som har behörigheter på Azure-nivå.)
Not
När du skapar en ny logisk SQL-server från Azure-portalen är inställningen Tillåt Azure-tjänster och resurser att komma åt den här servern som standard inställd på Nej.
IP-brandväggsregler på databasnivå
Ip-brandväggsregler på databasnivå gör det möjligt för klienter att komma åt vissa (säkra) databaser. Du skapar reglerna för varje databas (inklusive huvuddatabasen) och de lagras i den enskilda databasen.
- Du kan bara skapa och hantera IP-brandväggsregler på databasnivå för huvud- och användardatabaser med hjälp av Transact-SQL-instruktioner och först när du har konfigurerat den första brandväggen på servernivå.
- Om du anger ett IP-adressintervall i ip-brandväggsregeln på databasnivå som ligger utanför intervallet i IP-brandväggsregeln på servernivå kan endast de klienter som har IP-adresser i databasnivåintervallet komma åt databasen.
- Standardvärdet är upp till 256 IP-brandväggsregler på databasnivå för en databas. Mer information om hur du konfigurerar IP-brandväggsregler på databasnivå finns i exemplet senare i den här artikeln och se sp_set_database_firewall_rule (Azure SQL Database).
Rekommendationer för hur du anger brandväggsregler
Vi rekommenderar att du använder IP-brandväggsregler på databasnivå när det är möjligt. Den här metoden förbättrar säkerheten och gör databasen mer portabel. Använd IP-brandväggsregler på servernivå för administratörer. Använd dem också när du har många databaser som har samma åtkomstkrav och du inte vill konfigurera varje databas individuellt.
Not
Information om bärbara databaser i samband med affärskontinuitet finns i autentiseringskrav för haveriberedskap.
Ip-brandväggsregler på servernivå jämfört med databasnivå
Ska användare av en databas vara helt isolerade från en annan databas?
Om jaanvänder du IP-brandväggsregler på databasnivå för att bevilja åtkomst. Den här metoden undviker att använda IP-brandväggsregler på servernivå, vilket tillåter åtkomst via brandväggen till alla databaser. Det skulle minska djupet i ditt försvar.
Behöver användare på IP-adresserna åtkomst till alla databaser?
Om jaanvänder du IP-brandväggsregler på servernivå för att minska antalet gånger som du måste konfigurera IP-brandväggsregler.
Har den person eller det team som konfigurerar IP-brandväggsreglerna endast åtkomst via Azure-portalen, PowerShell eller REST-API:et?
I så fall måste du använda IP-brandväggsregler på servernivå. IP-brandväggsregler på databasnivå kan bara konfigureras via Transact-SQL.
Är den person eller det team som konfigurerar IP-brandväggsreglerna förbjudet att ha behörighet på hög nivå på databasnivå?
I så fall använder du IP-brandväggsregler på servernivå. Du behöver minst KONTROLLDATABAS behörighet på databasnivå för att konfigurera IP-brandväggsregler på databasnivå via Transact-SQL.
Hanterar den person eller det team som konfigurerar eller granskar IP-brandväggsreglerna centralt IP-brandväggsregler för många (kanske hundratals) databaser?
I det här scenariot bestäms bästa praxis av dina behov och din miljö. IP-brandväggsregler på servernivå kan vara enklare att konfigurera, men skript kan konfigurera regler på databasnivå. Och även om du använder IP-brandväggsregler på servernivå kan du behöva granska IP-brandväggsregler på databasnivå för att se om användare med CONTROL- behörighet för databasen skapar IP-brandväggsregler på databasnivå.
Kan jag använda en blandning av IP-brandväggsregler på servernivå och databasnivå?
Ja. Vissa användare, till exempel administratörer, kan behöva IP-brandväggsregler på servernivå. Andra användare, till exempel användare av ett databasprogram, kan behöva IP-brandväggsregler på databasnivå.
Anslutningar från Internet
När en dator försöker ansluta till servern från Internet kontrollerar brandväggen först den ursprungliga IP-adressen för begäran mot IP-brandväggsreglerna på databasnivå för den databas som anslutningen begär.
- Om adressen ligger inom ett intervall som anges i IP-brandväggsreglerna på databasnivå beviljas anslutningen till databasen som innehåller regeln.
- Om adressen inte ligger inom ett intervall i IP-brandväggsreglerna på databasnivå kontrollerar brandväggen IP-brandväggsreglerna på servernivå. Om adressen ligger inom ett intervall som finns i IP-brandväggsreglerna på servernivå beviljas anslutningen. IP-brandväggsregler på servernivå gäller för alla databaser som hanteras av servern.
- Om adressen inte ligger inom ett intervall som finns i någon av IP-brandväggsreglerna på databasnivå eller på servernivå misslyckas anslutningsbegäran.
Not
Om du vill komma åt Azure SQL Database från den lokala datorn kontrollerar du att brandväggen i nätverket och den lokala datorn tillåter utgående kommunikation på TCP-port 1433.
Anslutningar inifrån Azure
Azure-anslutningar måste vara aktiverade för att program som finns i Azure ska kunna ansluta till sql-servern. För att aktivera Azure-anslutningar måste det finnas en brandväggsregel med start- och slut-IP-adresser inställda på 0.0.0.0. Den här rekommenderade regeln gäller endast för Azure SQL Database.
När ett program från Azure försöker ansluta till servern kontrollerar brandväggen att Azure-anslutningar tillåts genom att verifiera att den här brandväggsregeln finns. Detta kan aktiveras direkt från Azure-portalens fönster genom att ställa in Tillåt Azure-tjänster och resurser att få åtkomst till den här servern till PÅ i inställningarna för brandväggar och virtuella nätverk. Om du växlar inställningen till PÅ skapas en inkommande brandväggsregel för IP 0.0.0.0–0.0.0.0 med namnet AllowAllWindowsAzureIps. Regeln kan visas i master
databas sys.firewall_rules vy. Använd PowerShell eller Azure CLI för att skapa en brandväggsregel med start- och slut-IP-adresser inställda på 0.0.0.0 om du inte använder portalen.
Viktig
Det här alternativet konfigurerar brandväggen så att den tillåter alla anslutningar från Azure, inklusive anslutningar från andra kunders prenumerationer. Om du väljer det här alternativet kontrollerar du att dina inloggnings- och användarbehörigheter endast begränsar åtkomsten till behöriga användare.
Behörigheter
För att kunna skapa och hantera IP-brandväggsregler för Azure SQL Server måste du antingen:
- i rollen SQL Server-deltagare
- i rollen SQL Security Manager
- ägaren av resursen som innehåller Azure SQL Server
Skapa och hantera IP-brandväggsregler
Du skapar den första brandväggsinställningen på servernivå med hjälp av Azure-portalen eller programmatiskt med hjälp av Azure PowerShell, Azure CLIeller ett REST API för Azure . Du skapar och hanterar ytterligare IP-brandväggsregler på servernivå med hjälp av dessa metoder eller Transact-SQL.
Viktig
Ip-brandväggsregler på databasnivå kan bara skapas och hanteras med hjälp av Transact-SQL.
För att förbättra prestanda cachelagras IP-brandväggsregler på servernivå tillfälligt på databasnivån. Information om hur du uppdaterar cachen finns i DBCC FLUSHAUTHCACHE.
Tips
Du kan använda databasgranskning för att granska brandväggsändringar på servernivå och databasnivå.
Använda Azure-portalen för att hantera IP-brandväggsregler på servernivå
Om du vill ange en IP-brandväggsregel på servernivå i Azure-portalen går du till översiktssidan för databasen eller servern.
Tips
För en handledning, se Skapa en databas genom Azure-portalen.
Från översiktssidan för databasen
Om du vill ange en IP-brandväggsregel på servernivå från databasöversiktssidan väljer du Ange serverbrandväggen i verktygsfältet, som följande bild visar.
Sidan Nätverk för servern öppnas.
Lägg till en regel i avsnittet Brandväggsregler för att lägga till IP-adressen för den dator som du använder och välj sedan Spara. En IP-brandväggsregel på servernivå skapas för din aktuella IP-adress.
Från sidan serveröversikt
Översiktssidan för servern öppnas. Den visar det fullständigt kvalificerade servernamnet (till exempel mynewserver20170403.database.windows.net) och innehåller alternativ för ytterligare konfiguration.
Om du vill ange en regel på servernivå på den här sidan väljer du Nätverk från menyn Inställningar till vänster.
Lägg till en regel i avsnittet Brandväggsregler för att lägga till IP-adressen för den dator som du använder och välj sedan Spara. En IP-brandväggsregel på servernivå skapas för din aktuella IP-adress.
Använda Transact-SQL för att hantera IP-brandväggsregler
Katalogvy eller lagrad procedur | Nivå | Beskrivning |
---|---|---|
sys.firewall_rules | Server | Visar aktuella IP-brandväggsregler på servernivå |
sp_set_firewall_rule | Server | Skapar eller uppdaterar IP-brandväggsregler på servernivå |
sp_delete_firewall_rule | Server | Tar bort IP-brandväggsregler på servernivå |
sys.database_firewall_rules | Databas | Visar de aktuella IP-brandväggsreglerna på databasnivå |
sp_set_database_firewall_rule | Databas | Skapar eller uppdaterar IP-brandväggsregler på databasnivå |
sp_delete_database_firewall_rule | Databaser | Tar bort IP-brandväggsregler på databasnivå |
I följande exempel granskas de befintliga reglerna, aktiverar ett antal IP-adresser på servern Contosooch tar bort en IP-brandväggsregel:
SELECT * FROM sys.firewall_rules ORDER BY name;
Lägg sedan till en IP-brandväggsregel på servernivå.
EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'
Om du vill ta bort en IP-brandväggsregel på servernivå, kör den lagrade proceduren sp_delete_firewall_rule. I följande exempel tas regeln ContosoFirewallRule bort:
EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'
Använda PowerShell för att hantera IP-brandväggsregler på servernivå
Notera
Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. Information om hur du kommer igång med Az PowerShell-modulen finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.
Viktig
PowerShell Azure Resource Manager-modulen (AzureRM) blev avskriven den 29 februari 2024. All framtida utveckling bör använda Az.Sql-modulen. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar. AzureRM-modulen underhålls inte längre eller stöds inte längre. Argumenten för kommandona i Az PowerShell-modulen och i AzureRM-modulerna är i stort sätt identiska. Mer information om deras kompatibilitet finns i Introduktion till den nya Az PowerShell-modulen.
Cmdlet | Nivå | Beskrivning |
---|---|---|
Get-AzSqlServerFirewallRule | Server | Returnerar de aktuella brandväggsreglerna på servernivå |
New-AzSqlServerFirewallRule | Server | Skapar en ny brandväggsregel på servernivå |
Set-AzSqlServerFirewallRule | Server | Uppdaterar egenskaperna för en befintlig brandväggsregel på servernivå |
Remove-AzSqlServerFirewallRule | Server | Tar bort brandväggsregler på servernivå |
I följande exempel används PowerShell för att ange en IP-brandväggsregel på servernivå:
New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
-ServerName $servername `
-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"
Tips
För $servername ange servernamnet och inte det fullständigt kvalificerade DNS-namnet, t.ex. ange mysqldbserver i stället för mysqldbserver.database.windows.net
För PowerShell-exempel i sammanhanget av en snabbstart, se Skapa DB – PowerShell och Skapa en enda databas och konfigurera en servernivås IP-brandväggsregel med hjälp av PowerShell.
Använda CLI för att hantera IP-brandväggsregler på servernivå
Cmdlet | Nivå | Beskrivning |
---|---|---|
az sql server firewall-rule create | Server | Skapar en ip-brandväggsregel för servern |
az sql-server brandväggsregel lista | Server | Visar en lista över IP-brandväggsregler på en server |
az sql server firewall-rule show | Server | Visar information om en IP-brandväggsregel |
az sql server firewall-regel uppdatering | Server | Uppdaterar en IP-brandväggsregel |
az sql server firewall-rule delete | Server | Tar bort en IP-brandväggsregel |
I följande exempel används CLI för att ange en IP-brandväggsregel på servernivå:
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
Tips
För $servername
anger du servernamnet och inte det fullständigt kvalificerade DNS-namnet. Använd till exempel mysqldbserver
i stället för mysqldbserver.database.windows.net
.
För ett CLI-exempel i samband med en snabbstart, se Skapa DB - Azure CLI och Skapa en enkel databas och konfigurera en IP-brandväggsregel på servernivå med Azure CLI.
För Azure Synapse Analytics kan du läsa följande exempel:
Cmdlet | Nivå | Beskrivning |
---|---|---|
az synapse workspace firewall-rule create | Server | Skapa en brandväggsregel |
az synapse workspace firewall-rule ta bort | Server | Ta bort en brandväggsregel |
az synapse workspace firewall-rule list | Server | Visa en lista över alla brandväggsregler |
az synapse workspace brandväggsregel show | Server | Hämta en brandväggsregel |
az synapse workspace firewall-rule update | Server | Uppdatera en brandväggsregel |
az synapse workspace firewall-regel vänta | Server | Placera CLI i vänteläge tills ett villkor för en brandväggsregel uppfylls |
I följande exempel används CLI för att ange en IP-brandväggsregel på servernivå i 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
Använda ett REST-API för att hantera IP-brandväggsregler på servernivå
API | Nivå | Beskrivning |
---|---|---|
Lista brandväggsregler | Server | Visar aktuella IP-brandväggsregler på servernivå |
Skapa eller uppdatera brandväggsregler | Server | Skapar eller uppdaterar IP-brandväggsregler på servernivå |
Ta bort brandväggsregler | Server | Tar bort IP-brandväggsregler på servernivå |
Hämta brandväggsregler | Server | Hämtar IP-brandväggsregler för servernivå |
Felsöka databasbrandväggen
Tänk på följande när åtkomsten till Azure SQL Database inte fungerar som förväntat.
Lokal brandväggskonfiguration:
Innan din dator kan komma åt Azure SQL Database kan du behöva skapa ett brandväggsundantag på din dator för TCP-port 1433. Om du vill upprätta anslutningar inom Azure-molngränsen kan du behöva öppna ytterligare portar. Mer information finns i avsnittet "SQL-databas: utanför vs insidan" i Portar utöver 1433 för ADO.NET 4.5 och Azure SQL-databas.
Nätverksadressöversättning:
På grund av nätverksadressöversättning (NAT) kan IP-adressen som används av datorn för att ansluta till Azure SQL Database skilja sig från IP-adressen i datorns IP-konfigurationsinställningar. Så här visar du IP-adressen som datorn använder för att ansluta till Azure:
- Logga in på portalen.
- Gå till fliken Konfigurera på servern som är värd för databasen.
- Den aktuella klientens IP-adress visas i avsnittet Tillåtna IP-adresser. Välj Lägg till för Tillåtna IP-adresser för att tillåta den här datorn att komma åt servern.
Ändringar i listan över tillåtna har inte börjat gälla än:
Det kan ta upp till fem minuter innan ändringar i Azure SQL Database-brandväggskonfigurationen börjar gälla.
Inloggningen är inte auktoriserad eller så användes ett felaktigt lösenord:
Om en inloggning inte har behörighet på servern eller om lösenordet är felaktigt nekas anslutningen till servern. Att skapa en brandväggsinställning ger klienterna bara en möjlighet att försöka ansluta till din server. Klienten måste fortfarande ange nödvändiga säkerhetsautentiseringsuppgifter. Mer information om hur du förbereder inloggningar finns i Kontrollera och bevilja databasåtkomst.
dynamisk IP-adress:
Om du har en Internetanslutning som använder dynamisk IP-adressering och du har problem med att komma igenom brandväggen kan du prova någon av följande lösningar:
- Fråga internetleverantören om DET IP-adressintervall som har tilldelats till dina klientdatorer som har åtkomst till servern. Lägg till IP-adressintervallet som en IP-brandväggsregel.
- Använd statisk IP-adressering för dina klientdatorer. Lägg till IP-adresserna som IP-brandväggsregler.
Nästa steg
- Bekräfta att företagsnätverksmiljön tillåter inkommande kommunikation från beräknings-IP-adressintervallen (inklusive SQL-intervall) som används av Azure-datacenter. Du kan behöva lägga till dessa IP-adresser i listan över tillåtna adresser. Se IP-intervall för Microsoft Azure-datacenter.
- Se vår snabbstart om att skapa en enkel databas i Azure SQL Database.
- För hjälp med att ansluta till en databas i Azure SQL Database från program med öppen källkod eller program från tredje part, se Snabbstart- och kodexempel för klienter till Azure SQL Database.
- Information om ytterligare portar som du kan behöva öppna finns i avsnittet "SQL Database: Outside vs inside" i Ports beyond 1433 for ADO.NET 4.5 and SQL Database
- En översikt över Azure SQL Database-säkerhet finns i Skydda databasen.