Zabezpieczanie programu SQL Server

SQL Server to system zarządzania relacyjnymi bazami danych (RDBMS), który przechowuje krytyczne dane biznesowe i zarządza nimi na potrzeby aplikacji, analiz i raportowania. Ponieważ często zawiera poufne informacje, takie jak rekordy klienta, dane finansowe i własność intelektualna, zabezpieczenie programu SQL Server jest niezbędne do ochrony organizacji przed naruszeniami danych, nieautoryzowanym dostępem i ryzykiem zgodności.

Ten artykuł zawiera wskazówki dotyczące najlepszego zabezpieczania programu SQL Server.

Bezpieczeństwo sieci

Zabezpieczanie dostępu sieciowego do programu SQL Server pomaga zapobiegać nieautoryzowanym połączeniom, zmniejsza narażenie na ataki i zapewnia dostęp do baz danych tylko zaufanym źródłom.

Zarządzanie tożsamościami

Mechanizmy kontroli silnej tożsamości i uwierzytelniania pomagają zagwarantować, że tylko autoryzowani użytkownicy i aplikacje mogą uzyskiwać dostęp do zasobów programu SQL Server.

  • Użyj uwierzytelniania systemu Windows lub uwierzytelniania firmy Microsoft Entra: preferuj uwierzytelnianie systemu Windows lub uwierzytelnianie Entra firmy Microsoft za pośrednictwem uwierzytelniania SQL w celu scentralizowanego zarządzania tożsamościami i łatwiejszej kontroli cyklu życia konta. Aby uzyskać więcej informacji, zobacz Wybieranie trybu uwierzytelniania.

  • Użyj kont usług zarządzanych przez grupę (gMSA) dla usług: użyj konta gMSA do automatycznego i bezpiecznego zarządzania poświadczeniami konta usługi. Aby uzyskać więcej informacji, zobacz omówienie kont usługGroup-Managed.

  • Wymuszaj silne zasady haseł: jeśli używasz uwierzytelniania SQL, wymagaj złożonych haseł, których nie można łatwo odgadnąć i nie są używane dla innych kont. Regularnie aktualizuj hasła i wymuszaj zasady usługi Active Directory. Aby uzyskać więcej informacji, zobacz Silne hasła.

  • Używaj użytkowników zawartej bazy danych, jeśli jest to konieczne: rozważ użytkowników zawartej bazy danych dla aplikacji, które wymagają uwierzytelniania na poziomie bazy danych bez konieczności logowania na poziomie serwera. Aby uzyskać więcej informacji, zobacz Użytkownicy zawartej bazy danych.

Dostęp uprzywilejowany

Ograniczanie i monitorowanie uprzywilejowanego dostępu pomaga zapobiegać nieautoryzowanym zmianom i zmniejsza wpływ kont z naruszonym dostępem.

  • Przyznaj wymagane minimalne uprawnienia: przypisz najniższy poziom uprawnień wymagany dla każdego użytkownika lub usługi. Regularne przeglądanie i dostosowywanie uprawnień w celu zachowania najniższych uprawnień. Aby uzyskać więcej informacji, zapoznaj się z Wprowadzeniem do uprawnień silnika bazy danych.

  • Oddzielni administratorzy baz danych (DBA) i sysadmin role: Unikaj udzielania sysadmin uprawnień wszystkim administratorom baz danych. Jeśli to możliwe, należy użyć uprawnienia CONTROL SERVER , ponieważ szanuje DENY uprawnienia i umożliwia bardziej szczegółową kontrolę. Rozważ rozdzielenie obowiązków, które ograniczają dostęp do maszyny wirtualnej, możliwość logowania się do systemu operacyjnego, możliwość modyfikowania dzienników błędów i inspekcji oraz możliwość instalowania aplikacji i/lub funkcji. Aby uzyskać więcej informacji, zobacz Uprawnienia (aparat bazy danych).

  • Monitorowanie i przeprowadzanie inspekcji działań uprzywilejowanych: włącz inspekcję, aby śledzić zmiany wprowadzone przez uprzywilejowane konta i regularnie przeglądać dzienniki pod kątem podejrzanych działań. Aby uzyskać więcej informacji, zobacz SQL Server Audit (Database Engine).

  • Implementowanie separacji ról: umieść użytkowników usługi Active Directory w grupach usługi AD, zamapuj grupy usługi AD na role programu SQL Server i przyznaj role programu SQL Server minimalne uprawnienia wymagane przez aplikacje. Aby uzyskać więcej informacji, zapoznaj się z Wprowadzeniem do uprawnień silnika bazy danych.

Ochrona danych

