Samouczek: zabezpieczanie bazy danych w usłudze Azure SQL Database
Dotyczy: Azure SQL Database
Ten samouczek zawiera informacje na temat wykonywania następujących czynności:
- Tworzenie reguł zapory na poziomie serwera i na poziomie bazy danych
- Konfigurowanie administratora firmy Microsoft Entra
- Zarządzanie dostępem użytkowników za pomocą uwierzytelniania SQL, uwierzytelniania firmy Microsoft Entra i zabezpieczania parametry połączenia
- Włączanie funkcji zabezpieczeń, takich jak usługa Microsoft Defender dla języka SQL, inspekcja, maskowanie danych i szyfrowanie
Uwaga
Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).
Usługa Azure SQL Database zabezpiecza dane, umożliwiając:
- Ograniczanie dostępu przy użyciu reguł zapory.
- Korzystanie z mechanizmów uwierzytelniania wymagających od użytkowników potwierdzenia tożsamości.
- Stosowanie autoryzacji za pośrednictwem członkostwa i uprawnień opartych na rolach.
- Włączanie funkcji zabezpieczeń.
Uwaga
Usługa Azure SQL Managed Instance jest zabezpieczona przy użyciu reguł zabezpieczeń sieci i prywatnych punktów końcowych zgodnie z opisem w artykule Azure SQL Managed Instance i architektura łączności.
Aby dowiedzieć się więcej, zobacz artykuły Azure SQL Database security overview (Omówienie zabezpieczeń usługi Azure SQL Database) i Capabilities (Funkcje).
Napiwek
W tym bezpłatnym module Learn pokazano, jak zabezpieczyć bazę danych w usłudze Azure SQL Database.
Wymagania wstępne
Aby ukończyć ten samouczek, upewnij się, że dysponujesz następującymi elementami:
- SQL Server Management Studio
- Serwer i pojedyncza baza danych
- Tworzenie ich za pomocą witryny Azure Portal, interfejsu wiersza polecenia lub programu PowerShell
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Zaloguj się do witryny Azure Portal.
Aby uzyskać wszystkie kroki opisane w samouczku, zaloguj się do witryny Azure Portal
Tworzenie reguł zapory
Bazy danych w usłudze SQL Database są chronione przez zapory na platformie Azure. Domyślnie wszystkie połączenia z serwerem i bazą danych są odrzucane. Aby dowiedzieć się więcej, zobacz Reguły zapory na poziomie serwera i na poziomie bazy danych.
Najbezpieczniejsza konfiguracja to ustawienie opcji Zezwalaj na dostęp do usług platformy Azure na wartość WYŁ. Następnie należy utworzyć zastrzeżony adres IP (wdrożenie klasyczne) dla zasobu wymagającego możliwości połączenia, na przykład maszyny wirtualnej platformy Azure czy usługi w chmurze, i zezwolić na dostęp przez zaporę tylko z tego adresu IP. Jeśli używasz modelu wdrażania przy użyciu usługi Resource Manager , dla każdego zasobu wymagany jest dedykowany publiczny adres IP.
Uwaga
Usługa SQL Database nawiązuje komunikację na porcie 1433. Jeśli próbujesz nawiązać połączenie z sieci firmowej, ruch wychodzący na porcie 1433 może być blokowany przez zaporę sieciową. Jeśli tak, nie możesz nawiązać połączenia z serwerem, chyba że administrator otworzy port 1433.
Konfigurowanie reguł zapory na poziomie serwera
Reguły zapory adresów IP na poziomie serwera mają zastosowanie do wszystkich baz danych na tym samym serwerze.
Aby skonfigurować regułę zapory na poziomie serwera:
W witrynie Azure Portal wybierz pozycję Bazy danych SQL z menu po lewej stronie, a następnie wybierz bazę danych na stronie Bazy danych SQL.
Uwaga
Pamiętaj o skopiowaniu w pełni kwalifikowanej nazwy serwera (na przykład serwer.baza_danych.windows.net), która będzie używana w dalszej części samouczka.
Wybierz pozycję Sieć w obszarze Ustawienia. Wybierz kartę Dostęp publiczny, a następnie wybierz pozycję Wybrane sieci w obszarze Dostęp do sieci publicznej, aby wyświetlić sekcję Reguły zapory.
Wybierz pozycję Dodaj adres IP klienta na pasku narzędzi, aby dodać bieżący adres IP do nowej reguły zapory adresów IP. Reguła zapory bazująca na adresach IP może otworzyć port 1433 dla pojedynczego adresu IP lub zakresu adresów IP.
Wybierz przycisk OK , aby zapisać ustawienia zapory.
Teraz możesz nawiązać połączenie z dowolną bazą danych na serwerze przy użyciu określonego adresu IP lub zakresu adresów IP.
Konfigurowanie reguł zapory bazy danych
Reguły zapory na poziomie bazy danych dotyczą tylko pojedynczych baz danych. Baza danych zachowa te reguły podczas pracy w trybie failover serwera. Reguły zapory na poziomie bazy danych można skonfigurować wyłącznie za pomocą instrukcji języka Transact-SQL (T-SQL) oraz wyłącznie po skonfigurowaniu reguły zapory na poziomie serwera.
Aby skonfigurować regułę zapory na poziomie bazy danych:
Nawiąż połączenie z bazą danych, na przykład przy użyciu programu SQL Server Management Studio.
W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Nowe zapytanie.
W oknie zapytania dodaj następującą instrukcję i zmień adres IP na swój publiczny adres IP:
EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
Na pasku narzędzi wybierz polecenie Wykonaj, aby utworzyć regułę zapory.
Uwaga
W programie SQL Server Management Studio można również utworzyć regułę zapory na poziomie serwera, używając polecenia sp_set_firewall_rule polecenia, ale wymagane jest wówczas połączenie z bazą danych master.
Tworzenie administratora firmy Microsoft Entra
Upewnij się, że używasz odpowiedniej domeny zarządzanej microsoft Entra ID (dawniej Azure Active Directory). Aby wybrać domenę, użyj prawego górnego rogu witryny Azure Portal. Ten proces potwierdza, że ta sama subskrypcja jest używana zarówno dla identyfikatora Firmy Microsoft Entra, jak i serwera logicznego hostowania bazy danych lub magazynu danych.
Aby ustawić administratora firmy Microsoft Entra:
W witrynie Azure Portal na stronie serwera SQL wybierz pozycję Microsoft Entra ID z menu zasobów, a następnie wybierz pozycję Ustaw administratora, aby otworzyć okienko Identyfikator entra firmy Microsoft.
Ważne
Aby wykonać to zadanie, musisz być "administratorem globalnym".
W okienku Microsoft Entra ID wyszukaj i wybierz użytkownika lub grupę Microsoft Entra, a następnie wybierz pozycję Wybierz. Lista wszystkich członków i grup organizacji Microsoft Entra jest wyświetlana, a wpisy wyszarane nie są obsługiwane jako administratorzy firmy Microsoft Entra.
Ważne
Kontrola dostępu oparta na rolach (RBAC) platformy Azure ma zastosowanie tylko do portalu i nie jest propagowana do programu SQL Server.
W górnej części strony administratora firmy Microsoft Entra wybierz pozycję Zapisz.
Proces zmiany administratora może potrwać kilka minut. Nowy administrator pojawi się w polu Administratora firmy Microsoft Entra.
Uwaga
Podczas ustawiania administratora firmy Microsoft Entra nowa nazwa administratora (użytkownika lub grupy) nie może istnieć jako identyfikator logowania lub użytkownik w bazie danych master . Jeśli tak jest, konfiguracja zakończy się niepowodzeniem, a zmiany zostaną wycofane — to oznacza, że taka nazwa administratora już istnieje. Ponieważ identyfikator logowania serwera lub użytkownik nie jest częścią identyfikatora Entra firmy Microsoft, wszelkie wysiłki na rzecz połączenia użytkownika przy użyciu uwierzytelniania Microsoft Entra kończą się niepowodzeniem.
Aby uzyskać informacje na temat konfigurowania identyfikatora Entra firmy Microsoft, zobacz:
- Integrowanie tożsamości lokalnych z identyfikatorem Entra firmy Microsoft
- Dodawanie własnej nazwy domeny do identyfikatora Entra firmy Microsoft
- Federacja z identyfikatorem Entra firmy Microsoft
- Administrowanie katalogem Microsoft Entra
- Zarządzanie identyfikatorem entra firmy Microsoft przy użyciu programu PowerShell
- Wymagane porty i protokoły dotyczące tożsamości hybrydowej
Zarządzanie dostępem do bazy danych
Możesz zarządzać dostępem do bazy danych, dodając do niej użytkowników lub zezwalając na dostęp użytkowników za pomocą bezpiecznych parametrów połączenia. Parametry połączenia są przydatne w przypadku aplikacji zewnętrznych. Aby dowiedzieć się więcej, zobacz Zarządzanie identyfikatorami logowania i kontami użytkowników oraz uwierzytelnianiem w usłudze Microsoft Entra.
Aby dodać użytkowników, wybierz typ uwierzytelniania bazy danych:
Uwierzytelnianie SQL, używające nazwy użytkownika i hasła do logowania, które obowiązuje tylko w kontekście konkretnej bazy danych w ramach serwera.
Uwierzytelnianie firmy Microsoft Entra, używanie tożsamości zarządzanych przez identyfikator Entra firmy Microsoft
Uwierzytelnianie SQL
Aby dodać użytkownika przy użyciu uwierzytelniania SQL:
Nawiąż połączenie z bazą danych, na przykład przy użyciu programu SQL Server Management Studio.
W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych, a następnie wybierz pozycję Nowe zapytanie.
W oknie zapytania wprowadź następujące polecenie:
CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
Na pasku narzędzi wybierz polecenie Wykonaj, aby utworzyć użytkownika.
Domyślnie użytkownik może łączyć się z bazą danych, ale nie ma uprawnień do odczytywania i zapisywania danych. Aby przyznać te uprawnienia, wykonaj następujące polecenia w nowym oknie zapytania:
ALTER ROLE db_datareader ADD MEMBER ApplicationUser; ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
Uwaga
Utwórz konta użytkowników innych niż administrator na poziomie bazy danych, chyba że potrzebują oni możliwości wykonywania zadań administratora, takich jak tworzenie nowych użytkowników.
Uwierzytelnianie Microsoft Entra
Ponieważ usługa Azure SQL Database nie obsługuje jednostek usługi Microsoft Entra server (identyfikatorów logowania), użytkownicy bazy danych utworzone przy użyciu kont Microsoft Entra są tworzone jako użytkownicy zawartej bazy danych. Użytkownik zawartej bazy danych nie jest skojarzony z nazwą logowania w master
bazie danych, nawet jeśli istnieje identyfikator logowania o tej samej nazwie. Tożsamość firmy Microsoft Entra może być dla pojedynczego użytkownika lub grupy. Aby uzyskać więcej informacji, zobacz Zawarte użytkowników bazy danych, przenoś bazę danych i zapoznaj się z samouczkiem firmy Microsoft Entra na temat sposobu uwierzytelniania przy użyciu identyfikatora Entra firmy Microsoft.
Uwaga
Użytkowników bazy danych (z wyjątkiem administratorów) nie można tworzyć za pośrednictwem witryny Azure Portal. Role firmy Microsoft Entra nie są propagowane do serwerów SQL, baz danych ani magazynów danych. Służą wyłącznie do zarządzania zasobami platformy Azure i nie mają zastosowania do uprawnień do bazy danych.
Na przykład osoba o roli Współautor serwera SQL Server nie może udzielać dostępu do połączenia z bazą danych lub magazynem danych. Uprawnienia te należy nadać w bazie danych za pomocą instrukcji języka T-SQL.
Ważne
Znaki specjalne, takie jak dwukropek :
lub handlowe „i” &
, nie są obsługiwane w nazwach użytkowników w instrukcjach języka T-SQL CREATE LOGIN
i CREATE USER
.
Aby dodać użytkownika z uwierzytelnianiem firmy Microsoft Entra:
Nawiąż połączenie z serwerem na platformie Azure przy użyciu konta Microsoft Entra z co najmniej uprawnieniem ALTER ANY USER .
W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Nowe zapytanie.
W oknie zapytania wprowadź następujące polecenie i zmodyfikuj
<Azure_AD_principal_name>
nazwę główną użytkownika Microsoft Entra lub nazwę wyświetlaną grupy Microsoft Entra:CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
Uwaga
Użytkownicy firmy Microsoft Entra są oznaczani w metadanych bazy danych o typie i typie E (EXTERNAL_USER)
X (EXTERNAL_GROUPS)
dla grup. Aby uzyskać więcej informacji, zobacz sys.database_principals.
Bezpieczne parametry połączenia
Aby zapewnić bezpieczne, zaszyfrowane połączenie między aplikacją kliencką i usługą SQL Database, należy skonfigurować parametry połączenia:
- żądać połączenia szyfrowanego oraz
- nie ufać certyfikatowi serwera.
Dzięki temu połączenie jest nawiązywane przy użyciu zabezpieczeń Transport Layer Security (TLS) i zmniejsza się ryzyko ataków typu „man-in-the-middle” (człowiek pośrodku). Parametry połączenia są dostępne na poziomie bazy danych i są wstępnie skonfigurowane w celu obsługi sterowników klienta takich jak ADO.NET, JDBC, ODBC czy PHP. Aby uzyskać informacje dotyczące zabezpieczeń TLS i łączności, zobacz Zagadnienia dotyczące protokołu TLS.
Aby skopiować bezpieczne parametry połączenia:
W witrynie Azure Portal wybierz pozycję Bazy danych SQL z menu po lewej stronie, a następnie wybierz bazę danych na stronie Bazy danych SQL.
Na stronie Omówienie kliknij pozycję Pokaż parametry połączenia bazy danych.
Wybierz kartę sterownika i skopiuj pełne parametry połączenia.
Włączanie funkcji zabezpieczeń.
Usługa Azure SQL Database udostępnia funkcje zabezpieczeń, które są dostępne w witrynie Azure Portal. Te funkcje są dostępne na poziomie bazy danych oraz serwera, z wyjątkiem maskowania danych, które jest dostępne wyłącznie na poziomie bazy danych. Aby dowiedzieć się więcej, zobacz Microsoft Defender for SQL, Auditing, Dynamic data masking i Transparent Data Encryption.
Usługa Microsoft Defender dla usługi SQL
Funkcja Microsoft Defender for SQL wykrywa potencjalne zagrożenia w miarę ich występowania i zapewnia alerty zabezpieczeń dotyczące nietypowych działań. Użytkownicy mogą zbadać te podejrzane zdarzenia za pomocą funkcji inspekcji, aby określić, czy dane zdarzenie było próbą uzyskania dostępu, naruszenia zabezpieczeń lub wykorzystania danych w bazie danych. Użytkownicy mają do dyspozycji także przegląd zabezpieczeń z oceną podatności oraz narzędzie do odnajdowania i klasyfikacji danych.
Uwaga
Przykładem zagrożenia jest na przykład wstrzyknięcie kodu SQL, czyli atak polegający na wprowadzeniu złośliwego kodu SQL wraz z danymi wejściowymi do aplikacji. W wyniku takiego ataku aplikacja może niezauważenie wykonać złośliwy kod SQL, umożliwiając dostęp do danych przechowywanych w bazie danych lub ich modyfikację.
Aby włączyć usługę Microsoft Defender for SQL:
W witrynie Azure Portal wybierz pozycję Bazy danych SQL z menu po lewej stronie, a następnie wybierz bazę danych na stronie Bazy danych SQL.
Na stronie Przegląd wybierz link z nazwą serwera. Zostanie otwarta strona serwera.
Na stronie sql server znajdź sekcję Zabezpieczenia i wybierz pozycję Defender dla Chmury.
Wybierz pozycję WŁ. w obszarze Microsoft Defender for SQL , aby włączyć tę funkcję. Wybierz konto magazynu na potrzeby zapisania wyników oceny luk w zabezpieczeniach. Następnie wybierz opcję Zapisz.
Można również skonfigurować wiadomości e-mail, aby otrzymywać alerty zabezpieczeń, szczegółowe informacje o magazynie i typy wykrytych zagrożeń.
Wróć do strony Bazy danych SQL bazy danych i wybierz pozycję Defender dla Chmury w sekcji Zabezpieczenia. W tym miejscu znajdziesz różne wskaźniki zabezpieczeń dostępne w bazie danych.
W przypadku wykrycia nietypowych działań otrzymasz wiadomość e-mail z informacjami o zdarzeniu. Zawiera ona rodzaj działania, bazę danych, serwer, czas zdarzenia, możliwe przyczyny i zalecane działania do wykonania w celu zbadania zdarzenia i zminimalizowania potencjalnego zagrożenia. Jeśli otrzymasz taką wiadomość e-mail, wybierz link Dziennik inspekcji usługi Azure SQL, aby przejść do witryny Azure Portal i wyświetlić odpowiednie rekordy inspekcji z czasu tego zdarzenia.
Inspekcja
Funkcja inspekcji śledzi zdarzenia bazy danych i zapisuje zdarzenia w dzienniku inspekcji w usłudze Azure Storage, dziennikach usługi Azure Monitor lub w centrum zdarzeń. Inspekcja pomaga zachować zgodność z przepisami, analizować aktywność bazy danych oraz uzyskać wgląd w odchylenia i anomalie, które mogą oznaczać potencjalne naruszenia zabezpieczeń.
Aby włączyć inspekcję:
W witrynie Azure Portal wybierz pozycję Bazy danych SQL z menu po lewej stronie, a następnie wybierz bazę danych na stronie Bazy danych SQL.
W sekcji Zabezpieczenia wybierz pozycję Inspekcja.
W ustawieniach funkcji Inspekcja ustaw następujące wartości:
Dla ustawienia Inspekcja skonfiguruj wartość WŁ.
Wybierz dowolną z następujących lokalizacji w polu Lokalizacja docelowa dziennika inspekcji:
Storage — konto usługi Azure Storage, na którym dzienniki zdarzeń będą zapisywane z możliwością pobrania w postaci plików xel.
Napiwek
Użyj tego samego konta magazynu dla wszystkich baz danych poddawanych inspekcji, aby najlepiej wykorzystać szablony raportów inspekcji.
Log Analytics — automatyczne zapisywanie zdarzeń do celów zapytań lub dalszej analizy.
Uwaga
Obszar roboczy usługi Log Analytics jest wymagany do obsługi zaawansowanych funkcji, takich jak analiza, niestandardowe reguły alertów i eksporty programu Excel lub power BI. Bez obszaru roboczego dostępny jest tylko edytor zapytań.
Centrum zdarzeń — umożliwia kierowanie zdarzeń do użytku w innych aplikacjach
Wybierz pozycję Zapisz.
Możesz teraz wybrać pozycję Wyświetl dzienniki inspekcji, aby wyświetlić dane zdarzeń z bazy danych.
Ważne
Zobacz Inspekcja usługi SQL Database, aby dowiedzieć się, jak dalej dostosowywać zdarzenia inspekcji przy użyciu programu PowerShell lub interfejsu API REST.
Dynamiczne maskowanie danych
Funkcja maskowania danych automatycznie ukrywa dane poufne w bazie danych.
Aby włączyć maskowanie danych:
W witrynie Azure Portal wybierz pozycję Bazy danych SQL z menu po lewej stronie, a następnie wybierz bazę danych na stronie Bazy danych SQL.
W sekcji Zabezpieczenia wybierz pozycję Dynamiczne maskowanie danych.
W ustawieniach funkcji Dynamiczne maskowanie danych wybierz polecenie Dodaj maskę, aby dodać regułę maskowania. Platforma Azure automatycznie wyświetli dostępne schematy bazy danych, tabele i kolumny do wyboru.
Wybierz pozycję Zapisz. Wybrane informacje będą teraz maskowane w celu ochrony ich poufności.
Transparent Data Encryption
Funkcja szyfrowania automatycznie szyfruje dane magazynowane, nie wymagając wprowadzania zmian w aplikacjach uzyskujących dostęp do szyfrowanej bazy danych. W przypadku nowych baz danych szyfrowanie jest włączone domyślnie. Możesz również szyfrować dane, używając programu SQL Server Management Studio i funkcji Always Encrypted.
Aby włączyć lub sprawdzić szyfrowanie:
W witrynie Azure Portal wybierz pozycję Bazy danych SQL z menu po lewej stronie, a następnie wybierz bazę danych na stronie Bazy danych SQL.
W sekcji Zabezpieczenia wybierz pozycję Transparent Data Encryption.
Jeśli jest to konieczne, ustaw opcję Szyfrowanie danych w pozycji WŁ. Wybierz pozycję Zapisz.
Uwaga
Aby wyświetlić stan szyfrowania, połącz się z bazą danych za pomocą programu SQL Server Management Studio i wykonaj zapytanie dotyczące kolumny encryption_state
w widoku sys.dm_database_encryption_keys. Stan 3
oznacza, że baza danych jest szyfrowana.
Uwaga
Niektóre elementy uważane za zawartość klienta, takie jak nazwy tabel, nazwy obiektów i nazwy indeksów, mogą być przesyłane w plikach dziennika na potrzeby pomocy technicznej i rozwiązywania problemów przez firmę Microsoft.
Powiązana zawartość
- Wypróbuj bezpłatnie usługę Azure SQL Database (wersja zapoznawcza)
- Co nowego w usłudze Azure SQL Database?
- Konfigurowanie dokumentacji zawartości i zarządzanie nią — Azure SQL Database
- Planowanie kosztów i zarządzanie nimi dla usługi Azure SQL Database
Napiwek
Chcesz rozpocząć tworzenie aplikacji platformy .NET? W tym bezpłatnym module Learn pokazano, jak opracowywać i konfigurować aplikację ASP.NET, która wysyła zapytania do usługi Azure SQL Database, w tym tworzenie prostej bazy danych.
Następny krok
Przejdź do następnego samouczka, aby dowiedzieć się, jak wdrożyć bazę danych rozproszoną geograficznie.