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 mysqlserver blockerar 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 Anslut ditt program till Azure SQL Managed Instance.

Kommentar

Microsoft Entra-ID är det nya namnet för Azure Active Directory (Azure AD). Vi uppdaterar dokumentationen just nu.

Så här fungerar brandväggen

Anslut ionsförsök från Internet och Azure måste passera genom brandväggen innan de når din server eller databas, vilket visas i följande diagram.

Firewall configuration diagram

Viktigt!

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 att klienter kan komma åt hela servern, det vill säga alla databaser som hanteras av servern. Reglerna lagras i huvuddatabasen. Det maximala antalet IP-brandväggsregler på servernivå är begränsat till 128 för en server. Om du har aktiverat inställningen Tillåt Azure-tjänster och resurser att få åtkomst till den här servern räknas detta som en enskild brandväggsregel för servern.

Du kan konfigurera IP-brandväggsregler på servernivå med hjälp av Azure-portalen, PowerShell eller Transact-SQL-instruktioner.

Kommentar

Det maximala antalet IP-brandväggsregler på servernivå är begränsat till 128 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 huvuddatabasen som huvudkontoinloggning 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å.)

Kommentar

Som standard är inställningen Tillåt Azure-tjänster och resurser att komma åt den här serverinställningen inställd på Nej när en ny logisk SQL-server skapas från Azure-portalen.

IP-brandväggsregler på databasnivå

IP-brandväggsregler på databasnivå gör att klienter kan 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-uttryck 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 brandväggsregeln på servernivå kan endast klienter som har IP-adresser som ligger i intervallet som angetts för databasnivån 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 din databas 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.

Kommentar

Information om portabla databaser i kontexten för företagskontinuitet finns i Autentiseringskrav för haveriberedskap.

IP-brandväggsregler på servernivå kontra databasnivå

Ska användare av en databas vara helt isolerade från en annan databas?

Om ja anvä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 ja anvä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 kontrolldatabasbehö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 BEHÖRIGHETSKONTROLL i 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å.

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

Kommentar

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.

Anslut ions 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 Portal-bladet genom att växla inställningarna Tillåt Azure-tjänster och resurser att komma åt 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 databasen master 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.

Viktigt!

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 ha 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 CLI eller ett Azure REST API. Du skapar och hanterar ytterligare IP-brandväggsregler på servernivå med hjälp av dessa metoder eller Transact-SQL.

Viktigt!

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å. Information om hur du uppdaterar cacheminnet finns i DBCC FLUSHAUTHCACHE.

Dricks

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.

Dricks

En självstudiekurs finns i Skapa en databas med hjälp av 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ägg i verktygsfältet, som följande bild visar.

    Screenshot of the set server firewall setting in the Azure portal.

    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.

    Screenshot shows the Networking page where you can set the server-level IP firewall rules.

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å från den här sidan väljer du NätverkInställningar-menyn 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, ett intervall med IP-adresser på servern Contoso aktiveras och en IP-brandväggsregel tas bort:

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 du den sp_delete_firewall_rule lagrade proceduren. 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å

Kommentar

Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Viktigt!

PowerShell Azure Resource Manager-modulen stöds fortfarande av Azure SQL Database, men all utveckling gäller nu för Az.Sql-modulen. Dessa cmdletar finns i AzureRM.Sql. Argumenten för kommandona i Az- och AzureRm-modulerna är i stort sätt identiska.

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"

Dricks

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

PowerShell-exempel i kontexten för en snabbstart finns i Skapa DB – PowerShell och Skapa en enskild databas och konfigurera en IP-brandväggsregel på servernivå 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 firewall-rule list 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-rule update Server Uppdateringar 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

Dricks

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.

Ett CLI-exempel i kontexten för en snabbstart finns i Skapa DB – Azure CLI och Skapa en enkel databas och konfigurera en IP-brandväggsregel på servernivå med hjälp av 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 delete Server Ta bort en brandväggsregel
az synapse workspace firewall-rule list Server Visa en lista över alla brandväggsregler
az synapse workspace firewall-rule show Server Hämta en brandväggsregel
az synapse workspace firewall-rule update Server Uppdatera en brandväggsregel
az synapse workspace firewall-rule wait 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 på 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 datorn kan komma åt Azure SQL Database kan du behöva skapa ett brandväggsfel på datorn 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 Database: Outside vs inside" i Portar utöver 1433 för ADO.NET 4.5 och Azure SQL Database.

  • Översättning av nätverksadress:

    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 i portalen.
    2. Gå till fliken Konfigurera på den server som är värd för din databas.
    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. Om du skapar en brandväggsinställning kan klienterna bara försöka ansluta till servern. 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:

    • Be internetleverantören om det IP-adressintervall som har tilldelats till dina klientdatorer som får åtkomst till servern. Lägg till IP-adressintervallet som en IP-brandväggsregel.
    • Hämta statisk IP-adressering i stället för dina klientdatorer. Lägg till IP-adresserna som IP-brandväggsregler.

Nästa steg