Implementowanie zapory usługi Azure SQL Database

Zakończone

Podczas tworzenia nowego serwera w usłudze Azure SQL Database lub Azure Synapse Analytics o nazwie mysqlserver zapora na poziomie serwera blokuje cały dostęp do publicznego punktu końcowego serwera (który jest dostępny w mysqlserver.database.windows.net). Dla uproszczenia usługa SQL Database służy do odwoływania się do usług SQL Database i Azure Synapse Analytics. Ten artykuł nie dotyczy usługi Azure SQL Managed Instance. Aby uzyskać informacje o konfiguracji sieci, zobacz Łączenie aplikacji z usługą Azure SQL Managed Instance.

Jak działa zapora

Próby połączenia z Internetu i platformy Azure muszą przejść przez zaporę, zanim dotrą do serwera lub bazy danych, jak pokazano na poniższym diagramie.

Diagram przedstawiający przykład działania zapory.

Ważne

Usługa Azure Synapse obsługuje tylko reguły zapory adresów IP na poziomie serwera. Nie obsługuje reguł zapory adresów IP na poziomie bazy danych.

Reguły zapory bazujące na adresach IP na poziomie serwera

Te reguły umożliwiają klientom uzyskiwanie dostępu do całego serwera, czyli wszystkich baz danych zarządzanych przez serwer. Reguły są przechowywane w bazie danych master . Maksymalna liczba reguł zapory adresów IP na poziomie serwera jest ograniczona do 256 dla serwera. Jeśli jest włączone ustawienie Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera, liczy się to jako pojedyncza reguła zapory dla serwera.

Reguły zapory adresów IP na poziomie serwera można skonfigurować przy użyciu witryny Azure Portal, programu PowerShell lub instrukcji języka Transact-SQL.

Uwaga / Notatka

Maksymalna liczba reguł zapory adresów IP na poziomie serwera jest ograniczona do 256 podczas konfigurowania przy użyciu witryny Azure Portal.

  • Aby korzystać z portalu lub programu PowerShell, musisz być właścicielem subskrypcji lub współautorem subskrypcji.
  • Aby użyć języka Transact-SQL, musisz nawiązać połączenie z bazą danych master jako logowanie główne na poziomie serwera lub jako administrator Microsoft Entra. (Najpierw należy utworzyć regułę zapory adresów IP na poziomie serwera przez użytkownika, który ma uprawnienia na poziomie platformy Azure).

Uwaga / Notatka

Domyślnie podczas tworzenia nowego logicznego serwera SQL z witryny Azure Portal ustawienie Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera ma wartość Nie.

Reguły zapory adresów IP na poziomie bazy danych

Reguły zapory bazujące na adresach IP na poziomie bazy danych umożliwiają klientom uzyskiwanie dostępu do określonych (zabezpieczonych) baz danych. Reguły są tworzone dla każdej bazy danych (w tym bazy danych master ) i są przechowywane w poszczególnych bazach danych.

  • Reguły zapory bazujące na adresach IP na poziomie bazy danych dla głównych baz danych i baz danych użytkowników można tworzyć i zarządzać nimi, tylko używając instrukcji języka Transact-SQL i dopiero po skonfigurowaniu pierwszej zapory na poziomie serwera.
  • Jeśli zakres adresów IP określony w regule zapory bazującej na adresach IP na poziomie bazy danych znajduje się poza zakresem określonym w regule zapory bazującej na adresach IP na poziomie serwera, dostęp do bazy danych mogą uzyskać tylko ci klienci, którzy mają adresy IP z zakresu ustalonego na poziomie bazy danych.
  • Wartość domyślna to maksymalnie 256 reguł zapory adresów IP na poziomie bazy danych. Aby uzyskać więcej informacji na temat konfigurowania reguł zapory adresów IP na poziomie bazy danych, zobacz przykład w dalszej części tego artykułu i zobacz sp_set_database_firewall_rule (Azure SQL Database).

Zalecenia dotyczące ustawiania reguł zapory

Zalecamy używanie reguł zapory adresów IP na poziomie bazy danych, jeśli jest to możliwe. Taka praktyka zwiększa bezpieczeństwo i sprawia, że baza danych jest bardziej przenośna. Użyj reguł zapory adresów IP na poziomie serwera dla administratorów. Używaj ich również w przypadku wielu baz danych, które mają te same wymagania dostępu, i nie chcesz konfigurować poszczególnych baz danych osobno.

Uwaga / Notatka

Aby uzyskać informacje o przenośnych bazach danych w kontekście ciągłości działalności biznesowej, zobacz Wymagania dotyczące uwierzytelniania dla odzyskiwania po awarii.

