Dela via


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:

Screenshot of manage server firewall

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.

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