pravidla IP firewallu pro Azure SQL Database a Azure Synapse

Applies to:Azure SQL DatabaseAzure Synapse Analytics

Když vytvoříte nový server v Azure SQL Database nebo Azure Synapse Analytics s názvem mysqlserver, například brána firewall na úrovni serveru blokuje veškerý přístup k veřejnému koncovému bodu pro server (který je přístupný na mysqlserver.database.windows.net). Pro zjednodušení se SQL Database používá jako označení jak pro SQL Database, tak i pro Azure Synapse Analytics. Tento článek neplatí pro Azure SQL Managed Instance. Informace o konfiguraci sítě najdete v tématu Pojení aplikace k Azure SQL Managed Instance.

Poznámka:

Microsoft Entra ID se dříve označovala jako Azure Active Directory (Azure AD).

Jak funguje brána firewall

Pokusy o připojení z internetu a Azure musí projít firewallem, než se dostanou k vašemu serveru nebo databázi, jak ukazuje následující diagram.

Diagram brány firewall Azure SQL Database.

Důležité

Azure Synapse podporuje pouze pravidla brány firewall protokolu IP na úrovni serveru. Nepodporuje pravidla brány firewall protokolu IP na úrovni databáze.

Pravidla firewallu protokolu IP na úrovni serveru

Tato pravidla umožňují klientům přistupovat k celému serveru, to znamená ke všem databázím, které server spravuje. Pravidla jsou uložena master v databázi. Maximální počet pravidel brány firewall protokolu IP na úrovni serveru je omezen na 256 pro server. Pokud máte povolené nastavení Povolit služby a prostředky Azure pro přístup k tomuto serveru, počítá se to jako jedno pravidlo brány firewall pro server.

Pravidla brány firewall protokolu IP na úrovni serveru můžete nakonfigurovat pomocí Azure portálu, PowerShellu nebo příkazů Transact-SQL.

Poznámka:

Maximální počet pravidel brány firewall protokolu IP na úrovni serveru je při konfiguraci pomocí portálu Azure omezen na 256.

  • Pokud chcete použít portál nebo PowerShell, musíte být vlastníkem předplatného nebo přispěvatelem předplatného.
  • Pokud chcete použít Transact-SQL, musíte se připojit k databázi master jako hlavní přihlášení na úrovni serveru nebo jako správce Microsoft Entra. (Pravidlo brány firewall IP na úrovni serveru musí nejprve vytvořit uživatel, který má oprávnění na úrovni Azure.)

Poznámka:

Ve výchozím nastavení je při vytváření nového logického SQL serveru z portálu Azure nastavení Povolit Azure služby a prostředky pro přístup k tomuto serveru nastaveno na Ne.

Pravidla firewallu IP na úrovni databáze

Pravidla firewallu protokolu IP na úrovni databáze umožňují klientům přistupovat k určitým (zabezpečeným) databázím. Vytvoříte pravidla pro každou databázi (včetně master databáze) a uložíte je do jednotlivých databází.

  • Pravidla brány firewall IP na úrovni databáze můžete spravovat a vytvářet pouze pomocí příkazů Transact-SQL pro master a uživatelské databáze a až po konfiguraci první brány firewall na úrovni serveru.
  • Pokud v pravidlu firewallu protokolu IP na úrovni databáze zadáte rozsah IP adres, který je mimo rozsah v pravidlu firewallu protokolu IP na úrovni serveru, budou mít k dané databázi přístup pouze klienti, jejichž IP adresa je v rozsahu na úrovni databáze.
  • Výchozí hodnota je až 256 pravidel brány firewall protokolu IP na úrovni databáze. Další informace o konfiguraci pravidel brány firewall protokolu IP na úrovni databáze najdete v příkladu dále v tomto článku a podívejte se na sp_set_database_firewall_rule (Azure SQL Database).

Doporučení pro nastavení pravidel brány firewall