Reguły zapory adresów IP na poziomie serwera i na poziomie bazy danych

Czy użytkownicy jednej bazy danych powinni być w pełni odizolowani od innej bazy danych?

Jeśli tak, użyj reguł zapory adresów IP na poziomie bazy danych, aby udzielić dostępu. Ta metoda pozwala uniknąć używania reguł zapory ip na poziomie serwera, które zezwalają na dostęp przez zaporę do wszystkich baz danych. To zmniejszyłoby głębokość obrony.

Czy użytkownicy adresów IP potrzebują dostępu do wszystkich baz danych?

Jeśli tak, użyj reguł zapory adresów IP na poziomie serwera, aby zmniejszyć liczbę przypadków, w których trzeba skonfigurować reguły zapory adresów IP.

Czy osoba lub zespół, który konfiguruje reguły zapory adresów IP, ma dostęp tylko za pośrednictwem witryny Azure Portal, programu PowerShell lub interfejsu API REST?

Jeśli tak, należy użyć reguł zapory adresów IP na poziomie serwera. Reguły zapory adresów IP na poziomie bazy danych można skonfigurować tylko za pomocą języka Transact-SQL.

Czy osoba lub zespół, który konfiguruje reguły zapory adresów IP, nie mogą mieć uprawnień wysokiego poziomu na poziomie bazy danych?

Jeśli tak, użyj reguł zapory adresów IP na poziomie serwera. Aby skonfigurować reguły zapory IP na poziomie bazy danych za pomocą Transact-SQL, musisz mieć co najmniej uprawnienie CONTROL DATABASE.

Czy osoba lub zespół, który konfiguruje lub audytuje reguły zapory IP, centralnie zarządza regułami zapory IP dla wielu (być może setek) baz danych?

W tym scenariuszu najlepsze rozwiązania są określane przez Twoje potrzeby i środowisko. Reguły zapory adresów IP na poziomie serwera mogą być łatwiejsze do skonfigurowania, ale skrypty mogą konfigurować reguły na poziomie bazy danych. Nawet jeśli używasz reguł zapory adresów IP na poziomie serwera, może być konieczne przeprowadzenie inspekcji reguł zapory adresów IP na poziomie bazy danych, aby sprawdzić, czy użytkownicy z uprawnieniem CONTROL w bazie danych tworzą reguły zapory adresów IP na poziomie bazy danych.

Czy mogę użyć kombinacji reguł zapory adresów IP na poziomie serwera i na poziomie bazy danych?

Tak. Niektórzy użytkownicy, tacy jak administratorzy, mogą potrzebować reguł zapory adresów IP na poziomie serwera. Inni użytkownicy, tacy jak użytkownicy aplikacji bazy danych, mogą potrzebować reguł zapory adresów IP na poziomie bazy danych.

Połączenia z Internetu

Gdy komputer próbuje nawiązać połączenie z serwerem z Internetu, zapora najpierw sprawdza źródłowy adres IP żądania względem reguł zapory ip na poziomie bazy danych dla bazy danych, która żąda połączenia.

  • Jeśli adres znajduje się w zakresie określonym w regułach zapory adresów IP na poziomie bazy danych, połączenie zostanie przyznane bazie danych zawierającej regułę.
  • Jeśli adres nie znajduje się w zakresie reguł zapory adresów IP na poziomie bazy danych, zapora sprawdza reguły zapory adresów IP na poziomie serwera. Jeśli adres znajduje się w zakresie, który znajduje się w regułach zapory adresów IP na poziomie serwera, zostanie przyznane połączenie. Reguły zapory adresów IP na poziomie serwera mają zastosowanie do wszystkich baz danych zarządzanych przez serwer.
  • Jeśli adres nie znajduje się w zakresie, który znajduje się w żadnej z reguł zapory adresów IP na poziomie bazy danych lub na poziomie serwera, żądanie połączenia kończy się niepowodzeniem.

Uwaga / Notatka

Aby uzyskać dostęp do usługi Azure SQL Database z komputera lokalnego, upewnij się, że zapora w sieci i komputerze lokalnym zezwala na komunikację wychodzącą na porcie TCP 1433.

Połączenia z platformy Azure

Aby umożliwić aplikacjom hostowanym na platformie Azure łączenie się z serwerem SQL, należy włączyć połączenia platformy Azure. Aby włączyć połączenia platformy Azure, musi istnieć reguła zapory z początkowymi i końcowymi adresami IP ustawioną na 0.0.0.0. Ta zalecana reguła ma zastosowanie tylko do usługi Azure SQL Database.

