Applies to:✅ Magazyn w usłudze Microsoft Fabric
Inspekcja w usłudze Fabric Data Warehouse zapewnia ulepszone funkcje zabezpieczeń i zgodności dzięki śledzeniu i rejestrowaniu zdarzeń bazy danych.
Dzienniki inspekcji SQL można skonfigurować w Fabric Data Warehouse w portalu Fabric lub za pośrednictwem interfejsu API REST.
Wymagania wstępne
Aby skonfigurować logi audytowe SQL dla Fabric Data Warehouse, potrzebujesz następujących elementów:
- Obszar roboczy Fabric z aktywną pojemnością lub pojemnością próbną.
- Dostęp do przedmiotu magazynowego w ramach przestrzeni roboczej.
-
Uprawnienie audytu do konfigurowania i przeszukiwania dzienników inspekcji. Aby uzyskać więcej informacji, zobacz Uprawnienia.
Możesz skonfigurować logi audytowe SQL za pomocą portalu Fabric lub REST API.
W obszarze roboczym platformy Fabric wybierz Ustawienia elementu hurtowni danych.
Wybierz stronę Dzienniki inspekcji SQL .
Włącz ustawienie Zapisz zdarzenia w dziennikach inspekcji SQL.
Domyślnie wszystkie akcje są włączone i przechowywane przez dziewięć lat.
W sekcji Zdarzenia do zapisania wybierz zdarzenia, które rejestrują logi audytu SQL. Wybierz kategorie zdarzeń lub poszczególne grupy akcji audytu, które chcesz uchwycić. Wybierz tylko te zdarzenia, których wymaga Twoja organizacja, aby zoptymalizować przechowywanie danych i relewantność.
Opcjonalnie należy wpisać Wyrażenie Predykatu do filtrowania zdarzeń, na przykład wykluczając aktywność z znanego principu usługi lub tożsamości automatyzacji. Użyj składni opisanej w składni wyrażenia predykatów.
Ważne
Filtrowanie predykatów dotyczy tylko zdarzeń już wybranych w sekcji Zdarzenia do zapisu. Na przykład, aby filtrować SELECT instrukcje, musisz również włączyć opcję Batch Was Completed.
Określ żądany okres przechowywania dziennika w obszarze Lata, Miesiące i Dni.
Wybierz pozycję Zapisz , aby zastosować ustawienia.
Twój magazyn rejestruje teraz wybrane zdarzenia audytowe i bezpiecznie przechowuje logi w OneLake.
Pobierz i zainstaluj Visual Studio Code.
Zainstaluj rozszerzenie klienta REST z witryny Visual Studio Marketplace.
Zdobądź token na okaziciela, wykonując te kroki. Token nosiciela Power BI znajdziesz w narzędziach deweloperskich przeglądarki lub przez PowerShell.
Aby użyć narzędzi deweloperskich przeglądarki Edge do znalezienia tokenu dostępu Power BI:
- Otwórz obszar roboczy Microsoft Fabric w przeglądarce (Microsoft Edge).
- Naciśnij F12 , aby otworzyć narzędzia deweloperskie.
- Wybierz kartę Konsola. W razie potrzeby wybierz pozycję Rozwiń szybki widok, aby wyświetlić monit
>konsoli .
- Wpisz polecenie
powerBIAccessToken i naciśnij Enter. Kliknij prawym przyciskiem myszy duży unikatowy ciąg zwrócony w konsoli i wybierz polecenie Kopiuj zawartość ciągu.
- Wklej go zamiast
<bearer token> w poniższych skryptach.
Aby użyć programu PowerShell do znalezienia tokenu uwierzytelniającego Power BI:
Zainstaluj moduł MicrosoftPowerBIMgmt z Cmdletów Microsoft Power BI dla Windows PowerShell i PowerShell Core.
Install-Module -Name MicrosoftPowerBIMgmt
Użyj Connect-PowerBIServiceAccount aby nawiązać połączenie z programem Power BI PowerShell i pobrać token elementu nośnego.
Connect-PowerBIServiceAccount
$token = (Get-PowerBIAccessToken).Authorization
Write-Output "Bearer $token"
Po otrzymaniu tokena nosiciela Power BI, wyślij żądanie PATCH za pomocą rozszerzenia klienta REST. W VS Code utworz nowy plik tekstowy z tym rozszerzeniem .http .
Skopiuj i wklej następujące żądanie:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
{
"state": "Enabled",
"retentionDays": "0"
}
- Zastąp
<workspaceId> i <warehouseId> odpowiednimi identyfikatorami obszaru roboczego i magazynu Fabric. Aby znaleźć te wartości, odwiedź magazyn w portalu Fabric.
-
<workspaceID>: Znajdź identyfikator GUID obszaru roboczego w adresie URL po sekcji /groups/ lub poprzez uruchomienie SELECT @@SERVERNAME w istniejącym magazynie. Na przykład 11aaa111-a11a-1111-1aaa-aa111111aaa. Nie dołączaj znaków /.
-
<warehouseID>: znajdź identyfikator GUID magazynu w adresie URL po sekcji /warehouses/ lub uruchamiając SELECT @@SERVERNAME w istniejącym magazynie. Na przykład 11aaa111-a11a-1111-1aaa-aa111111aaa. Nie dołączaj znaków /.
- Zamień
<BEARER_TOKEN> na swój token dostępu .
- Ustaw
state na Enabled, aby włączyć inspekcję (aby ją wyłączyć, użyj Disabled).
- Ustaw parametr
retentionDays na 0, aby włączyć nieograniczoną retencję. Jest to ustawienie domyślne.
Ważne
W przykładowym kodzie rozszerzenia należy dołączyć pusty wiersz natychmiast po podaniu tokenu elementu nośnego. Ta pusta linia sygnalizuje rozszerzenie, gdzie kończą się nagłówki HTTP, a zaczyna się ciało poleceń API, dzięki czemu API może poprawnie rozróżnić te dwa elementy.
Wybierz pozycję Wyślij żądanie.
Sprawdzanie stanu dziennika inspekcji za pomocą interfejsu API REST
Aby zweryfikować, czy logi audytowe SQL są włączone, wyślij żądanie GET, używając tego samego rozszerzenia klienta REST.
- W VS Code utworz nowy plik tekstowy z tym rozszerzeniem
.http .
- Skopiuj i wklej następujące żądanie, podając własne
workspaceId, <warehouseId>i <BEARER_TOKEN>.
GET https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
Odpowiedź zwraca ENABLED lub DISABLED oraz bieżącą konfigurację auditActionsAndGroups i predicateExpression.
Dzienniki inspekcji SQL opierają się na wstępnie zdefiniowanych grupach akcji, które przechwytują określone zdarzenia w bazie danych. Aby uzyskać szczegółowe informacje na temat grup akcji inspekcji, zobacz dzienniki inspekcji SQL w usłudze Fabric Data Warehouse.
W VS Code utworz nowy plik tekstowy z tym rozszerzeniem .http .
Skopiuj i wklej następujące żądanie, podając własne workspaceId, <warehouseId>i <BEARER_TOKEN>.
POST https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
[ "DATABASE_OBJECT_PERMISSION_CHANGE_GROUP" ]
Wybierz pozycję Wyślij żądanie.
Użyj tego samego PATCH żądania API do skonfigurowania wyrażenia predykatowego, które wyklucza generowanie konkretnych zdarzeń, takich jak aktywność znanego principa usługi lub tożsamość automatyzacji. Pełną składnię predykatów można znaleźć w składni wyrażeń predykatów.
W VS Code utworz nowy plik tekstowy z tym rozszerzeniem .http .
Skopiuj i wklej następujące żądanie, podając własne workspaceId, <warehouseId>i <BEARER_TOKEN>.
PATCH https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: ******
{
"state": "Enabled",
"retentionDays": 10,
"predicateExpression": "NOT statement LIKE 'SELECT %'"
}
- Ten przykład wyklucza instrukcje
SELECT z audytu poprzez filtrowanie względem pola statement.
- Gdy po raz pierwszy włączasz audyt SQL, pominięcie
predicateExpression nie stosuje żadnego predykatu. W późniejszych aktualizacjach pominięcie tego pozostawia istniejący predykat bez zmian. Określ pusty ciąg (""), aby usunąć istniejący predykat.
Ważne
Filtrowanie predykatów ocenia tylko zdarzenia, które są już skonfigurowane do przechwycenia. Aby filtrować SELECT instrukcje, jak pokazano w tym przykładzie, należy również włączyć grupę akcji Batch Was Completed (BATCH_COMPLETED_GROUP). Więcej informacji można znaleźć w artykule Grupy i działania audytowe na poziomie bazy danych.
Wybierz pozycję Wyślij żądanie.
Wykonywanie zapytań dotyczących dzienników inspekcji
Dane dziennika audytu SQL są przechowywane w plikach .XEL w usłudze OneLake. Dostęp do tych danych można uzyskać, korzystając z funkcji sys.fn_get_audit_file_v2 Transact-SQL (T-SQL). Więcej informacji o tym, jak pliki audytowe są przechowywane w OneLake, można znaleźć w logach audytu SQL w Fabric Data Warehouse.
Z edytora zapytań SQL lub dowolnego narzędzia zapytań, takiego jak SQL Server Management Studio (SSMS) lub rozszerzenia MSSQL dla Visual Studio Code, użyj poniższych przykładowych zapytań T-SQL. Pamiętaj, aby podać własne <workspaceId> i <warehouseId>.
SELECT *
FROM sys.fn_get_audit_file_v2
('https://onelake.blob.fabric.microsoft.com/<workspaceId>/<warehouseId>/Audit/sqldbauditlogs/'
, default, default, default, default);
Aby filtrować dzienniki według zakresu czasu, użyj następującego zapytania:
SELECT *
FROM sys.fn_get_audit_file_v2
('https://onelake.blob.fabric.microsoft.com/<workspaceId>/<warehouseId>/Audit/sqldbauditlogs/'
, default, default, '2025-03-30T08:40:40Z', '2025-03-30T09:10:40Z');
Powiązana zawartość