Kdykoli je to možné, používejte pravidla firewall na úrovni databáze pro protokol IP. Tento přístup zvyšuje zabezpečení a zlepšuje přenositelnost databází. Použijte pravidla firewallu na úrovni serveru pro správce. Použijte je také v případě, že máte mnoho databází se stejnými požadavky na přístup a nechcete konfigurovat každou databázi jednotlivě.

Poznámka:

Informace o přenosných databázích v kontextu kontinuity podnikových procesů najdete v tématu Konfigurování a správa zabezpečení Azure SQL Database pro geografické obnovení nebo převzetí služeb při selhání.

Porovnání pravidel firewallu protokolu IP na úrovni serveru a na úrovni databáze

Mají být uživatelé jedné databáze plně izolovaní od jiné databáze?

Pokud ano, použijte pravidla brány firewall IP na úrovni databáze k udělení přístupu. Tato metoda zabraňuje použití pravidel firewallu na úrovni IP serveru, která umožňují přístup přes bránu firewall ke všem databázím. Tím by se snížila hloubka vaší obrany.

Potřebují uživatelé na IP adresách přístup ke všem databázím?

Pokud ano, pomocí pravidel brány firewall protokolu IP na úrovni serveru snižte počet, kolikrát musíte nakonfigurovat pravidla brány firewall protokolu IP.

Má osoba nebo tým, který konfiguruje pravidla IP firewallu, přístup pouze prostřednictvím portálu Azure, PowerShellu nebo rozhraní REST API?

Pokud ano, musíte použít firewallová pravidla IP na úrovni serveru. Pravidla brány firewall protokolu IP na úrovni databáze je možné nakonfigurovat pouze prostřednictvím Transact-SQL.

Je osobě nebo týmu, který konfiguruje pravidla brány firewall protokolu IP, zakázáno mít vysoká oprávnění na úrovni databáze?

Pokud ano, použijte pravidla pro firewall IP na úrovni serveru. K nakonfigurování pravidel IP firewallu na úrovni databáze prostřednictvím Transact-SQL potřebujete alespoň oprávnění CONTROL DATABASE.

Spravuje osoba nebo tým, který konfiguruje nebo audituje pravidla brány firewall protokolu IP, tato pravidla centrálně pro mnoho databází (možná stovky)?

V tomto scénáři jsou osvědčené postupy určeny vašimi potřebami a prostředím. Pravidla brány firewall protokolu IP na úrovni serveru můžou být jednodušší, ale skriptování může konfigurovat pravidla na úrovni databáze. A i když používáte IP firewall pravidla na úrovni serveru, možná budete muset auditovat IP firewall pravidla na úrovni databáze, abyste zjistili, zda uživatelé s oprávněním CONTROL na databázi vytvářejí pravidla brány firewall na úrovni databáze.

Můžu použít kombinaci pravidel brány firewall protokolu IP na úrovni serveru a databáze?

Ano. Někteří uživatelé, například správci, můžou potřebovat pravidla brány firewall protokolu IP na úrovni serveru. Jiní uživatelé, například uživatelé databázové aplikace, mohou potřebovat pravidla brány firewall protokolu IP na úrovni databáze.

Připojení z internetu

Když se počítač pokusí připojit k vašemu serveru z internetu, brána firewall nejprve zkontroluje původní IP adresu požadavku podle pravidel firewallu IP adres na úrovni databáze pro tu databázi, k níž se připojení snaží navázat.

  • Pokud je adresa v rozsahu určeném IP pravidly brány firewall na úrovni databáze, bude připojení umožněno k databázi, která toto pravidlo obsahuje.
  • Pokud adresa není v rozsahu IP pravidel na databázové úrovni, brána firewall zkontroluje IP pravidla na serverové úrovni. Pokud je adresa v rozsahu, který je stanoven v pravidlech serverové IP brány firewall, bude připojení povoleno. Pravidla brány firewall protokolu IP na úrovni serveru platí pro všechny databáze spravované serverem.
  • Pokud adresa není zahrnuta v žádném z pravidel firewallu IP na úrovni databáze nebo serveru, požadavek na připojení selže.