Gdy aplikacja z platformy Azure próbuje nawiązać połączenie z serwerem, zapora sprawdza, czy połączenia platformy Azure są dozwolone, sprawdzając, czy ta reguła zapory istnieje. Tę opcję można włączyć bezpośrednio w panelu portalu Azure, przełączając opcję Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera na pozycję Włączone w ustawieniach Zapor i sieci wirtualnych. Przełączenie ustawienia na WŁĄCZONE powoduje utworzenie reguły zapory dla ruchu przychodzącego dla adresu IP 0.0.0.0 - 0.0.0.0 o nazwie AllowAllWindowsAzureIps. Regułę można wyświetlić w widoku sys.firewall_rules bazy danych master. Użyj programu PowerShell lub interfejsu wiersza polecenia platformy Azure, aby utworzyć regułę zapory z początkowymi i końcowymi adresami IP ustawionymi na 0.0.0.0, jeśli nie używasz portalu.

Ważne

Ta opcja umożliwia skonfigurowanie zapory tak, aby zezwalała na wszystkie połączenia z platformy Azure, w tym połączenia z subskrypcji innych klientów. Jeśli wybierzesz tę opcję, upewnij się, że uprawnienia logowania i użytkownika ograniczają dostęp tylko do autoryzowanych użytkowników.

Uprawnienia

Aby móc tworzyć reguły zapory bazującej na adresach IP dla serwera Azure SQL i zarządzać nimi, musisz spełniać jedno z następujących wymagań:

Tworzenie reguł zapory bazujących na adresach IP i zarządzanie nimi

Pierwsze ustawienie zapory na poziomie serwera jest tworzone przy użyciu witryny Azure Portal lub programowo przy użyciu programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST platformy Azure. Tworzysz dodatkowe reguły zapory adresów IP na poziomie serwera i zarządzasz nimi przy użyciu tych metod lub języka Transact-SQL.

Ważne

Reguły zapory adresów IP na poziomie bazy danych można tworzyć i zarządzać tylko przy użyciu języka Transact-SQL.

Aby poprawić wydajność, reguły zapory bazującej na adresach IP na poziomie serwera są tymczasowo przechowywane w pamięci podręcznej na poziomie bazy danych. Aby odświeżyć pamięć podręczną, zobacz DBCC FLUSHAUTHCACHE.

Wskazówka

Możesz użyć Inspekcji bazy danych, aby przeprowadzać inspekcję zmian zapory na poziomie serwera i bazy danych.

Zarządzanie regułami zapory adresów IP na poziomie serwera przy użyciu witryny Azure Portal

Aby ustawić regułę zapory adresów IP na poziomie serwera w witrynie Azure Portal, przejdź do strony przeglądu bazy danych lub serwera.

Wskazówka

Aby zapoznać się z samouczkiem, zobacz Tworzenie bazy danych przy użyciu witryny Azure Portal.

Na stronie przeglądu bazy danych

  1. Aby ustawić regułę zapory adresów IP na poziomie serwera na stronie przeglądu bazy danych, wybierz pozycję Ustaw zaporę serwera na pasku narzędzi, jak pokazano na poniższej ilustracji.

    Zrzut ekranu przedstawiający przykład paska narzędzi ustawień zapory bazy danych SQL.

    Otwiera się strona sieciowa serwera.

  2. Dodaj regułę w sekcji Reguły zapory, aby dodać adres IP używanego komputera, a następnie wybierz pozycję Zapisz. Dla bieżącego adresu IP jest tworzona reguła zapory adresów IP na poziomie serwera.

    Zrzut ekranu przedstawiający przykład strony sieci programu SQL Server.

Na stronie przeglądu serwera

Zostanie otwarta strona przeglądu serwera. Przedstawia w pełni kwalifikowaną nazwę serwera (na przykład mynewserver20170403.database.windows.net) i udostępnia opcje dalszej konfiguracji.

  1. Aby ustawić regułę na poziomie serwera na tej stronie, wybierz pozycję Sieć w menu Ustawienia po lewej stronie.
  2. Dodaj regułę w sekcji Reguły zapory, aby dodać adres IP używanego komputera, a następnie wybierz pozycję Zapisz. Dla bieżącego adresu IP jest tworzona reguła zapory adresów IP na poziomie serwera.

Zarządzanie regułami zapory ip przy użyciu języka Transact-SQL

Rozwiń tabelę

