reguły zapory Azure SQL Database i Azure Synapse IP

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 SQL Database służy do odwoływania się zarówno do SQL Database, jak i Azure Synapse Analytics.

Ważne

Ten artykuł nie ma zastosowania do Azure SQL Managed Instance. Aby uzyskać informacje na temat konfiguracji sieci, zobacz Łączenie aplikacji z Azure SQL Managed Instance.

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.

Jak działa zapora

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

Diagram konfiguracji zapory

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 . Wartość domyślna to maksymalnie 256 reguł zapory adresów IP na poziomie serwera 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 instrukcji Azure Portal, PowerShell lub Transact-SQL.

Uwaga

Maksymalna liczba reguł zapory adresów IP na poziomie serwera jest ograniczona do 128 podczas konfigurowania przy użyciu 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 usługi Azure Active Directory. (Reguła zapory adresów IP na poziomie serwera musi najpierw zostać utworzona przez użytkownika, który ma uprawnienia na poziomie platformy Azure).

Uwaga

Domyślnie podczas tworzenia nowego logicznego serwera SQL z Azure Portal ustawienie Zezwalaj usługom i zasobom platformy Azure na dostęp do tego ustawienia 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 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 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 ip na poziomie bazy danych, aby udzielić dostępu. Ta metoda pozwala uniknąć używania reguł zapory adresów IP na poziomie serwera, które zezwalają na dostęp za pośrednictwem zapory 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ę razy, które trzeba skonfigurować reguły zapory ip.

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

Jeśli tak, należy użyć reguł zapory 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 na poziomie bazy danych za pośrednictwem języka Transact-SQL, potrzebne jest co najmniej uprawnienie CONTROL 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 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 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 żą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 jest przyznawane bazie danych zawierającej regułę.
  • Jeśli adres nie mieści się w zakresie reguł zapory adresów IP na poziomie bazy danych, zapora sprawdza reguły zapory 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, połączenie zostanie przyznane. 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 żadnym z reguł zapory adresów IP na poziomie bazy danych lub serwera, żądanie połączenia kończy się niepowodzeniem.

Uwaga

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

Połączenia z poziomu platformy Azure

Aby zezwolić aplikacjom hostowanym na platformie Azure w celu nawiązania połączenia 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. Można to włączyć bezpośrednio z bloku Azure Portal, przełączając ustawienie Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serweraw ustawieniachZapory i sieci wirtualne. Przełączenie ustawienia na WARTOŚĆ WŁĄCZONE powoduje utworzenie reguły zapory dla ruchu przychodzącego dla adresu IP 0.0.0.0 - 0.0.0 o nazwie AllowAllWindowsAzureIps. Regułę można wyświetlić w widoku bazy danych master sys.firewall_rules . 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

Należy utworzyć pierwsze ustawienie zapory na poziomie serwera przy użyciu Azure Portal lub programowo przy użyciu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST platformy Azure. Utworzysz 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.

Porada

Inspekcja bazy danych umożliwia przeprowadzanie inspekcji zmian zapory na poziomie serwera i na poziomie bazy danych.

Używanie Azure Portal do zarządzania regułami zapory adresów IP na poziomie serwera

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

Porada

Aby zapoznać się z samouczkiem, zobacz Tworzenie bazy danych przy użyciu 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 Azure Portal.

    Zostanie otwarta strona Sieć dla 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 bazująca na adresie IP na poziomie serwera.

    Ustawianie reguły zapory bazującej na adresach IP na poziomie serwera

Na stronie przeglądu serwera

Zostanie otwarta strona przeglądu serwera. Przedstawia w pełni kwalifikowaną nazwę serwera (taką jak 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 bazująca na adresie 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 bazujące na adresach IP na poziomie bazy danych
sp_set_database_firewall_rule baza danych Tworzy lub aktualizuje reguły zapory bazujące na adresach IP na poziomie bazy danych
sp_delete_database_firewall_rule Bazy danych Usuwa reguły zapory bazujące na adresach 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 bazującą na adresach IP:

SELECT * FROM sys.firewall_rules ORDER BY name;

Następnie dodaj regułę zapory bazującą na adresach 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 bazującą na adresach 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ą znacznie identyczne.

Polecenie 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 bazującej na adresach IP na poziomie serwera:

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

Porada

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 bazującej na adresach 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

Polecenie cmdlet Poziom Opis
az sql server firewall-rule create Serwer Tworzy regułę zapory bazującą na adresach 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 Pokazuje szczegóły reguły zapory bazującej na adresach IP
az sql server firewall-rule update Serwer Aktualizacje regułę zapory ip
az sql server firewall-rule delete Serwer Usuwa regułę zapory bazującą na adresach IP

W poniższym przykładzie użyto interfejsu wiersza polecenia do ustawienia reguły zapory bazującej na adresach 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

Porada

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

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 adresu IP na poziomie serwera przy użyciu interfejsu wiersza polecenia platformy Azure.

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
Pobieranie reguł zapory Serwer Pobiera reguły zapory adresów IP na poziomie serwera

Rozwiązywanie problemów z zaporą bazy danych

Należy wziąć pod uwagę następujące punkty, gdy dostęp do bazy danych Azure SQL nie działa zgodnie z oczekiwaniami.

  • Konfiguracja zapory lokalnej:

    Zanim komputer będzie mógł uzyskać dostęp do bazy danych Azure SQL, 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 sekcji Porty przekraczające 1433 dla ADO.NET 4.5 i bazy danych Azure SQL.

  • Tłumaczenie adresów sieciowych:

    Ze względu na translator adresów sieciowych (NAT) adres IP używany przez komputer do nawiązywania połączenia z bazą danych Azure SQL 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ę do 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 dozwolonych adresów IP , aby zezwolić temu komputerowi na dostęp do serwera.
  • Zmiany listy dozwolonych nie zostały jeszcze wprowadzone:

    Wprowadzenie zmian w konfiguracji zapory bazy danych Azure SQL może potrwać do pięciu minut.

  • 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ę, spróbuj wykonać jedną 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 pobierz statyczne adresowanie IP dla komputerów klienckich. Dodaj adresy IP jako reguły zapory adresów IP.

Następne kroki