Implementarea unui firewall pentru baza de date SQL Azure

Finalizat

Atunci când creați un server nou în baza de date Azure SQL sau Azure Synapse Analytics numit mysqlserver, de exemplu, un firewall la nivel de server blochează accesul la punctul final public pentru server (care este accesibil la mysqlserver.database.windows.net). Pentru simplitate, baza de date SQL este utilizată pentru a face referire atât la baza de date SQL, cât și la Azure Synapse Analytics. Acest articol nu se aplică instanței gestionate Azure SQL. Pentru informații despre configurația rețelei, consultați Conectarea aplicației la Instanța gestionată Azure SQL.

Cum funcționează firewallul

Încercările de conexiune de la internet și Azure trebuie să treacă prin firewall înainte ca acestea să ajungă la serverul sau baza de date, așa cum se arată în diagrama următoare.

Diagramă care afișează un exemplu de funcționare a firewallului.

Important

Azure Synapse acceptă doar reguli de firewall IP la nivel de server. Nu acceptă regulile firewallului IP la nivel de bază de date.

Reguli de firewall IP la nivel de server

Aceste reguli permit clienților să acceseze întregul server, adică toate bazele de date gestionate de server. Regulile sunt stocate în baza de date coordonatoare . Numărul maxim de reguli de firewall IP la nivel de server este limitat la 256 pentru un server. Dacă aveți activată setarea Permiteți serviciilor și resurselor Azure să acceseze acest server, aceasta este contorizat ca regulă de firewall unică pentru server.

Puteți configura regulile paravanului de protecție IP la nivel de server utilizând portalul Azure, PowerShell sau instrucțiunile de Transact-SQL.

Notă

Numărul maxim de reguli de firewall IP la nivel de server este limitat la 256 atunci când configurați utilizând portalul Azure.

  • Pentru a utiliza portalul sau PowerShell, trebuie să fiți proprietarul abonamentului sau un colaborator al abonamentului.
  • Pentru a utiliza Transact-SQL, trebuie să vă conectați la baza de date coordonatoare ca conectare principală la nivel de server sau ca administrator Microsoft Entra. (O regulă de firewall IP la nivel de server trebuie creată mai întâi de un utilizator care are permisiuni la nivel Azure.)

Notă

În mod implicit, în timpul creării unui server SQL logic nou din portalul Azure, setarea Permiteți serviciilor și resurselor Azure să acceseze acest server este setată la Nu.

Reguli de firewall IP la nivel de bază de date

Regulile paravanului de protecție IP la nivel de bază de date le permit clienților să acceseze anumite baze de date (securizate). Creați regulile pentru fiecare bază de date (inclusiv baza de date coordonatoare ) și acestea sunt stocate în baza de date individuală.

  • Puteți să creați și să gestionați doar reguli de firewall IP la nivel de bază de date pentru coordonatori și baze de date de utilizator utilizând instrucțiuni Transact-SQL și numai după ce configurați primul firewall la nivel de server.
  • Dacă specificați o zonă de adrese IP în regula paravanului de protecție IP la nivel de bază de date care se află în afara intervalului din regula paravanului de protecție IP la nivel de server, doar clienții care au adrese IP în zona la nivel de bază de date pot accesa baza de date.
  • Valoarea implicită este de până la 256 de reguli de firewall IP la nivel de bază de date pentru o bază de date. Pentru mai multe informații despre configurarea regulilor paravanului de protecție IP la nivel de bază de date, consultați exemplul de mai jos în acest articol și consultați sp_set_database_firewall_rule (Baza de date SQL Azure).

Recomandări pentru setarea regulilor pentru firewall

Vă recomandăm să utilizați regulile firewallului IP la nivel de bază de date ori de câte ori este posibil. Această practică îmbunătățește securitatea și face baza de date mai portabilă. Utilizați regulile firewallului IP la nivel de server pentru administratori. De asemenea, le utilizați atunci când aveți multe baze de date care au aceleași cerințe de acces și nu doriți să configurați fiecare bază de date individual.

Notă

