pravidla brány firewall pro Azure SQL Database a Azure Synapse

PLATÍ PRO: Azure SQL Database Azure Synapse Analytics

když vytvoříte nový server v Azure SQL Database nebo v Azure Synapse Analytics s názvem mysqlserver, 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á k odkazování na SQL Database a Azure Synapse Analytics.

Důležité

tento článek se nevztahuje na spravovanou instanci Azure SQL. informace o konfiguraci sítě najdete v tématu Připojení vaší aplikace do Azure SQL Managed Instance.

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

Jak funguje brána firewall

Pokusy o připojení z Internetu a Azure musí projít přes bránu firewall předtím, než se dostanou k vašemu serveru nebo databázi, jak je znázorněno na následujícím obrázku.

Diagram konfigurace brány firewall

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 v Hlavní databázi. Pro jeden server můžete mít maximálně 128 pravidel firewallu protokolu IP na úrovni serveru. Pokud máte povolené nastavení Umožnit službám a prostředkům Azure přistupovat k tomuto serveru, toto nastavení se počítá jako jedno pravidlo firewallu serveru.

pravidla brány firewall protokolu IP na úrovni serveru můžete nakonfigurovat pomocí příkazů Azure Portal, powershellu nebo jazyka Transact-SQL.

  • Pokud chcete používat portál nebo PowerShell, musíte být vlastníkem předplatného nebo přispěvatelem předplatného.
  • chcete-li použít příkaz Transact-SQL, je nutné se připojit k hlavní databázi jako přihlašovací jméno hlavního objektu na úrovni serveru nebo jako správce Azure Active Directory. (Pravidlo brány firewall protokolu IP na úrovni serveru musí být nejdřív vytvořené uživatelem, který má oprávnění na úrovni Azure.)

Poznámka

ve výchozím nastavení se během vytváření nového logického SQL serveru z Azure Portal nastaví možnost povolení přístupu ke službám a prostředkům Azure pro přístup k tomuto serveru na hodnotu ne.

Pravidla brány firewall protokolu IP na úrovni databáze

Pravidla brány firewall protokolu IP na úrovni databáze umožňují klientům přístup k určitým (zabezpečeným) databázím. Pravidla můžete vytvořit pro každou databázi (včetně Hlavní databáze) a ukládají se do jednotlivých databází.

  • pravidla brány firewall na úrovni databáze pro hlavní a uživatelské databáze můžete vytvářet a spravovat pouze pomocí příkazů jazyka Transact-SQL a až poté, co nakonfigurujete první bránu firewall na úrovni serveru.
  • Pokud zadáte rozsah IP adres do pravidla brány firewall protokolu IP na úrovni databáze, které je mimo rozsah v pravidle brány firewall protokolu IP na úrovni serveru, budou mít přístup k databázi jenom klienti, kteří mají IP adresy v rozsahu na úrovni databáze.
  • Pro databázi můžete mít maximálně 128 pravidel brány firewall protokolu IP na úrovni databáze. Další informace o konfiguraci pravidel brány firewall na úrovni databáze najdete v příkladu dále v tomto článku a v tématu sp_set_database_firewall_rule (Azure SQL Database).

Recommendations, jak nastavit pravidla brány firewall

Pokud je to možné, doporučujeme použít pravidla brány firewall na úrovni databáze. Tento přístup zvyšuje zabezpečení a zlepšuje přenositelnost databází. Pro správce použijte pravidla brány firewall IP na úrovni serveru. Můžete je také použít, pokud máte mnoho databází se stejnými požadavky na přístup a nechcete konfigurovat jednotlivé databáze zvlášť.

Poznámka

Informace o přenosných databázích v kontextu kontinuity podnikových procesů najdete v tématu Požadavky na ověřování pro zotavení po havárii.

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

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

Pokud Ano, použijte pravidla brány firewall IP na úrovni databáze pro udělení přístupu. Tato metoda zabraňuje použití pravidel brány firewall na úrovni serveru, která umožňují přístup přes bránu firewall do všech databází. To by snížilo hloubku obrany.

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

Pokud Ano, použijte pravidla brány firewall na úrovni serveru k omezení počtu pokusů o konfiguraci pravidel brány firewall protokolu IP.

Má osoba nebo tým, který konfiguruje pravidla brány firewall protokolu IP, přístup jenom prostřednictvím Azure Portal, PowerShellu nebo REST API?

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

Má osoba nebo tým, který konfiguruje pravidla brány firewall protokolu IP, zakázaná mít oprávnění vysoké úrovně na úrovni databáze?

Pokud ano, použijte pravidla brány firewall IP na úrovni serveru. Aby bylo možné konfigurovat pravidla brány firewall protokolu IP na úrovni databáze pomocí jazyka Transact-SQL, potřebujete alespoň oprávnění řídicí databáze na úrovni databáze.

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

V tomto scénáři jsou osvědčené postupy určeny podle vašich potřeb a prostředí. Pravidla brány firewall protokolu IP na úrovni serveru můžou být snáze nakonfigurovaná, ale skriptování může konfigurovat pravidla na úrovni databáze. A i když používáte pravidla brány firewall na úrovni serveru, možná budete muset auditovat pravidla brány firewall protokolu IP na úrovni databáze a zjistit, jestli uživatelé s oprávněním k řízení databáze vytvořit pravidla brány firewall IP na úrovni databáze.