Poznámka:

Pokud chcete získat přístup k Azure SQL Database z místního počítače, ujistěte se, že brána firewall ve vašem síťovém prostředí a na místním počítači umožňuje odchozí komunikaci na portu TCP 1433.

Připojení z Azure

Pokud chcete aplikacím hostovaným uvnitř Azure povolit připojení k SQL Serveru, musíte povolit připojení Azure. Uděláte to tak, že vytvoříte pravidlo brány firewall s počátečními a koncovými IP adresami nastavenými na 0.0.0.0. Toto pravidlo platí jenom pro Azure SQL Database.

Když se aplikace z Azure pokusí připojit k serveru, brána firewall kontroluje, zda jsou připojení z Azure povolená ověřením existence tohoto pravidla brány firewall. To můžete zapnout přímo v podokně portálu Azure přepnutím povolit Azure služby a prostředky pro přístup k tomuto serveru na ON v nastavení firewally a virtuální sítě. Pokud je nastavení přepnuto na ZAPNUTO, vytvoří se příchozí pravidlo brány firewall pro IP rozsah 0.0.0.0 – 0.0.0.0 s názvem AllowAllWindowsAzureIps. Pravidlo můžete zobrazit v zobrazení databáze mastersys.firewall_rules. Pomocí PowerShellu nebo Azure CLI vytvořte pravidlo brány firewall s počátečními a koncovými IP adresami nastavenými na 0.0.0.0, pokud nepoužíváte portál.

Výstraha

Povolením této možnosti povolíte připojení ze služeb all Azure včding služeb spuštěných v předplatných jiných zákazníků. Toto pravidlo neomezuje přístup k vašemu předplatnému nebo skupině prostředků – jakýkoli Azure prostředek s odchozím připojením k Azure SQL Database se může připojit. Když toto nastavení povolíte, ujistěte se, že vaše přihlašovací a uživatelská oprávnění omezují přístup pouze na oprávněné uživatele.

Následující služby Azure běžně používají toto pravidlo pro připojení k Azure SQL Database:

  • Azure App Service a Azure Functions
  • Azure Data Factory
  • Azure Stream Analytics
  • Azure Logic Apps
  • Azure Power BI
  • Azure AI services

Pokud chcete zvýšit zabezpečení, zvažte použití koncových bodů služby virtuální sítě nebo privátních koncových bodů místo pravidla AllowAllWindowsAzureIps . Tyto alternativy omezují připojení ke konkrétním podsítím nebo privátním sítím místo toho, aby povolily všechny Azure IP adresy.

Oprávnění

Pokud chcete vytvořit a spravovat pravidla firewallu protokolu IP pro azure SQL Server, musíte mít jednu z následujících rolí:

Vytváření a správa pravidel firewallu protokolu IP

První nastavení brány firewall na úrovni serveru vytvoříte pomocí portálu Azure nebo programově pomocí rozhraní Azure PowerShell, Azure CLI nebo Azure REST API. Pomocí těchto metod nebo Transact-SQL můžete vytvářet a spravovat další pravidla brány firewall protokolu IP na úrovni serveru.

Důležité

Pravidla brány firewall protokolu IP na úrovni databáze je možné vytvářet a spravovat pouze pomocí Transact-SQL.

Pro zvýšení výkonu se pravidla firewallu protokolu IP na úrovni serveru dočasně ukládají do mezipaměti na úrovni databáze. Pokud chcete mezipaměť aktualizovat, použijte příkaz DBCC FLUSHAUTHCACHE.

Návod

K auditování změn brány firewall na úrovni serveru a databáze můžete použít Auditing pro Azure SQL Database a Azure Synapse Analytics.

** Použijte portál Azure ke správě pravidel IP brány firewall na úrovni serveru