Pentru informații despre bazele de date portabile în contextul continuității activității, consultați Cerințele de autentificare pentru recuperarea în caz de dezastru.

Regulile paravanului de protecție IP la nivel de server versus cele la nivel de bază de date

Utilizatorii unei baze de date trebuie să fie complet izolați de altă bază de date?

Dacă da, utilizați regulile paravanului de protecție IP la nivel de bază de date pentru a acorda acces. Această metodă evită utilizarea regulilor paravanului de protecție IP la nivel de server, care permit accesul prin firewall la toate bazele de date. Asta ar reduce adâncimea apărării tale.

Utilizatorii de la adresele IP au nevoie de acces la toate bazele de date?

Dacă da, utilizați regulile paravanului de protecție IP la nivel de server pentru a reduce de câte ori trebuie să configurați regulile firewallului IP.

Persoana sau echipa care configurează regulile firewallului IP au acces doar prin portalul Azure, PowerShell sau API-ul REST?

În acest caz, trebuie să utilizați reguli de firewall IP la nivel de server. Regulile paravanului de protecție IP la nivel de bază de date pot fi configurate doar prin Transact-SQL.

Persoana sau echipa care configurează regulile paravanului de protecție IP nu au permisiune de nivel înalt la nivelul bazei de date?

În acest caz, utilizați regulile firewallului IP la nivel de server. Aveți nevoie de cel puțin permisiune CONTROL BAZĂ DE DATE la nivel de bază de date pentru a configura regulile firewallului IP la nivel de bază de date prin Transact-SQL.

Persoana sau echipa care configurează sau auditează regulile firewallului IP gestionează central regulile firewallului IP pentru multe (poate sute) de baze de date?

În acest scenariu, cele mai bune practici sunt determinate de necesitățile și mediul dvs. Regulile paravanului de protecție IP la nivel de server pot fi mai ușor de configurat, dar scriptarea poate configura reguli la nivel de bază de date. Și chiar dacă utilizați reguli firewall IP la nivel de server, poate fi necesar să auditați regulile firewallului IP la nivel de bază de date pentru a vedea dacă utilizatorii cu permisiune CONTROL în baza de date creează reguli firewall IP la nivel de bază de date.

Pot utiliza o combinație de reguli pentru firewallul IP la nivel de server și la nivel de bază de date?

Da. Unii utilizatori, cum ar fi administratorii, pot avea nevoie de reguli de firewall IP la nivel de server. Alți utilizatori, cum ar fi utilizatorii unei aplicații bază de date, pot avea nevoie de reguli de firewall IP la nivel de bază de date.

Conexiuni de la internet

Atunci când un computer încearcă să se conecteze la serverul dvs. de pe internet, firewallul verifică mai întâi adresa IP de origine a solicitării în raport cu regulile paravanului de protecție IP la nivel de bază de date pentru baza de date la care solicită conexiunea.

  • Dacă adresa se află într-o zonă specificată în regulile paravanului de protecție IP la nivel de bază de date, conexiunea se acordă bazei de date care conține regula.
  • Dacă adresa nu se află într-o zonă din regulile paravanului de protecție IP la nivel de bază de date, firewallul verifică regulile firewallului IP la nivel de server. Dacă adresa se află într-o zonă care se află în regulile paravanului de protecție IP la nivel de server, se acordă conexiunea. Regulile firewallului IP la nivel de server se aplică tuturor bazelor de date gestionate de server.
  • Dacă adresa nu se află într-o zonă care se află în niciuna dintre regulile paravanului de protecție IP la nivel de bază de date sau la nivel de server, solicitarea de conexiune nu reușește.

Notă

Pentru a accesa baza de date Azure SQL de pe computerul local, asigurați-vă că firewallul din rețea și computerul local permite comunicarea de ieșire în portul TCP 1433.

Conexiuni din interiorul Azure

Pentru a permite aplicațiilor găzduite în Azure să se conecteze la serverul SQL, trebuie activate conexiunile Azure. Pentru a activa conexiunile Azure, trebuie să existe o regulă de firewall cu adrese IP de început și de încheiere setate la 0.0.0.0. Această regulă recomandată se aplică doar la baza de date Azure SQL.

