Udostępnij za pośrednictwem


Reguły zapory bazującej na adresach IP dla usługi Azure SQL Database i Azure Synapse

Dotyczy: Azure SQL Database Azure Synapse Analytics

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.

Uwaga

Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).

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

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 identyfikator logowania podmiotu zabezpieczeń na poziomie serwera lub jako administrator firmy 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

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

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 adresów IP na poziomie bazy danych za pomocą języka Transact-SQL, musisz mieć co najmniej uprawnienie CONTROL DATABASE DATABASE .

Czy osoba lub zespół, który konfiguruje lub przeprowadza inspekcję reguł zapory adresów 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

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 okienku witryny Azure Portal, przełączając opcję Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera w ustawieniach Zapory i sieci wirtualne. 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 master widoku sys.firewall_rules bazy danych. 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ń:

  • w roli Współautor programu SQL Server
  • w roli Menedżera zabezpieczeń SQL
  • właściciel zasobu, który zawiera program Azure SQL Server

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.

Napiwek

Inspekcja bazy danych umożliwia przeprowadzanie inspekcji zmian zapory na poziomie serwera i na poziomie 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.

Napiwek

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 ustawienie ustawiania zapory serwera w witrynie Azure Portal.

    Zostanie otwarta strona Sieć 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 stronę Sieć, na której można ustawić reguły zapory adresów IP na poziomie serwera.

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

Widok wykazu lub procedura składowana Poziom opis
sys.firewall_rules Serwer Wyświetla bieżące reguły zapory adresów IP na poziomie serwera
sp_set_firewall_rule Serwer Tworzy lub aktualizuje reguły zapory adresów IP na poziomie serwera
sp_delete_firewall_rule Serwer 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 Bazy 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:

SELECT * FROM sys.firewall_rules ORDER BY name;

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

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 adresów IP na poziomie serwera, wykonaj procedurę składowaną sp_delete_firewall_rule . Poniższy przykład usuwa regułę ContosoFirewallRule:

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

W tym artykule 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 programu PowerShell jest nadal obsługiwany przez usługę Azure SQL Database, ale wszystkie programowanie jest teraz przeznaczone dla modułu Az.Sql. Aby uzyskać te polecenia cmdlet, zobacz AzureRM.Sql. Argumenty poleceń w modułach Az i AzureRm są zasadniczo identyczne.

Polecenia cmdlet Poziom opis
Get-AzSqlServerFirewallRule Serwer Zwraca bieżące reguły zapory na poziomie serwera
New-AzSqlServerFirewallRule Serwer Tworzy nową regułę zapory na poziomie serwera
Set-AzSqlServerFirewallRule Serwer Aktualizuje właściwości istniejącej reguły zapory na poziomie serwera
Remove-AzSqlServerFirewallRule Serwer 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:

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

Napiwek

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 przewodnika Szybki start można znaleźć w temacie Create DB - PowerShell (Tworzenie bazy danych — PowerShell ) i Create a single database (Tworzenie pojedynczej bazy danych) oraz konfigurowanie reguły zapory adresów IP na poziomie serwera przy użyciu programu PowerShell.

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

Polecenia cmdlet Poziom opis
az sql server firewall-rule create Serwer Tworzy regułę zapory adresów IP serwera
az sql server firewall-rule list Serwer Wyświetla listę reguł zapory adresów IP na serwerze
az sql server firewall-rule show Serwer Przedstawia szczegółowe informacje o regule zapory ip
az sql server firewall-rule update Serwer Aktualizuje regułę zapory ip
az sql server firewall-rule delete Serwer 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:

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

Napiwek

W polu $servernameokreśl nazwę serwera, a nie w pełni kwalifikowaną nazwę DNS. Na przykład użyj polecenia mysqldbserver zamiast mysqldbserver.database.windows.net.

Aby zapoznać się z przykładem interfejsu wiersza polecenia w kontekście przewodnika Szybki start, zobacz Tworzenie bazy danych — interfejs wiersza polecenia platformy Azure i Tworzenie pojedynczej bazy danych oraz konfigurowanie reguły zapory adresów IP na poziomie serwera przy użyciu interfejsu wiersza polecenia platformy Azure.

W przypadku usługi Azure Synapse Analytics zapoznaj się z następującymi przykładami:

Polecenia cmdlet Poziom opis
az synapse workspace firewall-rule create Serwer Tworzenie reguły zapory
az synapse workspace firewall-rule delete Serwer Usuwanie reguły zapory
az synapse workspace firewall-rule list Serwer Wyświetl listę wszystkich reguł zapory
az synapse workspace firewall-rule show Serwer Uzyskiwanie reguły zapory
az synapse workspace firewall-rule update Serwer Aktualizowanie reguły zapory
az synapse workspace firewall-rule wait Serwer 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:

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

interfejs API Poziom opis
Wyświetlanie listy reguł zapory Serwer Wyświetla bieżące reguły zapory adresów IP na poziomie serwera
Tworzenie lub aktualizowanie reguł zapory Serwer Tworzy lub aktualizuje reguły zapory adresów IP na poziomie serwera
Usuwanie reguł zapory Serwer Usuwa reguły zapory adresów IP na poziomie serwera
Uzyskiwanie reguł zapory Serwer Pobiera reguły zapory adresów IP na poziomie serwera

Rozwiązywanie problemów z zaporą 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" (Bazy danych SQL Database: zewnętrzne a wewnątrz) w temacie Ports beyond 1433 for ADO.NET 4.5 and Azure SQL Database (Porty powyżej 1433 r.) dla ADO.NET 4.5 i usługi Azure SQL Database.

  • Translacja adresów sieciowych:

    Ze względu na translator 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ź na kartę Konfiguracja serwera hostującego bazę danych.
    3. Bieżący adres IP klienta jest wyświetlany w sekcji Dozwolone adresy IP. Wybierz pozycję Dodaj dla pozycji Dozwolone adresy IP, aby zezwolić temu komputerowi na dostęp do serwera.
  • Zmiany na liście dozwolonych nie zostały jeszcze wprowadzone:

    Może wystąpić 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ść 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 adresów IP.

Następne kroki