Můžu používat kombinaci pravidel brány firewall na úrovni serveru i databáze?

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

Připojení z Internetu

Když se počítač pokusí připojit k serveru z Internetu, brána firewall nejprve zkontroluje původní IP adresu žádosti o pravidla brány firewall protokolu IP na úrovni databáze pro databázi, kterou připojení požaduje.

  • Pokud je adresa v rozsahu zadaném v pravidlech brány firewall na úrovni databáze, připojení je uděleno pro databázi, která pravidlo obsahuje.
  • Pokud adresa není v rozsahu v pravidlech brány firewall protokolu IP na úrovni databáze, brána firewall zkontroluje pravidla brány firewall protokolu IP na úrovni serveru. Pokud je adresa v rozsahu, ve kterém jsou pravidla brány firewall IP na úrovni serveru, připojení se udělí. Pravidla brány firewall protokolu IP na úrovni serveru se vztahují na všechny databáze spravované serverem.
  • Pokud adresa není v rozsahu, který je v žádném z pravidel brány firewall na úrovni databáze nebo na úrovni serveru, požadavek na připojení se nezdařil.

Poznámka

pokud chcete získat přístup k Azure SQL Database z místního počítače, zajistěte, aby brána firewall v síti a místní počítač povolovala odchozí komunikaci na portu TCP 1433.

Připojení z Azure

pokud chcete aplikacím hostovaným v Azure povolit připojení k vašemu SQL serveru, musí být povolená připojení Azure. Aby bylo možné povolit připojení k Azure, musí existovat pravidlo brány firewall s počátečními a koncovými IP adresami nastavenými na 0.0.0.0.

Když se aplikace z Azure pokusí připojit k serveru, brána firewall zkontroluje, jestli jsou povolená připojení Azure, tím, že ověří, že toto pravidlo firewallu existuje. Dá se zapnout přímo z okna Azure Portal přepnutím možnosti Povolit službám a prostředkům Azure přístup k tomuto serveru v v nastavení brány firewall a virtuální sítě . Přepnutí nastavení na ON vytvoří pravidlo brány firewall příchozí komunikace pro IP 0.0.0.0-0.0.0.0 s názvem AllowAllWindowsAzureIps. Pravidlo lze zobrazit v zobrazení Sys.firewall_rules hlavní databáze. Pomocí PowerShellu nebo rozhraní příkazového řádku Azure můžete vytvořit pravidlo brány firewall s počátečními a koncovými IP adresami nastavenou na 0.0.0.0, pokud nepoužíváte portál.

Důležité

Tato možnost nakonfiguruje bránu firewall tak, aby povolovala všechna připojení z Azure, včetně připojení z předplatných jiných zákazníků. Pokud vyberete tuto možnost, ujistěte se, že vaše přihlašovací a uživatelská oprávnění omezují přístup jenom na autorizované uživatele.

Oprávnění

Abyste mohli vytvářet a spravovat pravidla firewallu protokolu IP pro Azure SQL Serveru, musíte být:

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

první nastavení brány firewall na úrovni serveru můžete vytvořit pomocí Azure Portal nebo programově pomocí Azure PowerShell, azure CLInebo azure REST API. Můžete vytvářet a spravovat další pravidla brány firewall IP na úrovni serveru pomocí těchto metod nebo Transact-SQL.

Důležité

Pravidla brány firewall protokolu IP na úrovni databáze lze vytvořit a spravovat pouze pomocí jazyka 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, podívejte se na příkaz DBCC FLUSHAUTHCACHE.

Tip

Pomocí auditování databáze můžete auditovat změny brány firewall na úrovni serveru a databáze.

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

Chcete-li nastavit pravidlo brány firewall protokolu IP na úrovni serveru v Azure Portal, navštivte stránku Přehled vaší databáze nebo serveru.

Tip

Kurz najdete v tématu Vytvoření databáze pomocí Azure Portal.

Na stránce Přehled databáze

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

    Pravidlo brány firewall protokolu IP serveru

    Otevře se stránka nastavení brány firewall pro server.

  2. Na panelu nástrojů vyberte Přidat IP adresu klienta , abyste mohli přidat IP adresu počítače, který používáte, a pak vyberte Uložit. Vytvoří se pravidlo brány firewall protokolu IP na úrovni serveru pro vaši aktuální IP adresu.

    Nastavení pravidla brány firewall protokolu IP na úrovni serveru

Na stránce Přehled serveru

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

  1. Pokud chcete na této stránce nastavit pravidlo na úrovni serveru, v nabídce Nastavení na levé straně vyberte Brána firewall.

  2. Výběrem možnosti Přidat IP adresu klienta na panelu nástrojů přidejte IP adresu počítače, který používáte, a pak vyberte Uložit. Pro vaši aktuální IP adresu se vytvoří pravidlo brány firewall protokolu IP na úrovni serveru.