Atunci când o aplicație din Azure încearcă să se conecteze la server, firewallul verifică dacă există conexiuni Azure dacă există această regulă de firewall. Acest lucru poate fi activat direct din panoul portal Azure, comutând setările Permiteți serviciilor și resurselor Azure să acceseze acest server la ACTIVAT din setările Firewalluri și rețele virtuale. Comutarea setării la ON creează o regulă de firewall de intrare pentru IP 0.0.0.0 - 0.0.0.0 denumită AllowAllWindowsAzureIps. Regula poate fi vizualizată în baza de date coordonatoare sys.firewall_rules vizualizare. Utilizați PowerShell sau Azure CLI pentru a crea o regulă de firewall cu adrese IP de început și de sfârșit setate la 0.0.0.0 dacă nu utilizați portalul.

Important

Această opțiune configurează firewallul pentru a permite toate conexiunile din Azure, inclusiv conexiunile din abonamentele altor clienți. Dacă selectați această opțiune, asigurați-vă că permisiunile de conectare și de utilizator limitează accesul doar la utilizatorii autorizați.

Permisiuni

Pentru a putea să creați și să gestionați reguli de firewall IP pentru Azure SQL Server, va trebui să aveți următoarele:

Crearea și gestionarea regulilor de firewall IP

Creați prima setare de firewall la nivel de server utilizând portalul Azure sau programatic, utilizând Azure PowerShell, Azure CLI sau un API REST Azure. Creați și gestionați reguli suplimentare de firewall IP la nivel de server, utilizând aceste metode sau Transact-SQL.

Important

Regulile paravanului de protecție IP la nivel de bază de date pot fi create și gestionate doar utilizând Transact-SQL.

Pentru a îmbunătăți performanța, regulile firewallului IP la nivel de server sunt memorate temporar în cache la nivel de bază de date. Pentru a reîmprospăta memoria cache, consultați DBCC FLUSHAUTHCACHE.

Sfat

Puteți utiliza Auditarea bazelor de date pentru a audita modificările la nivel de server și firewall la nivel de bază de date.

Utilizarea portalului Azure pentru a gestiona regulile firewallului IP la nivel de server

Pentru a seta o regulă de firewall IP la nivel de server în portalul Azure, accesați pagina de prezentare generală pentru baza de date sau serverul dvs.

Sfat

Pentru un tutorial, consultați Crearea unei baze de date utilizând portalul Azure.

Din pagina Prezentare generală a bazei de date

  1. Pentru a seta o regulă de firewall IP la nivel de server din pagina prezentare generală a bazei de date, selectați Setare firewall server pe bara de instrumente, așa cum se afișează următoarea imagine.

    Captură de ecran afișând un exemplu de bară de instrumente cu setările paravanului de protecție al bazei de date SQL.

    Se deschide pagina Rețea pentru server.

  2. Adăugați o regulă în secțiunea Reguli firewall pentru a adăuga adresa IP a computerului pe care îl utilizați, apoi selectați Salvare. Se creează o regulă de firewall IP la nivel de server pentru adresa IP curentă.

    Captură de ecran afișând un exemplu de pagină de rețea sql server.

Din pagina Prezentare generală a serverului

Se deschide pagina de prezentare generală a serverului. Aceasta afișează numele serverului complet calificat (cum ar fi mynewserver20170403.database.windows.net) și oferă opțiuni pentru configurare suplimentară.

  1. Pentru a seta o regulă la nivel de server de pe această pagină, selectați Rețea din meniul Setări din partea stângă.
  2. Adăugați o regulă în secțiunea Reguli firewall pentru a adăuga adresa IP a computerului pe care îl utilizați, apoi selectați Salvare. Se creează o regulă de firewall IP la nivel de server pentru adresa IP curentă.

Utilizarea Transact-SQL pentru a gestiona regulile firewallului IP

Extindeți tabelul