Widok katalogu lub procedura składowana Poziom Opis
sys.firewall_rules Server Wyświetla bieżące reguły zapory adresów IP na poziomie serwera
sp_set_firewall_rule Server Tworzy lub aktualizuje reguły zapory adresów IP na poziomie serwera
sp_delete_firewall_rule Server Usuwa reguły zapory adresów IP na poziomie serwera
sys.database_firewall_rules Baza danych Wyświetla bieżące reguły zapory adresów IP na poziomie bazy danych
sp_set_database_firewall_rule Baza danych Tworzy lub aktualizuje reguły zapory adresów IP na poziomie bazy danych
sp_delete_database_firewall_rule Baz danych Usuwa reguły zapory adresów IP na poziomie bazy danych

Poniższy przykład sprawdza istniejące reguły, włącza zakres adresów IP na serwerze Contoso i usuwa regułę zapory ip:

SQL

SELECT * FROM sys.firewall_rules ORDER BY name;

Następnie dodaj regułę zapory adresów IP na poziomie serwera.

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'

Aby usunąć regułę zapory IP na poziomie serwera, wykonaj procedurę składowaną sp_delete_firewall_rule. Poniższy przykład usuwa regułę ContosoFirewallRule:

SQL

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Zarządzanie regułami zapory adresów IP na poziomie serwera przy użyciu programu PowerShell

Uwaga / Notatka

W tym przykładzie użyto modułu Azure Az programu PowerShell, który jest zalecanym modułem programu PowerShell do interakcji z platformą Azure. Aby rozpocząć pracę z modułem Azure PowerShell, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Ważne

Moduł Azure Resource Manager (AzureRM) programu PowerShell został wycofany 29 lutego 2024 r. Wszystkie przyszłe programowanie powinno używać modułu Az.Sql. Zaleca się migrowanie użytkowników z modułu AzureRM do modułu Az programu PowerShell w celu zapewnienia ciągłej obsługi i aktualizacji. Moduł AzureRM nie jest już utrzymywany ani obsługiwany. Argumenty poleceń w module Az programu PowerShell i modułach AzureRM są zasadniczo identyczne. Aby uzyskać więcej informacji na temat ich zgodności, zobacz Wprowadzenie nowego modułu Az PowerShell.

Rozwiń tabelę

Cmdlet Poziom Opis
Get-AzSqlServerFirewallRule Server Zwraca bieżące reguły zapory na poziomie serwera
New-AzSqlServerFirewallRule Server Tworzy nową regułę zapory na poziomie serwera
Set-AzSqlServerFirewallRule Server Aktualizuje właściwości istniejącej reguły zapory na poziomie serwera
Remove-AzSqlServerFirewallRule Server Usuwa reguły zapory na poziomie serwera

W poniższym przykładzie użyto programu PowerShell do ustawienia reguły zapory adresów IP na poziomie serwera:

PowerShell

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

Wskazówka

W przypadku $servername określ nazwę serwera, a nie w pełni kwalifikowaną nazwę DNS, np. określ serwer mysqldbserver zamiast mysqldbserver.database.windows.net. Przykłady programu PowerShell w kontekście szybkiego startu można znaleźć w temacie Tworzenie bazy danych — PowerShell i Tworzenie pojedynczej bazy danych oraz konfigurowanie reguły zapory IP na poziomie serwera przy użyciu programu PowerShell.

Zarządzaj regułami zapory IP na poziomie serwera przy użyciu CLI

Rozwiń tabelę

Cmdlet Poziom Opis
az sql server firewall-rule create - Komenda tworzy regułę zapory dla serwera SQL. Server Tworzy regułę zapory adresów IP serwera
az sql server firewall-rule list - wyświetla listę reguł czasowych zapory dla serwera SQL Server Wyświetla listę reguł zapory adresów IP na serwerze
az sql server firewall-rule show (pokazuje zasady zapory serwera SQL) Server Przedstawia szczegółowe informacje o regule zapory ip
az sql server firewall-rule update Server Aktualizuje regułę zapory ip
az sql server usuń regułę zapory Server Usuwa regułę zapory adresów IP

W poniższym przykładzie użyto interfejsu wiersza polecenia do ustawienia reguły zapory adresów IP na poziomie serwera:

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


Wskazówka

W przypadku $servername określ nazwę serwera, a nie w pełni kwalifikowaną nazwę DNS. Na przykład użyj serwera mysqldbserver zamiast mysqldbserver.database.windows.net. Aby zapoznać się z przykładem CLI w kontekście przewodnika szybkiego startu, odwołaj się do Tworzenie bazy danych — Azure CLI oraz Tworzenie pojedynczej bazy danych i konfigurowanie reguły zapory IP na poziomie serwera za pomocą CLI Azure. W przypadku usługi Azure Synapse Analytics zapoznaj się z następującymi przykładami:

Rozwiń tabelę

Cmdlet Poziom Opis
az synapse workspace firewall-rule create (utwórz regułę zapory dla obszaru roboczego synapse) Server Utwórz regułę zapory
az synapse workspace firewall-rule delete (komenda do usunięcia reguły zapory w obszarze roboczym Synapse) Server Usuń regułę zapory
lista zasad zapory sieciowej przestrzeni roboczej synapse az Server Wyświetl listę wszystkich reguł zapory
az synapse workspace firewall-rule show - polecenie wyświetlające zasady zapory dla obszaru roboczego synapse. Server Pobierz regułę zapory
aktualizacja reguły zapory sieciowej w obszarze roboczym Synapse Server Zaktualizuj regułę zapory
az synapse workspace firewall-rule wait Server Umieść interfejs wiersza polecenia w stanie oczekiwania do momentu spełnienia warunku reguły zapory

W poniższym przykładzie użyto interfejsu wiersza polecenia do ustawienia reguły zapory adresów IP na poziomie serwera w usłudze 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

Zarządzanie regułami zapory adresów IP na poziomie serwera przy użyciu interfejsu API REST

Rozwiń tabelę

API Poziom Opis
Lista reguł zapory Server Wyświetla bieżące reguły zapory adresów IP na poziomie serwera
Tworzenie lub aktualizowanie reguł zapory Server Tworzy lub aktualizuje reguły zapory adresów IP na poziomie serwera
Usuwanie reguł zapory Server Usuwa reguły zapory adresów IP na poziomie serwera
Pobierz reguły zapory Server Pobiera reguły zapory IP na poziomie serwera

Rozwiązywanie problemów z firewallem bazy danych

Rozważ następujące kwestie, gdy dostęp do usługi Azure SQL Database nie działa zgodnie z oczekiwaniami.

  • Konfiguracja zapory lokalnej: zanim komputer będzie mógł uzyskać dostęp do usługi Azure SQL Database, może być konieczne utworzenie wyjątku zapory na komputerze dla portu TCP 1433. Aby nawiązać połączenia wewnątrz granicy chmury platformy Azure, może być konieczne otwarcie dodatkowych portów. Aby uzyskać więcej informacji, zobacz sekcję "SQL Database: Outside vs inside" w dokumencie Ports beyond 1433 for ADO.NET 4.5 and Azure SQL Database.

  • Translacja adresów sieciowych: z powodu translatora adresów sieciowych (NAT) adres IP używany przez komputer do nawiązywania połączenia z usługą Azure SQL Database może być inny niż adres IP w ustawieniach konfiguracji adresu IP komputera. Aby wyświetlić adres IP używany przez komputer do łączenia się z platformą Azure:

    1. Zaloguj się w portalu.
    2. Przejdź do karty Konfigurowanie na serwerze hostujący bazę danych.
    3. Bieżący adres IP klienta jest wyświetlany w sekcji Dozwolone adresy IP. Wybierz Dodaj w sekcji Dozwolonych adresów IP, aby umożliwić temu komputerowi dostęp do serwera.
  • Zmiany na liście dozwolonych nie zostały jeszcze wprowadzone: może upłynąć do pięciu minut opóźnienia, aby zmiany konfiguracji zapory usługi Azure SQL Database zaczęły obowiązywać.

  • Logowanie nie jest autoryzowane lub użyto nieprawidłowego hasła: jeśli logowanie nie ma uprawnień na serwerze lub hasło jest niepoprawne, połączenie z serwerem zostanie odrzucone. Utworzenie ustawienia zapory daje klientom możliwość spróbowania nawiązania połączenia z serwerem. Klient musi nadal podać niezbędne poświadczenia zabezpieczeń. Aby uzyskać więcej informacji na temat przygotowywania identyfikatorów logowania, zobacz Kontrolowanie i udzielanie dostępu do bazy danych.

  • Dynamiczny adres IP: jeśli masz połączenie internetowe korzystające z dynamicznego adresowania IP i masz problemy z przejściem przez zaporę, wypróbuj jedno z następujących rozwiązań:

    • Poproś dostawcę usług internetowych o zakres adresów IP przypisany do klientów uzyskujących dostęp do serwera. Dodaj ten zakres adresów IP jako regułę zapory adresów IP.
    • Zamiast tego uzyskaj statyczne adresowanie IP dla komputerów klienckich. Dodaj adresy IP jako reguły zapory sieciowej IP.