Pokud chcete nastavit pravidlo brány firewall protokolu IP na úrovni serveru na portálu Azure, přejděte na stránku přehledu vaší databáze nebo serveru.

Ze stránky přehledu databáze

  1. Pokud chcete nastavit pravidlo brány firewall protokolu IP na úrovni serveru na stránce přehledu databáze, vyberte Nastavit bránu firewall serveru na panelu nástrojů, jak ukazuje následující obrázek.

    Snímek obrazovky nastavení brány firewall serveru v Azure portálu.

    Otevře se stránka Sítě pro server.

  2. Do části Pravidla brány firewall přidejte pravidlo pro přidání IP adresy počítače, který používáte, a pak vyberte Uložit. Pravidlo brány firewall IP na úrovni serveru je vytvořeno pro vaši aktuální IP adresu.

    Snímek obrazovky se stránkou Sítě, kde můžete nastavit pravidla brány firewall protokolu IP na úrovni serveru

Ze stránky přehledu serveru

Otevře se stránka přehledu pro váš server. Zobrazuje plně kvalifikovaný název serveru (například mynewserver20170403.database.windows.net) a poskytuje možnosti pro další konfiguraci.

  1. Chcete-li nastavit pravidlo na úrovni serveru z této stránky, vyberte v nabídce Nastavení na levé straně možnost Sítě.

  2. Do části Pravidla brány firewall přidejte pravidlo pro přidání IP adresy počítače, který používáte, a pak vyberte Uložit. Pravidlo brány firewall IP na úrovni serveru je vytvořeno pro vaši aktuální IP adresu.

Použití Transact-SQL ke správě pravidel brány firewall protokolu IP

Zobrazení katalogu nebo uložená procedura Úroveň Popis
sys.firewall_rules počítačový server Zobrazí aktuální pravidla brány firewall protokolu IP na úrovni serveru.
sp_set_firewall_rule počítačový server Vytvoří nebo aktualizuje pravidla brány firewall protokolu IP na úrovni serveru.
sp_delete_firewall_rule počítačový server Na úrovni serveru odebere pravidla brány firewall IP.
sys.database_firewall_rules Databáze Zobrazí aktuální pravidla brány firewall protokolu IP na úrovni databáze.
sp_set_database_firewall_rule Databáze Vytvoří nebo aktualizuje pravidla brány firewall IP na úrovni databáze.
sp_delete_database_firewall_rule Databáze Na úrovni databáze odebere pravidla brány firewall protokolu IP.

Následující příklad zkontroluje stávající pravidla, aktivuje rozsah IP adres na serveru Contoso a odstraní pravidlo brány firewall IP.

SELECT * FROM sys.firewall_rules ORDER BY name;

Dále přidejte pravidlo brány firewall protokolu IP na úrovni serveru.

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

Pokud chcete odstranit pravidlo brány firewall protokolu IP na úrovni serveru, spusťte sp_delete_firewall_rule uloženou proceduru. Následující příklad odstraní pravidlo ContosoFirewallRule:

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Použití PowerShellu ke správě pravidel brány firewall protokolu IP na úrovni serveru

Poznámka:

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, přečtěte si téma Install Azure PowerShell. Informace o migraci do modulu Az PowerShell najdete v tématu Migrace Azure PowerShell z AzureRM do Az.

Důležité

Bylo oznámeno, že modul PowerShell Azure Resource Manager (AzureRM) dosáhne zastarání k 29. únoru 2024. Veškerý budoucí vývoj by měl používat modul Az.Sql. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace. Modul AzureRM se už neudržuje ani nepodporuje. Argumenty pro příkazy v modulu Az PowerShell a v modulech AzureRM jsou podstatně identické. Další informace o jejich kompatibilitě najdete v tématu Představujeme nový modul Az PowerShell.