Vizualizarea catalog sau procedura stocată nivel Descriere
sys.firewall_rules Server Afișează regulile curente ale firewallului IP la nivel de server
sp_set_firewall_rule Server Creează sau actualizează regulile firewallului IP la nivel de server
sp_delete_firewall_rule Server Elimină regulile firewallului IP la nivel de server
sys.database_firewall_rules Bază de date Afișează regulile curente ale paravanului de protecție IP la nivel de bază de date
sp_set_database_firewall_rule Bază de date Creează sau actualizează regulile firewallului IP la nivel de bază de date
sp_delete_database_firewall_rule Bazele Elimină regulile firewallului IP la nivel de bază de date

Următorul exemplu revizuiește regulile existente, permite o serie de adrese IP pe serverul Contoso și șterge o regulă de firewall IP:

SQL

SELECT * FROM sys.firewall_rules ORDER BY name;

În continuare, adăugați o regulă de firewall IP la nivel de server.

SQL

SELECT * FROM sys.firewall_rules ORDER BY name;

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end\_ip\_address = '192,168.1.10'

Pentru a șterge o regulă de firewall IP la nivel de server, executați procedura sp_delete_firewall_rule stocată. Următorul exemplu șterge regula ContosoFirewallRule:

SQL

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Utilizarea PowerShell pentru a gestiona regulile firewallului IP la nivel de server

Notă

Acest exemplu utilizează modulul Azure Az PowerShell, care este modulul PowerShell recomandat pentru interacțiunea cu Azure. Pentru a începe lucrul cu modulul Az PowerShell, consultați Instalarea Azure PowerShell. Pentru a afla cum să migrați la modulul Az PowerShell, consultați Migrarea Azure PowerShell de la AzureRM la Az.

Important

Modulul PowerShell Azure Resource Manager (AzureRM) a fost perimat pe 29 februarie 2024. Toate dezvoltarea viitoare ar trebui să utilizeze modulul Az.Sql. Utilizatorii sunt sfătuiți să migreze de la AzureRM la modulul Az PowerShell pentru a asigura asistență și actualizări continue. Modulul AzureRM nu mai este întreținut sau acceptat. Argumentele pentru comenzile din modulul Az PowerShell și din modulele AzureRM sunt substanțial identice. Pentru mai multe informații despre compatibilitatea lor, consultați Prezentarea noului modul Az PowerShell.

Extindeți tabelul

Cmdlet nivel Descriere
Get-AzSqlServerFirewallRule Server Returnează regulile curente ale firewallului la nivel de server
New-AzSqlServerFirewallRule Server Creează o nouă regulă de firewall la nivel de server
Set-AzSqlServerFirewallRule Server Actualizează proprietățile unei reguli de firewall la nivel de server existente
Remove-AzSqlServerFirewallRule Server Elimină regulile paravanului de protecție la nivel de server

Următorul exemplu utilizează PowerShell pentru a seta o regulă de firewall IP la nivel de server:

PowerShell

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `-ServerName $servername `-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Sfat

Pentru $servername specificați numele serverului și nu numele DNS complet calificat, de exemplu, specificați serverul mysqldbserver în loc de mysqldbserver.database.windows.net. Pentru exemple PowerShell în contextul unui ghid de pornire rapidă, consultați Crearea DB - PowerShell și Crearea unei singure baze de date și configurarea unei reguli de firewall IP la nivel de server utilizând PowerShell.

Utilizarea CLI pentru a gestiona regulile firewallului IP la nivel de server

Extindeți tabelul

Cmdlet nivel Descriere
az sql server firewall-rule create Server Creează o regulă de firewall IP server
az sql server firewall-rule list Server Listează regulile paravanului de protecție IP pe un server
az sql server firewall-rule show Server Afișează detaliile unei reguli de firewall IP
az sql server-rule update Server Actualizează o regulă de firewall IP
az sql Server firewall-rule delete Server Șterge o regulă de firewall IP

Următorul exemplu utilizează CLI pentru a seta o regulă de firewall IP la nivel de server:

Azure CLI



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


Sfat