Použití transact-SQL ke správě pravidel firewallu protokolu IP

Zobrazení katalogu nebo uložená procedura Level Description
sys.firewall_rules Server Zobrazí aktuální pravidla brány firewall protokolu IP na úrovni serveru.
sp_set_firewall_rule Server Vytvoří nebo aktualizuje pravidla brány firewall protokolu IP na úrovni serveru.
sp_delete_firewall_rule Server Odebere pravidla firewallu protokolu IP na úrovni serveru.
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 protokolu IP na úrovni databáze.
sp_delete_database_firewall_rule Databáze Odebere pravidla firewallu protokolu IP na úrovni databáze.

Následující příklad se zabývá existujícími pravidly, povolí rozsah IP adres na serveru Contoso a odstraní pravidlo brány firewall protokolu 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 proceduru. Následující příklad odstraní pravidlo ContosoFirewallRule:

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Použití PowerShellu ke správě pravidel firewallu 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, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Důležité

Modul PowerShell Azure Resource Manager podporuje i nadále Azure SQL Database, ale veškerý vývoj je teď pro modul Az.Sql. Informace o těchto rutinách najdete v tématu AzureRM.Sql. Argumenty příkazů v modulech Az a AzureRm jsou podstatně identické.

Rutina Level Description
Get-AzSqlServerFirewallRule Server Vrátí aktuální pravidla brány firewall na úrovni serveru.
New-AzSqlServerFirewallRule Server Vytvoří nové pravidlo brány firewall na úrovni serveru
Set-AzSqlServerFirewallRule Server Aktualizuje vlastnosti existujícího pravidla brány firewall na úrovni serveru.
Remove-AzSqlServerFirewallRule Server Odebere pravidla brány firewall na úrovni serveru.

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"

Tip

Jako $servername zadejte název serveru, a ne plně kvalifikovaný název DNS, například mysqldbserver místo mysqldbserver.database.windows.net

Příklady PowerShellu v kontextu rychlého startu najdete v tématu Vytvoření databáze – PowerShell a Vytvoření jedné databáze a konfiguraci pravidla brány firewall protokolu IP na úrovni serveru pomocí PowerShellu.

Použití rozhraní příkazového řádku ke správě pravidel firewallu protokolu IP na úrovni serveru

Rutina Level Description
az sql server firewall-rule create Server Vytvoří pravidlo brány firewall protokolu IP serveru.
az sql server firewall-rule list Server Vypíše pravidla firewallu protokolu IP na serveru.
az sql server firewall-rule show Server Zobrazuje podrobnosti pravidla firewallu protokolu IP.
az sql server firewall-rule update Server Aktualizuje pravidlo brány firewall protokolu IP.
az sql server firewall-rule delete 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

Tip

Jako $servername zadejte název serveru, a ne plně kvalifikovaný název DNS, například mysqldbserver místo mysqldbserver.database.windows.net

Příklad rozhraní příkazového řádku v kontextu rychlého startu najdete v tématu Vytvoření databáze – Azure CLI a Vytvoření jedno databáze a konfigurace pravidla brány firewall protokolu IP na úrovni serveru pomocí Azure CLI.

Použití REST API ke správě pravidel firewallu protokolu IP na úrovni serveru

rozhraní API Level Description
Zobrazení seznamu pravidel brány firewall Server Zobrazí aktuální pravidla brány firewall protokolu IP na úrovni serveru.
Vytvoření nebo aktualizace pravidel brány firewall Server Vytvoří nebo aktualizuje pravidla brány firewall protokolu IP na úrovni serveru.
Odstranění pravidel brány firewall Server Odebere pravidla firewallu protokolu IP na úrovni serveru.
Získání pravidel brány firewall Server Získá pravidla firewallu protokolu IP na úrovni serveru.

Řešení potíží s bránou firewall databáze

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

  • Konfigurace místní brány firewall:

    Než bude mít váš počítač Azure SQL Database, možná bude nutné na počítači vytvořit výjimku brány firewall pro port TCP 1433. Pokud chcete vytvořit připojení uvnitř cloudu Azure, možná budete muset otevřít další porty. Další informace najdete v části "SQL Database: Vnější vs. vnitřní" tématu Porty nad 1433 pro ADO.NET 4.5a Azure SQL Database .

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

    Kvůli překladu síťových adres (NAT) se IP adresa, kterou váš počítač používá 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. Pokud chcete tomuto počítači povolit přístup k serveru, vyberte Přidat u možnosti Povolené IP adresy.
  • Změny seznamu povolení se ještě ne projeví:

    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 nesprávné heslo, připojení k serveru se zamítá. Když vytvoříte nastavení brány firewall, klienti se mohou pokusit připojit k serveru. Klient musí stále zadat potřebné zabezpečovací přihlašovací údaje. Další informace o přípravě přihlášení najdete v tématu Řízení a udělení přístupu k databázi.

  • Dynamická IP adresa:

    Pokud máte připojení k internetu, které používá dynamické IP adresy, 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 protokolu IP.
    • Místo toho získejte statické IP adresy pro klientské počítače. Přidejte IP adresy jako pravidla firewallu protokolu IP.

Další kroky