Dzienniki inspekcji SQL w usłudze Fabric Data Warehouse

Dotyczy:✅ końcowego punktu analizy SQL i magazynu danych w usłudze Microsoft Fabric

Inspekcja w Fabric Data Warehouse zapewnia ulepszone funkcje zabezpieczeń i zgodności dzięki śledzeniu i rejestrowaniu zdarzeń bazy danych.

Dzięki logom audytowym SQL możesz monitorować działania bazowe danych, wykrywać potencjalne zagrożenia bezpieczeństwa oraz spełniać wymagania zgodności poprzez prowadzenie śladu audytu kluczowych działań, takich jak:

  • Próby uwierzytelniania i zmiany kontroli dostępu
  • Operacje dostępu do danych i modyfikacji
  • Zmiany schematu i działania administracyjne
  • Zmiany uprawnień i konfiguracje zabezpieczeń

Ważne

Domyślnie dzienniki inspekcji SQL są WYŁĄCZONE. Użytkownicy z uprawnieniami do zapytań audytowych muszą je włączyć, aby przechwytywać dzienniki.

Aby rozpocząć, zapoznaj się z krokami w temacie Jak skonfigurować dzienniki inspekcji SQL w usłudze Fabric Data Warehouse.

Magazyn

Dzienniki inspekcji SQL są szyfrowane w stanie spoczynku i przechowywane w usłudze OneLake.

W przypadku usługi Fabric Data Warehouse, dzienniki audytu są zapisywane w .XEL plikach przechowywanych w folderze audytu magazynu w OneLake.

Użytkownicy z następującymi rolami mogą uzyskać dostęp do folderu inspekcji:

  • Administratorzy obszaru roboczego
  • Członkowie obszaru roboczego
  • Współautorzy obszaru roboczego
  • Osoby przeglądające obszar roboczy z prawem do odczytu wszystkich danych

Ci użytkownicy mogą:

  • Przeglądanie folderu Inspekcja
  • Wyświetl pliki inspekcji .XEL generowane przez audyt SQL
  • Kopiowanie plików na potrzeby analizy offline
  • Otwórz pliki za pomocą narzędzi, takich jak SQL Server Management Studio (SSMS)

Można również zapytania logi audytów za pomocą języka T-SQL za pośrednictwem sys.fn_get_audit_file_v2.

Aby uzyskać instrukcje, zobacz Jak skonfigurować dzienniki inspekcji SQL w usłudze Fabric Data Warehouse.

Wskazówka

Konfigurowanie dzienników inspekcji w usłudze Microsoft Fabric Data Warehouse może zwiększyć koszty magazynowania w zależności od zarejestrowanych grup akcji i zdarzeń. Włącz tylko wymagane zdarzenia, aby uniknąć niepotrzebnych kosztów przechowywania.

Wydajność

Funkcja logów audytu SQL jest zoptymalizowana pod kątem dostępności i wydajności bazy danych poddawanej audytowi. W okresach bardzo dużej aktywności lub dużego obciążenia sieciowego funkcja inspekcji może zezwalać na kontynuowanie transakcji bez rejestrowania wszystkich zdarzeń oznaczonych do inspekcji.

Uprawnienia

Użytkownicy muszą mieć uprawnienie Inspekcja zapytań (Inspekcja) do konfigurowania dzienników audytów i wykonywania zapytań względem nich.

  • Domyślnie administratorzy obszaru roboczego mają uprawnienia do zapytań audytowych we wszystkich elementach w obszarze roboczym.
  • Administratorzy mogą przyznawać innym użytkownikom uprawnienia do zapytań audytowych dotyczących elementów za pomocą okna dialogowego udostępniania.

Administratorzy przestrzeni roboczej mogą przyznać uprawnienia do zapytań audytowych dla elementu, korzystając z opcji wspólnego menu w portalu Fabric. Aby sprawdzić, czy użytkownik ma uprawnienia do zapytania audytu, sprawdź ustawienia Zarządzanie uprawnieniami.

  1. W elemencie magazynu wybierz przycisk Udostępnij.

    Lub w portalu Fabric, w swojej przestrzeni roboczej. Wybierz menu kontekstowe ... dla elementu magazynowego, a następnie wybierz pozycję Zarządzaj uprawnieniami.

  2. W panelu dostępu osób nadaj uprawnienia użytkownikowi.

    Zrzut ekranu pokazujący, gdzie wybrać uprawnienie Inspekcja zapytań (Inspekcja) w menu Udostępniania elementu.

Zapytywanie logów audytu za pomocą uprawnień T-SQL

Udziel użytkownikom VIEW DATABASE SECURITY AUDIT uprawnień, aby mogli zapytywać logi audytowe za pomocą uprawnień T-SQL, nawet jeśli nie mają ról administracyjnych w przestrzeni roboczej.