cmdlet Úroveň Popis
Get-AzSqlServerFirewallRule počítačový server Vrátí aktuální pravidla brány firewall na úrovni serveru.
New-AzSqlServerFirewallRule počítačový server Vytvoří nové pravidlo brány firewall na úrovni serveru
Set-AzSqlServerFirewallRule počítačový server Aktualizuje vlastnosti existujícího pravidla brány firewall na úrovni serveru.
Remove-AzSqlServerFirewallRule počítačový server Odstraňuje pravidla brány firewall na serverové úrovni.

Následující příklad používá PowerShell k nastavení pravidla brány firewall protokolu IP na úrovni serveru:

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

Návod

Zadejte $servernamenázev serveru, nikoli plně kvalifikovaný název DNS (například místo mysqldbserver.database.windows.net zadejte mysqldbserver).

Příklady PowerShellu v kontextu rychlého startu najdete v ukázkách Azure PowerShell pro Azure SQL Database a Použití PowerShellu k vytvoření izolované databáze a konfiguraci pravidla brány firewall na úrovni serveru.

Správa pravidel brány firewall na úrovni serveru pomocí příkazového řádku

cmdlet Úroveň Popis
az sql server pravidlo firewallu vytvořit počítačový server Vytvoří pravidlo firewallu pro IP adresu serveru.
az sql server firewall-rule list – příkaz pro zobrazení seznamu pravidel brány firewall na serveru SQL počítačový server Vypíše pravidla firewallu na serveru.
az sql server firewall-rule show – příkaz pro zobrazení pravidel firewallu na serveru SQL počítačový server Zobrazuje podrobnosti pravidla brány firewall protokolu IP.
aktualizace pravidla firewallu pro SQL Server počítačový server Aktualizuje pravidlo brány firewall protokolu IP.
az sql server pravidlo brány firewall smazat počítačový server Odstraní pravidlo brány firewall protokolu IP.

Následující příklad používá rozhraní příkazového řádku k nastavení pravidla brány firewall protokolu IP na úrovni serveru:

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

Návod

Zadejte $servernamenázev serveru, nikoli plně kvalifikovaný název DNS. Například použijte mysqldbserver místo mysqldbserver.database.windows.net.

Příklad rozhraní příkazového řádku v kontextu rychlého startu najdete v ukázkách Azure CLI pro Azure SQL Database a Vytvoření izolované databáze a konfiguraci pravidla brány firewall pomocí Azure CLI.

Informace o Azure Synapse Analytics najdete v následujících příkladech:

cmdlet Úroveň Popis
az synapse workspace firewall-rule create počítačový server Vytvořte pravidlo brány firewall
az synapse workspace firewall-rule delete - příkaz k odstranění pravidla firewallu v pracovním prostoru Synapse počítačový server Odstranění pravidla firewallu
az synapse workspace firewall-rule list počítačový server Výpis všech pravidel brány firewall
az synapse pracovní prostor pravidlo brány firewall zobrazit počítačový server Získání pravidla brány firewall
az synapse workspace firewall-rule update počítačový server Aktualizace pravidla brány firewall
az synapse pracovní prostor pravidlo firewallu čekat počítačový server Nastavte rozhraní příkazového řádku do čekacího stavu, dokud není splněna podmínka pravidla firewallu.

Následující příklad používá rozhraní příkazového řádku k nastavení pravidla brány firewall protokolu IP na úrovni serveru v 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

Pomocí rozhraní REST API spravujte pravidla brány firewall protokolu IP na úrovni serveru.

API Úroveň Popis
Výpis pravidel brány firewall počítačový server Zobrazí aktuální pravidla brány firewall protokolu IP na úrovni serveru.
Vytvoření nebo aktualizace pravidel brány firewall počítačový server Vytvoří nebo aktualizuje pravidla brány firewall protokolu IP na úrovni serveru.
Odstraňte pravidla brány firewall počítačový server Na úrovni serveru odebere pravidla brány firewall IP.
Získejte pravidla brány firewall počítačový server Získá pravidla firewallu IP na serverové úrovni.

Vysvětlení latence aktualizací brány firewall

