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:

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:

  1. 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.

    Screenshot of the Azure portal page for a logical SQL database, highlighting the server name.

    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.

  2. 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.

    Screenshot of the Azure portal Networking page for a logical SQL Server, showing the server-level IP firewall rule.

  3. 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.

  4. 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:

  1. Nawiąż połączenie z bazą danych, na przykład przy użyciu programu SQL Server Management Studio.

  2. W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Nowe zapytanie.

  3. 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';
    
  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.

Screenshot of the Azure portal showing the Directory + subscription filter page, where you would choose the directory.

Aby ustawić administratora firmy Microsoft Entra:

  1. 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.

    Screenshot of the Azure portal Microsoft Entra ID page for a logical server.

    Ważne

    Aby wykonać to zadanie, musisz być "globalnym Administracja istratorem".

  2. 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. Zobacz Microsoft Entra features and limitations (Funkcje i ograniczenia firmy Microsoft Entra).

    Screenshot of the Azure portal page to add a Microsoft Entra admin.

    Ważne

    Kontrola dostępu oparta na rolach (RBAC) platformy Azure ma zastosowanie tylko do portalu i nie jest propagowana do programu SQL Server.

  3. 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:

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:

  1. Nawiąż połączenie z bazą danych, na przykład przy użyciu programu SQL Server Management Studio.

  2. W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych, a następnie wybierz pozycję Nowe zapytanie.

  3. W oknie zapytania wprowadź następujące polecenie:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. Na pasku narzędzi wybierz polecenie Wykonaj, aby utworzyć użytkownika.

  5. 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:

  1. Połączenie na serwer na platformie Azure przy użyciu konta Microsoft Entra z co najmniej ALTER ANY USER permission (ZMIENIANIE UPRAWNIEŃ UŻYTKOWNIKA).

  2. W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Nowe zapytanie.

  3. 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:

  1. 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.

  2. Na stronie Omówienie kliknij pozycję Pokaż parametry połączenia bazy danych.

  3. Wybierz kartę sterownika i skopiuj pełne parametry połączenia.

    Screenshot of the Azure portal showing the connection strings page. The ADO.NET tab is selected and the ADO.NET (SQL authentication) connection string is displayed.

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:

  1. 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.

  2. Na stronie Przegląd wybierz link z nazwą serwera. Zostanie otwarta strona serwera.

  3. Na stronie sql server znajdź sekcję Zabezpieczenia i wybierz pozycję Defender dla Chmury.

    1. 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.

      Screenshot of the Azure portal Navigation pane for threat detection settings.

      Można również skonfigurować wiadomości e-mail, aby otrzymywać alerty zabezpieczeń, szczegółowe informacje o magazynie i typy wykrytych zagrożeń.

  4. 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.

    Screenshot of the Azure portal Threat status page showing pie charts for Data Discovery & Classification, Vulnerability Assessment, and Threat Detection.

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.

Screenshot of a sample email from Azure, indicating a Potential Sql Injection Threat detection. A link in the body of the email to Azure SQL DB Audit Logs is highlighted.

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ę:

  1. 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.

  2. W sekcji Zabezpieczenia wybierz pozycję Inspekcja.

  3. W ustawieniach funkcji Inspekcja ustaw następujące wartości:

    1. Dla ustawienia Inspekcja skonfiguruj wartość WŁ.

    2. 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

    3. Wybierz pozycję Zapisz.

      Screenshot of the Azure portal Audit settings page. The Save button is highlighted. Audit log destination fields are highlighted.

  4. Możesz teraz wybrać pozycję Wyświetl dzienniki inspekcji, aby wyświetlić dane zdarzeń z bazy danych.

    Screenshot of the Azure portal page showing Audit records for a SQL database.

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:

  1. 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.

  2. W sekcji Zabezpieczenia wybierz pozycję Dynamiczne maskowanie danych.

  3. 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.

    Screenshot of the Azure portal page to Save or Add Dynamic Data Mask fields. Recommended fields to mask display schema, table, and columns of tables.

  4. Wybierz pozycję Zapisz. Wybrane informacje będą teraz maskowane w celu ochrony ich poufności.

    Screenshot of SQL Server Management Studio (SSMS) showing a simple INSERT and SELECT statement. The SELECT statement displays masked data in the LastName column.

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:

  1. 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.

  2. W sekcji Zabezpieczenia wybierz pozycję Transparent Data Encryption.

  3. Jeśli jest to konieczne, ustaw opcję Szyfrowanie danych w pozycji . Wybierz pozycję Zapisz.

    Screenshot of the Azure portal page to enable Transparent Data Encryption.

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.

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.