Ochrona danych magazynowanych i przesyłanych ma kluczowe znaczenie dla zapobiegania nieautoryzowanemu ujawnieniu lub manipulowaniu.

  • Szyfruj poufne informacje za pomocą funkcji Always Encrypted: używaj funkcji Always Encrypted i Always Encrypted z bezpiecznymi enklawami, aby chronić poufne dane w programie SQL Server. Preferuj szyfrowanie losowe w celu zapewnienia większego bezpieczeństwa. Aby uzyskać więcej informacji, zobacz Always Encrypted.

  • Użyj funkcji Transparent Data Encryption (TDE) dla plików bazy danych: włącz funkcję TDE, aby szyfrować pliki bazy danych, kopii zapasowej i bazy danych tempdb, chroniąc dane w przypadku naruszenia zabezpieczeń nośnika fizycznego. Aby uzyskać więcej informacji, zobacz Transparent Data Encryption (TDE).

  • Maskowanie poufnych danych za pomocą dynamicznego maskowania danych (DDM): użyj narzędzia DDM, aby zaciemnić poufne dane w wynikach zapytania, gdy szyfrowanie nie jest możliwe. Aby uzyskać więcej informacji, zobacz Dynamiczne maskowanie danych.

  • Udzielanie uprawnień na poziomie kolumny: ogranicz dostęp do poufnych kolumn, udzielając SELECTuprawnień tylko autoryzowanym użytkownikom, REFERENCESlub UPDATE . Aby uzyskać więcej informacji, zobacz GRANT uprawnienia.

  • Użyj Row-Level Security (RLS), aby ograniczyć dostęp do danych: Zaimplementuj zabezpieczenia na poziomie wiersza, aby zapewnić użytkownikom wyświetlanie tylko odpowiednich danych. Użyj SESSION_CONTEXT do aplikacji warstwy środkowej, gdzie użytkownicy współużytkują konta SQL. Aby uzyskać więcej informacji, zobacz Row-Level Security.

  • Łącz funkcje zabezpieczeń, aby zapewnić maksymalną ochronę: używaj zabezpieczeń Row-Level razem z funkcją Always Encrypted lub Dynamicznym Maskowaniem Danych, aby zmaksymalizować poziom zabezpieczeń organizacji. Aby uzyskać więcej informacji, zobacz najlepsze rozwiązania dotyczące zabezpieczeńRow-Level.

Rejestrowanie i wykrywanie zagrożeń

Kompleksowe rejestrowanie i monitorowanie pomaga wykrywać zagrożenia, badać zdarzenia i spełniać wymagania dotyczące zgodności.

  • Włącz i skonfiguruj inspekcję programu SQL Server: przeprowadź inspekcję dostępu i zmian w poufnych danych i konfiguracjach na poziomie serwera i bazy danych. Rozważ inspekcję tabel i kolumn z poufnymi danymi, które mają zastosowane środki zabezpieczeń. Regularnie przeglądaj dzienniki inspekcji, szczególnie w przypadku tabel zawierających poufne informacje, w których nie są możliwe pełne środki zabezpieczeń. Aby uzyskać więcej informacji, zobacz SQL Server Audit (Database Engine).

  • Użyj księgi w programie SQL Server: włącz księgę, aby utworzyć niezmienny zapis zmian w poufnych danych, zapewniając logowanie wykazujące próby manipulacji. Aby uzyskać więcej informacji, zobacz Konfigurowanie bazy danych rejestru.

Kopia zapasowa i przywracanie

Niezawodne procesy tworzenia kopii zapasowych i odzyskiwania chronią dane przed utratą z powodu usterek, awarii lub ataków.

Ocena zabezpieczeń i ograniczanie zagrożeń

Regularne ocenianie środowiska programu SQL Server pomaga identyfikować luki w zabezpieczeniach i poprawiać poziom zabezpieczeń.

  • Ogranicz włączone funkcje w celu zmniejszenia obszaru ataków: włącz tylko funkcje programu SQL Server wymagane dla danego środowiska. Aby uzyskać więcej informacji, zobacz konfiguracja obszaru powierzchni.

  • Uruchamiaj oceny luk w zabezpieczeniach: Użyj oceny luk w zabezpieczeniach SQL, udostępnianej za pośrednictwem Microsoft Defender for SQL, aby wykrywać i korygować potencjalne luki w zabezpieczeniach baz danych w zasobach chmurowych i lokalnych. Aby uzyskać więcej informacji, zobacz Ocena luk w zabezpieczeniach dla SQL Server.

  • Klasyfikowanie i etykietowanie poufnych danych: użyj funkcji odnajdywania i klasyfikacji danych SQL, aby identyfikować i oznaczać poufne dane w celu zapewnienia lepszej ochrony i zgodności. Aby uzyskać więcej informacji, zobacz Odnajdywanie i klasyfikacja danych SQL.

  • Przejrzyj i zniweluj typowe zagrożenia: ochrona przed wstrzyknięciem kodu SQL, atakami kanału bocznego, siłą siłową, spryskaniem haseł i oprogramowaniem wymuszającym okup, postępując zgodnie z zalecanymi rozwiązaniami dotyczącymi walidacji danych wejściowych, stosowania poprawek i kontroli dostępu. Aby uzyskać więcej informacji, zobacz Wstrzyknięcie kodu SQL i ataki wymuszania okupu.

  • Implementuj strategię obrony w głąb: użyj wielu funkcji zabezpieczeń przeznaczonych dla różnych obszarów, aby zapewnić kompleksową ochronę przed różnymi zagrożeniami. Aby uzyskać więcej informacji, zobacz SQL Server security best practices (Najlepsze rozwiązania dotyczące zabezpieczeń programu SQL Server).