Model ověřování serveru má prodlevu 5 minut pro všechny změny nastavení zabezpečení, pokud databáze není obsažena ani nemá partnera pro převzetí služeb při selhání. Změny v obsahovaných databázích bez partnera pro automatické předávání služeb při selhání jsou okamžité. V izolovaných databázích s přiřazeným partnerem pro failover je každá zabezpečovací aktualizace v primární databázi okamžitá, ale v sekundární databázi může trvat až 5 minut, než se změny projeví.

Následující tabulka popisuje časovou prodlevu změn nastavení zabezpečení na základě typu databáze a konfigurace převzetí služeb při selhání:

Režim ověřování Nakonfigurované převzetí služeb při selhání Latence změn nastavení zabezpečení Latentní instance
Ověřování serveru Ano 5 minut všechny databáze
Ověřování serveru Ne 5 minut všechny databáze
Databáze s omezením Ano 5 minut sekundární databáze
Databáze s omezením Ne Žádná Žádná

Ruční aktualizace pravidel brány firewall

Pokud potřebujete, aby se pravidla brány firewall aktualizovala rychleji než 5minutová latence, můžete pravidla brány firewall aktualizovat ručně. Přihlaste se k instanci databáze, která potřebuje aktualizovaná pravidla, a spusťte DBCC FLUSHAUTHCACHE. To způsobí, že instance databáze vyprázdní místní mezipaměť a aktualizuje pravidla brány firewall.

DBCC FLUSHAUTHCACHE[;]

Řešení potíží s databázovým firewallem

Pokud se přístup k Azure SQL Database nechová podle očekávání, zvažte následující body.

  • Konfigurace místního firewallu:

    Než bude mít váš počítač přístup k Azure SQL Database, možná budete muset na vašem počítači vytvořit výjimku brány firewall pro port TCP 1433. Pro provedení připojení uvnitř cloudové hranice Azure možná budete muset otevřít další porty. Další informace najdete v části "SQL Database: Outside vs inside" v Ports beyond 1433 for ADO.NET 4.5.

  • Překlad síťových adres:

    Kvůli překladu síťových adres (NAT) se IP adresa používaná vaším počítačem pro připojení k Azure SQL Database může lišit od IP adresy v nastavení konfigurace IP adresy vašeho počítače. Pokud chcete zobrazit IP adresu, kterou váš počítač používá pro připojení k Azure:

    1. Přihlaste se k portálu.
    2. Na serveru, který hostuje vaši databázi, přejděte na kartu Konfigurace.
    3. Aktuální IP adresa klienta se zobrazí v části Povolené IP adresy. Výběrem Přidat pro povolené IP adresy povolíte tomuto počítači přístup k serveru.
  • Změny seznamu povolených položek se ještě neprojevily:

    Může trvat až pět minut, než se změny konfigurace brány firewall Azure SQL Database projeví.

  • Přihlášení není autorizované nebo se použilo nesprávné heslo:

    Pokud přihlášení nemá oprávnění k serveru nebo je heslo nesprávné, připojení k serveru se odepře. Vytvoření nastavení brány firewall dává klientům jen příležitost pokusit se připojit k serveru. Klient musí stále poskytovat nezbytné přihlašovací údaje zabezpečení. Další informace o přípravě přihlašovacích údajů najdete v tématu Autorizace přístupu k SQL Database, SQL Managed Instance a Azure Synapse Analytics.

  • Dynamická IP adresa:

    Pokud máte připojení k internetu, které používá dynamické přidělování IP adres a máte potíže se dostat přes bránu firewall, vyzkoušejte jedno z následujících řešení:

    • Požádejte svého poskytovatele internetových služeb o rozsah IP adres přiřazený klientským počítačům, které mají přistup k serveru. Přidejte tento rozsah IP adres jako pravidlo brány firewall IP.
    • Místo toho získejte statické IP adresy pro klientské počítače. Přidejte IP adresy jako pravidla brány firewall protokolu IP.