Po przyznaniu następujących uprawnień, użytkownik może zapytać o dzienniki audytu, korzystając z funkcji sys.fn_get_audit_file_v2 :

GRANT VIEW DATABASE SECURITY AUDIT TO [user];

Wskazówka

Uprawnienia te VIEW DATABASE SECURITY AUDIT dają jedynie możliwość zapytań w logach audytu. Nie daje dostępu do plików ani nie pozwala na modyfikację konfiguracji audytu.

Grupy i akcje inspekcji na poziomie bazy danych

Aby zwiększyć dostępność konfiguracji dziennika inspekcji, portal Fabric używa przyjaznych nazw, aby ułatwić administratorom spoza SQL i innym użytkownikom łatwe zrozumienie przechwyconych zdarzeń hurtowni danych Fabric.

Platforma Fabric mapuje te przyjazne nazwy na podstawowe grupy zdarzeń audytu SQL. Użyj poniższej tabeli jako odwołania.

Przyjazna nazwa Nazwa grupy akcji Opis
Dostęp do obiektu DATABASE_OBJECT_ACCESS_GROUP Rejestruje dostęp do obiektów bazy danych, takich jak typy komunikatów, zestawy lub kontrakty.
Obiekt został zmieniony DATABASE_OBJECT_CHANGE_GROUP Rejestruje operacje CREATE, ALTERlub DROP na obiektach bazy danych.
Właściciel obiektu został zmieniony DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP Rejestruje zmiany własności obiektów bazy danych.
Uprawnienia obiektu zostały zmienione DATABASE_OBJECT_PERMISSION_CHANGE_GROUP Rejestruje akcje GRANT, REVOKElub DENY na obiektach bazy danych.
Użytkownik został zmieniony DATABASE_PRINCIPAL_CHANGE_GROUP Rejestruje tworzenie, modyfikowanie lub usuwanie podmiotów bazy danych (użytkowników, ról).
Użytkownik został personifikowany DATABASE_PRINCIPAL_IMPERSONATION_GROUP Rejestruje operacje podszywania się (takie jak EXECUTE AS).
Członek roli został zmieniony DATABASE_ROLE_MEMBER_CHANGE_GROUP Rejestruje dodawanie lub usuwanie logowań z roli bazy danych.
Użytkownik nie może się zalogować FAILED_DATABASE_AUTHENTICATION_GROUP Loguje nieudane próby uwierzytelnienia w bazie danych.
Uprawnienia schematu zostały użyte SCHEMA_OBJECT_ACCESS_GROUP Rejestruje dostęp do obiektów schematu.
Schemat został zmieniony SCHEMA_OBJECT_CHANGE_GROUP Rejestruje operacje CREATE, ALTERlub DROP na schematach.
Sprawdzono uprawnienie obiektu schematu SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP Rejestruje zmiany własności obiektu schematu.
Zmiana uprawnień obiektu schematu SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP Rejestruje akcje GRANT, REVOKElub DENY na obiektach schematu.
Zakończono przetwarzanie partii BATCH_COMPLETED_GROUP To zdarzenie jest wywoływane za każdym razem, gdy dowolny tekst wsadowy, procedura składowana lub operacja zarządzania transakcjami zakończy wykonywanie.
Usługa Batch została uruchomiona BATCH_STARTED_GROUP To zdarzenie jest wywoływane za każdym razem, gdy zostanie uruchomiony dowolny tekst wsadowy, procedura składowana lub operacja zarządzania transakcjami.
Inspekcja została zmieniona AUDIT_CHANGE_GROUP To zdarzenie jest zgłaszane za każdym razem, gdy zostanie utworzona, zmodyfikowana lub usunięta inspekcja.
Użytkownik wylogowany DATABASE_LOGOUT_GROUP To zdarzenie jest zgłaszane, gdy użytkownik bazy danych wylogował się z bazy danych.
Zalogowany użytkownik SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP Wskazuje, że podmiot zabezpieczeń pomyślnie zalogował się do bazy danych.

Akcje inspekcji na poziomie bazy danych

Oprócz grup akcji można skonfigurować poszczególne akcje inspekcji w celu rejestrowania określonych zdarzeń bazy danych:

Akcja inspekcji Opis
SELECT Rejestruje instrukcje SELECT na określonym obiekcie.
INSERT Rejestruje operacje INSERT na określonym obiekcie.
UPDATE Rejestruje operacje UPDATE na określonym obiekcie.
DELETE Rejestruje operacje DELETE na określonym obiekcie.
EXECUTE Rejestruje przebieg wykonywania procedur składowanych lub funkcji.
RECEIVE Rejestruje operacje w kolejkach usługi Service Broker RECEIVE.
REFERENCES Rejestruje kontrole uprawnień związane z ograniczeniami klucza obcego.

