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.
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
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.
Zostanie otwarta strona Sieć serwera.
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.
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.
Aby ustawić regułę na poziomie serwera na tej stronie, wybierz pozycję Sieć w menu Ustawienia po lewej stronie.
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 $servername
okreś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:
- Zaloguj się w portalu.
- Przejdź na kartę Konfiguracja serwera hostującego bazę danych.
- 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
- Upewnij się, że środowisko sieciowe firmy zezwala na komunikację przychodzącą z zakresów adresów IP obliczeniowych (w tym zakresów SQL), które są używane przez centra danych platformy Azure. Może być konieczne dodanie tych adresów IP do listy dozwolonych. Zobacz Zakresy adresów IP centrum danych platformy Microsoft Azure.
- Zobacz nasz przewodnik Szybki start dotyczący tworzenia pojedynczej bazy danych w usłudze Azure SQL Database.
- Aby uzyskać pomoc dotyczącą nawiązywania połączenia z bazą danych w usłudze Azure SQL Database z poziomu aplikacji typu open source lub innych firm, zobacz Client Quickstart code samples to Azure SQL Database (Przykłady kodu szybki start klienta do usługi Azure SQL Database).
- Aby uzyskać informacje o dodatkowych portach, które mogą być potrzebne do otwarcia, zobacz sekcję "SQL Database: Outside vs inside" ( Baza danych SQL: poza elementem a wewnątrz) w sekcji Porty przekraczające 1433 dla ADO.NET 4.5 i usługi SQL Database
- Aby zapoznać się z omówieniem zabezpieczeń usługi Azure SQL Database, zobacz Zabezpieczanie bazy danych.