Pentru $servername, specificați numele serverului și nu numele DNS complet calificat. De exemplu, utilizați serverul mysqldb în loc de mysqldbserver.database.windows.net. Pentru un exemplu DE CLI în contextul unui ghid de pornire rapidă, consultați Crearea DB - Azure CLI și Crearea unei singure baze de date și configurarea unei reguli de firewall IP la nivel de server utilizând Azure CLI. Pentru Azure Synapse Analytics, consultați următoarele exemple:

Extindeți tabelul

Cmdlet nivel Descriere
az synapse workspace-rule create Server Crearea unei reguli de firewall
az synapse workspace firewall-rule delete Server Ștergerea unei reguli de firewall
az synapse workspace-rule list Server Listați toate regulile paravanului de protecție
az synapse workspace-rule show Server Obțineți o regulă de firewall
az synapse workspace-rule update Server Actualizarea unei reguli de firewall
az synapse workspace-rule wait Server Plasați CLI-ul într-o stare de așteptare până când este îndeplinită o condiție a unei reguli de firewall

Următorul exemplu utilizează CLI pentru a seta o regulă de firewall IP la nivel de server în Azure Synapse:

Azure CLI

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

Utilizarea unui API REST pentru a gestiona regulile firewallului IP la nivel de server

Extindeți tabelul

API nivel Descriere
Reguli paravan de protecție listă Server Afișează regulile curente ale firewallului IP la nivel de server
Crearea sau actualizarea regulilor pentru firewall Server Creează sau actualizează regulile firewallului IP la nivel de server
Ștergerea regulilor pentru firewall Server Elimină regulile firewallului IP la nivel de server
Obțineți reguli pentru firewall Server Obține reguli firewall IP la nivel de server

Depanarea firewallului bazei de date

Luați în considerare următoarele puncte atunci când accesul la baza de date SQL Azure nu se comportă așa cum vă așteptați.

  • Configurație paravan de protecție locală: Înainte ca computerul să poată accesa baza de date Azure SQL, poate fi necesar să creați o excepție de firewall pe computer pentru portul TCP 1433. Pentru a crea conexiuni în interiorul limitei cloud Azure, poate fi necesar să deschideți porturi suplimentare. Pentru mai multe informații, consultați secțiunea "Bază de date SQL: Exterior versus interior" din Porturi dincolo de 1433 pentru ADO.NET 4.5 și Baza de date SQL Azure.

  • Traducerea adresei de rețea: Din cauza traducerii adresei de rețea (NAT), adresa IP utilizată de computer pentru a vă conecta la baza de date SQL Azure poate fi diferită de adresa IP din setările de configurare IP ale computerului. Pentru a vizualiza adresa IP pe care o utilizează computerul pentru a vă conecta la Azure:

    1. Conectați-vă la portal.
    2. Accesați fila Configurare de pe serverul care găzduiește baza de date.
    3. Adresa IP a clientului curent se afișează în secțiunea Adrese IP permise. Selectați Adăugare pentru adrese IP permise pentru a permite acestui computer să acceseze serverul.
  • Modificările listei de permisiuni nu au avut efect încă: pot exista până la o întârziere de până la cinci minute pentru ca modificările configurației paravanului de protecție a bazei de date SQL Azure să aibă efect.

  • Conectarea nu este autorizată sau s-a utilizat o parolă incorectă: dacă o conectare nu are permisiuni pe server sau parola este incorectă, conexiunea la server este refuzată. Crearea unei setări de firewall oferă clienților posibilitatea de a încerca să se conecteze la server. Clientul trebuie să furnizeze în continuare acreditările de securitate necesare. Pentru mai multe informații despre pregătirea conectărilor, consultați Controlul și acordarea accesului la baza de date.

  • Adresă IP dinamică: dacă aveți o conexiune la internet care utilizează adrese IP dinamice și aveți probleme la accesarea firewallului, încercați una dintre următoarele soluții:

    • Solicitați furnizorului de servicii internet intervalul de adrese IP atribuit computerelor client care accesează serverul. Adăugați acea zonă de adrese IP ca regulă de firewall IP.
    • Obțineți adrese IP statice în schimb pentru computerele client. Adăugați adresele IP ca reguli de firewall IP.