Redukuj szum audytowy dzięki filtrowaniu predykatów

Aby filtrować, które zdarzenia są rejestrowane, użyj opcjonalnego filtra wyrażeń predykatów .

Stosuj filtrowanie predykatów, aby zmniejszyć szum wynikający z oczekiwanych, powtarzalnych działań, takich jak tożsamości automatyzacji, zasady usługi czy zaplanowane zadania, bez konieczności wyłączania grup akcji potrzebnych Twojej organizacji do celów zgodności lub dochodzenia.

  • Tylko gdy zdarzenie odpowiada skonfigurowanemu predykatowi, generowany jest event log audytu SQL dla tego działania.
    • Filtrowanie odbywa się przed zapisaniem zdarzenia, więc wykluczone zdarzenia nie są dostępne później do retrospektywnego badania. Traktuj wykluczenia predykatów jako świadomą decyzję audytowo-polityczną i okresowo przeglądaj skonfigurowany predykat, gdy zmienia się własność, uprawnienia i profile ryzyka.
  • Filtrowanie predykatów ocenia tylko zdarzenia, które są już skonfigurowane do przechwycenia przez włączoną grupę lub akcję audytu.
    • Jeśli grupa akcji nie jest włączona, nie generuje się żadnego zdarzenia, które predykat mógłby ocenić, a filtr nie ma efektu. Na przykład, aby filtrować SELECT instrukcje za pomocą predykatu w statement polu, najpierw należy włączyć grupę akcji Batch Was Completed (BATCH_COMPLETED_GROUP).

Możesz skonfigurować wyrażenie predykatów, korzystając z portalu Fabric lub API REST. Aby uzyskać kroki, zobacz Konfiguruj wyrażenie predykatowe.

Składnia wyrażeń predykatów

Wyrażenia predykatów używają tej samej składni co klauzula <predicate_expression> w CREATE SERVER AUDIT (Transact-SQL), bez słowa WHERE kluczowego:

<predicate_expression> ::=
    { [ NOT ] <predicate_factor>
    [ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }

<predicate_factor> ::=
    event_field_name { = | <> | != | > | >= | < | <= | LIKE }
    { number | 'string' }
  • event_field_nameodpowiada kolumnie zwracanej przez sys.fn_get_audit_file (Transact-SQL). Możesz używać wszystkich udokumentowanych kolumn, z wyjątkiem file_name, audit_file_offset, i event_time.
  • action_id i class_type są ciągami znaków, ale można je porównać tylko z wartościami liczbowymi w predykacie.
  • Porównania ciągów znaków nie wykonują niejawnej konwersji typów.
  • Maksymalna długość wyrażenia wynosi 3 000 znaków.
  • Pusty ciąg oznacza brak predykatu.

Na przykład, aby wykluczyć aktywność generowaną przez znaną główną usługę lub tożsamość automatyzacji, filtruj na server_principal_name. Aby wykluczyć powtarzające SELECT się instrukcje, filtruj w statement polu: NOT statement LIKE 'SELECT %'.

Ograniczenia

  • Domyślny obszar roboczy nie obsługuje dzienników inspekcji SQL.
  • Dzienniki inspekcji SQL nie są obsługiwane dla migawek magazynu.

Ważne

Dzienniki inspekcji są przechowywane w elemencie Magazyn w usłudze OneLake. Jeśli usuniesz magazyn, usuniesz również skojarzone pliki dziennika inspekcji i nie będzie już można uzyskać do nich dostępu.
Aby zachować dzienniki inspekcji na potrzeby zgodności lub badania, skopiuj .XEL pliki do innej lokalizacji przed usunięciem magazynu.

Ograniczenia punktu końcowego analizy SQL

Podczas inspekcji punktów końcowych analizy SQL obowiązują następujące ograniczenia:

  • Operacje DML nie są przechwytywane. Audyt nie rejestruje operacji, takich jak INSERT, UPDATE, DELETE, i MERGE, ponieważ manipulacja danymi w tabelach Lakehouse odbywa się przez środowisko uruchomieniowe Lakehouse, a nie za pośrednictwem punktu końcowego analizy SQL.
  • Bezpośredni dostęp do folderu inspekcji nie jest obecnie obsługiwany. Użytkownicy nie mogą przeglądać ani pobierać bazowych .XEL plików audytu z folderu audytu Lakehouse.

Nadal możesz zapytać o zdarzenia audytowe dla punktów końcowych SQL analityki, korzystając z funkcji sys.fn_get_audit_file_v2T-SQL.

Następny krok