Dela via


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.

konfigurationsdiagram för brandväggen

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 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:

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

  1. 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.

    Skärmbild av inställningen för konfigurerad serverbrandvägg i Azure-portalen.

    Sidan Nätverk för servern öppnas.

  2. 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.

    Skärmbild som visar sidan Nätverk där du kan ange IP-brandväggsregler på servernivå.

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.

  1. 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.

  2. 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 $servernameanger 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:

    1. Logga in på portalen.
    2. Gå till fliken Konfigurera på servern som är värd för databasen.
    3. 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