Nätverksåtkomstkontroller för Azure SQL Database och Azure Synapse Analytics
Gäller för:Azure SQL DatabaseAzure Synapse Analytics (endast dedikerade SQL-pooler)
När du skapar en logisk server från Azure-portalen för Azure SQL Database och Azure Synapse Analytics blir resultatet en offentlig slutpunkt i formatet yourservername.database.windows.net.
Du kan använda följande nätverksåtkomstkontroller för att selektivt tillåta åtkomst till en databas via den offentliga slutpunkten:
- Tillåt att Azure-tjänster och resurser får åtkomst till den här servern: När det är aktiverat kan andra resurser inom Azure-gränsen, till exempel en virtuell Azure-dator, komma åt SQL Database
- IP-brandväggsregler: Använd den här funktionen för att uttryckligen tillåta anslutningar från en specifik IP-adress, till exempel från lokala datorer
Du kan också tillåta privat åtkomst till databasen från virtuella nätverk via:
- Brandväggsregler för virtuellt nätverk: Använd den här funktionen för att tillåta trafik från ett specifikt virtuellt nätverk inom Azure-gränsen
- Private Link: Använd den här funktionen för att skapa en privat slutpunkt för logisk server i Azure i ett specifikt virtuellt nätverk
Viktigt!
Den här artikeln gäller inte för SQL Managed Instance. Mer information om nätverkskonfigurationen finns i Ansluta till Azure SQL Managed Instance .
Se videon nedan för en övergripande förklaring av dessa åtkomstkontroller och vad de gör:
Tillåt Azure-tjänster
Som standard när du skapar en ny logisk server från Azure-portalen är Tillåt Azure-tjänster och resurser att komma åt den här servern avmarkerat och inte aktiverat. Den här inställningen visas när anslutningar tillåts använda slutpunkten för offentliga tjänster.
Du kan också ändra den här inställningen via inställningen Nätverk när den logiska servern har skapats på följande sätt:
När Tillåt Azure-tjänster och resurser att komma åt den här servern är aktiverat tillåter servern kommunikation från alla resurser inom Azure-gränsen, som kanske eller kanske inte ingår i din prenumeration.
I många fall är det mer tillåtande att aktivera inställningen än vad de flesta kunder vill ha. Du kanske vill avmarkera den här inställningen och ersätta den med mer restriktiva IP-brandväggsregler eller brandväggsregler för virtuella nätverk.
Detta påverkar dock följande funktioner som körs på virtuella datorer i Azure som inte ingår i ditt virtuella nätverk och därmed ansluter till databasen via en Azure IP-adress:
Import/export-tjänst
Import Export Service fungerar inte när Tillåt Azure-tjänster och resurser att komma åt den här servern inte är aktiverat. Du kan dock kringgå problemet genom att manuellt köra SqlPackage från en virtuell Azure-dator eller utföra exporten direkt i koden med hjälp av DACFx-API:et.
Datasynkronisering
Om du vill använda funktionen Datasynkronisering med Tillåt att Azure-tjänster och resurser får åtkomst till den här servern inte är aktiverade måste du skapa enskilda brandväggsregelposter för att lägga till IP-adresser från Sql-tjänsttaggen för den region som är värd för hubbdatabasen. Lägg till dessa brandväggsregler på servernivå till servrar som är värdar för både hubb - och medlemsdatabaser (som kan finnas i olika regioner)
Använd följande PowerShell-skript för att generera IP-adresser som motsvarar SQL-tjänsttaggen för regionen USA, västra
PS C:\> $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\> $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27
Dricks
Get-AzNetworkServiceTag returnerar det globala intervallet för SQL Service-taggen trots att parametern Location har angetts. Se till att filtrera den till den region som är värd för den hubbdatabas som används av synkroniseringsgruppen
Observera att utdata från PowerShell-skriptet finns i CIDR-notation (Classless Inter-Domain Routing). Detta måste konverteras till ett format med start- och slut-IP-adress med hjälp av Get-IPrangeStartEnd.ps1 så här:
PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start end
----- ---
52.229.17.64 52.229.17.127
Du kan använda det här ytterligare PowerShell-skriptet för att konvertera alla IP-adresser från CIDR till start- och slut-IP-adressformat.
PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start end
----- ---
13.86.216.0 13.86.216.127
13.86.216.128 13.86.216.191
13.86.216.192 13.86.216.223
Nu kan du lägga till dessa som distinkta brandväggsregler och sedan inaktivera inställningen Tillåt Azure-tjänster och resurser att komma åt den här servern.
IP-brandväggsregler
Ip-baserad brandvägg är en funktion i den logiska servern i Azure som förhindrar all åtkomst till servern tills du uttryckligen lägger till IP-adresser för klientdatorerna.
Brandväggsregler för virtuella nätverk
Förutom IP-regler kan du definiera regler för virtuella nätverk i serverbrandväggen. Mer information finns i Tjänstslutpunkter och regler för virtuellt nätverk för Azure SQL Database.
Terminologi för Azure-nätverk
Tänk på följande Azure-nätverksvillkor när du utforskar brandväggsregler för virtuellt nätverk
Virtuellt nätverk: Du kan ha virtuella nätverk associerade med din Azure-prenumeration
Undernät: Ett virtuellt nätverk innehåller undernät. Alla virtuella Azure-datorer som du har tilldelats till undernät. Ett undernät kan innehålla flera virtuella datorer eller andra beräkningsnoder. Beräkningsnoder utanför det virtuella nätverket kan inte komma åt ditt virtuella nätverk om du inte konfigurerar säkerheten för att tillåta åtkomst.
Tjänstslutpunkt för virtuellt nätverk: En tjänstslutpunkt för virtuellt nätverk är ett undernät vars egenskapsvärden innehåller ett eller flera formella Namn på Azure-tjänsttyp. I den här artikeln är vi intresserade av typnamnet för Microsoft.Sql, som refererar till Azure-tjänsten med namnet SQL Database.
Regel för virtuellt nätverk: En regel för virtuellt nätverk för servern är ett undernät som visas i åtkomstkontrollistan (ACL) på servern. Om du vill vara i ACL:en för databasen i SQL Database måste undernätet innehålla namnet på typen Microsoft.Sql . En regel för virtuellt nätverk uppmanar servern att acceptera kommunikation från varje nod som finns i undernätet.
IP- eller brandväggsregler för virtuellt nätverk
Med Azure SQL Database-brandväggen kan du ange IP-adressintervall från vilka kommunikationer accepteras till SQL Database. Den här metoden passar bra för stabila IP-adresser som ligger utanför det privata Azure-nätverket. Virtuella datorer i det privata Azure-nätverket konfigureras dock med dynamiska IP-adresser. Dynamiska IP-adresser kan ändras när den virtuella datorn startas om och i sin tur ogiltigförklara den IP-baserade brandväggsregeln. Det vore dåraktigt att ange en dynamisk IP-adress i en brandväggsregel i en produktionsmiljö.
Du kan kringgå den här begränsningen genom att hämta en statisk IP-adress för den virtuella datorn. Mer information finns i Skapa en virtuell dator med en statisk offentlig IP-adress med hjälp av Azure-portalen. Den statiska IP-metoden kan dock bli svår att hantera, och den är kostsam när den görs i stor skala.
Regler för virtuella nätverk är enklare alternativ för att upprätta och hantera åtkomst från ett specifikt undernät som innehåller dina virtuella datorer.
Kommentar
Du kan ännu inte ha SQL Database i ett undernät. Om servern var en nod i ett undernät i det virtuella nätverket kan alla noder i det virtuella nätverket kommunicera med din SQL Database. I det här fallet kan dina virtuella datorer kommunicera med SQL Database utan att behöva några regler för virtuellt nätverk eller IP-regler.
Private Link
Med Private Link kan du ansluta till en server via en privat slutpunkt. En privat slutpunkt är en privat IP-adress i ett specifikt virtuellt nätverk och undernät.
Nästa steg
En snabbstart om hur du skapar en IP-brandväggsregel på servernivå finns i Skapa en databas i SQL Database.
En snabbstart om hur du skapar en brandväggsregel för virtuella nätverk på servernivå finns i Tjänstslutpunkter och regler för virtuellt nätverk för Azure SQL Database.
Hjälp med att ansluta till en databas i SQL Database från öppen källkod eller program från tredje part finns i Kodexempel för klient snabbstart till 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-Anslut ivity finns i Azure SQL Anslut ivity Architecture
En översikt över Azure SQL Database-säkerhet finns i Skydda din databas