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.
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 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 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:
- i rollen SQL Server-deltagare
- i SQL Security Manager-rollen
- ä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 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
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.
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å från den här sidan väljer du Nätverk på Inställningar-menyn 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, 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 $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
.
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:
- Logga in i portalen.
- Gå till fliken Konfigurera på den server som är värd för din databas.
- 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
- 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.
- 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 finns i Kodexempel för klients snabbstart till Azure SQL Database.
- Information om ytterligare portar som du kan behöva öppna finns i avsnittet "SQL Database: Outside vs inside" i Portar utöver 1433 för ADO.NET 4.5 och SQL Database
- En översikt över Azure SQL Database-säkerhet finns i Skydda din databas.