Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:Azure SQL Database
Magazyn w Microsoft Fabric
Baza danych SQL w Microsoft Fabric
Funkcja sys.fn_get_audit_file_v2 systemu została zaprojektowana tak, aby pobierać dane z dziennika audytu z większą efektywnością w porównaniu do poprzednika, sys.fn_get_audit_file. Funkcja wprowadza filtrowanie oparte na czasie zarówno na poziomie pliku, jak i rekordu, co zapewnia znaczącą poprawę wydajności, szczególnie dla zapytań skierowanych do określonych przedziałów czasowych.
Zwraca informacje z pliku audytowego utworzonego podczas audytu serwera. Aby uzyskać więcej informacji, zobacz SQL Server Audit (Database Engine).
- Aby uzyskać informacje o konfiguracji audytu bazy danych Azure SQL, zobacz Rozpocznij audyt baz danych SQL.
- Aby uzyskać informacje o konfiguracji audytu Fabric Data Warehouse, zobacz SQL Audit Logs in Fabric Data Warehouse.
- Informacje o konfiguracji bazy danych SQL w audycie Fabric można znaleźć w artykule SQL Audit in SQL database in Fabric.
Transact-SQL konwencje składni
Składnia
fn_get_audit_file_v2 ( file_pattern
, { default | initial_file_name | NULL }
, { default | audit_record_offset | NULL }
, { default | start time | NULL }
, { default | end time | NULL } )
Arguments
file_pattern
Dotyczy do: Azure SQL Database only
Określa katalog lub ścieżkę oraz nazwę pliku dla zestawu plików audytowych, który ma być odczytywany. file_pattern to nvarchar(260).
Przekazanie ścieżki bez wzorca nazw pliku generuje błąd.
Ten argument służy do określenia adresu URL blob-a (w tym endpoint pamięci i kontenera). Chociaż nie obsługuje gwiazdki dzikiej, możesz użyć częściowego prefiksu nazwy pliku (blob) (zamiast pełnej nazwy blob), aby zebrać wiele plików (blobów) zaczynających się od tego prefiksu. Przykład:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/- zbiera wszystkie pliki audytowe (BLOB) dla konkretnej bazy danych.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel- zbiera konkretny plik audytowy (blob).
initial_file_name
Dotyczy do: Azure SQL Database only
Określa ścieżkę i nazwę konkretnego pliku w zestawie plików audytowych, z którego można zacząć czytać rekordy audytu. initial_file_name to nvarchar(260).
Argument initial_file_name musi zawierać poprawne wpisy lub wartość default albo NULL .
audit_record_offset
Dotyczy do: Azure SQL Database only
Określa znaną lokalizację z plikiem określonym dla initial_file_name. Gdy ten argument jest użyty, funkcja zaczyna odczyt od pierwszego rekordu bufora bezpośrednio po określonym offset.
Argument audit_record_offset musi zawierać poprawne elementy lub wartość default albo NULL .
audit_record_offset jest istotne.
start_time
Czas rozpoczęcia filtrowania logów. Zapisy sprzed tego okresu są wyłączone.
end_time
Czas na filtrowanie logów. Zapisy po tym czasie są wyłączone.
Zwrócona tabela
Poniższa tabela opisuje zawartość pliku audytowego zwracaną przez tę funkcję.
| Nazwa kolumny | Typ | Description |
|---|---|---|
event_time |
datetime2 | Data i godzina uruchomienia akcji z możliwością inspekcji. Nie może być null. |
sequence_number |
int | Śledzi sekwencję rekordów w ramach pojedynczego rekordu inspekcji, który był zbyt duży, aby zmieścić się w buforze zapisu na potrzeby inspekcji. Nie może być null. |
action_id |
varchar(4) | Identyfikacja akcji. Nie może być null. |
succeeded |
bit | Wskazuje, czy akcja, która wyzwoliła zdarzenie powiodło się. Nie może być null. W przypadku wszystkich zdarzeń innych niż zdarzenia logowania ta funkcja zgłasza tylko, czy sprawdzanie uprawnień zakończyło się powodzeniem, czy niepowodzeniem, a nie operacją.1 = powodzenie0 = niepowodzenie |
permission_bitmask |
varbinary(16) | W niektórych działaniach ta bitmaska to uprawnienia, które zostały przyznane, odrzucone lub cofnięte. |
is_column_permission |
bit | Flaga wskazująca, czy jest to uprawnienie na poziomie kolumny. Nie może być null. Zwraca, 0 gdy .permission_bitmask = 01 = prawda0 = fałsz |
session_id |
smallint | Identyfikator sesji, w której wystąpiło zdarzenie. Nie może być null. |
server_principal_id |
int | Identyfikator kontekstu logowania, w ramach którego jest wykonywana akcja. Nie może być null. |
database_principal_id |
int | Identyfikator kontekstu użytkownika bazy danych, w ramach którego jest wykonywana akcja. Nie może być null. Zwroty 0 , jeśli to nie dotyczy. Na przykład operacja serwera. |
target_server_principal_id |
int | Zasada serwera, na której wykonywana jest operacjaGRANT/DENY/REVOKE. Nie może być null. Zwroty 0 , jeśli nie mają zastosowania. |
target_database_principal_id |
int | Na zasadzie bazy danych, na której wykonywana jest operacjaGRANT/DENY/REVOKE. Nie może być null. Zwroty 0 , jeśli nie mają zastosowania. |
object_id |
int | ID podmiotu, na którym przeprowadzono audyt, który obejmuje następujące obiekty: - Obiekty serwera -Baz danych - Obiekty bazy danych - Obiekty schematu Nie może być null. Zwraca się 0 , czy jednostką jest sam Serwer, czy audyt nie został przeprowadzony na poziomie obiektu. Na przykład uwierzytelnianie. |
class_type |
varchar(2) | Typ jednostki inspekcji wykonywanej przez inspekcję. Nie może być null. |
session_server_principal_name |
sysname | Serwer na sesję. Nullable. Zwraca tożsamość oryginalnego logowania połączonego z instancją silnika bazy danych na wypadek jawnych lub ukrytych zmian kontekstu. |
server_principal_name |
sysname | Bieżące logowanie. Nullable. |
server_principal_sid |
varbinary | Bieżący identyfikator SID logowania. Nullable. |
database_principal_name |
sysname | Bieżący użytkownik. Nullable. Zwroty NULL , jeśli nie są dostępne. |
target_server_principal_name |
sysname | Zalogowanie do celu lub akcja. Nullable. Zwroty NULL , jeśli nie mają zastosowania. |
target_server_principal_sid |
varbinary | SID logowania do celu. Nullable. Zwroty NULL , jeśli nie mają zastosowania. |
target_database_principal_name |
sysname | Docelowy użytkownik działania. Nullable. Zwroty NULL , jeśli nie mają zastosowania. |
server_instance_name |
sysname | Nazwa wystąpienia serwera, w którym wystąpiła inspekcja. Stosowany jest standardowy server\instance format. |
database_name |
sysname | Kontekst bazy danych, w którym wystąpiła akcja. Nullable. Zwroty NULL z audytów przeprowadzanych na poziomie serwera. |
schema_name |
sysname | Kontekst schematu, w którym wystąpiła akcja. Nullable. Zwroty NULL z audytów wykonywanych poza schematem. |
object_name |
sysname | Nazwa podmiotu, na którym przeprowadzono audyt, obejmująca następujące obiekty: - Obiekty serwera -Baz danych - Obiekty bazy danych - Obiekty schematu Nullable. Zwraca się NULL , czy jednostką jest sam Serwer, czy audyt nie został przeprowadzony na poziomie obiektu. Na przykład uwierzytelnianie. |
statement |
nvarchar(4000) | Transact-SQL oświadczenie, jeśli w ogóle istnieje. Nullable. Zwroty NULL , jeśli nie mają zastosowania. |
additional_information |
nvarchar(4000) | Unikatowe informacje, które dotyczą tylko jednego zdarzenia, są zwracane jako XML. Kilka akcji podlegających inspekcji zawiera tego rodzaju informacje. Jeden poziom stosu T-SQL jest wyświetlany w formacie XML dla akcji, które mają powiązany stos T-SQL. Format XML to: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level wskazuje aktualny poziom zagnieżdżenia ramki. Nazwa modułu jest reprezentowana w formacie trzech części (database_name, schema_name, oraz object_name). Nazwa modułu jest analizowana, aby uniknąć nieprawidłowych znaków XML takich jak <, >, /, _x. Uciekli jako _xHHHH_. Oznacza HHHH czterocyfrowy szesnastkowy kod UCS-2 dla znaku. Nullable. Wraca, NULL gdy nie ma dodatkowych informacji zgłaszanych przez wydarzenie. |
file_name |
varchar(260) | Ścieżka i nazwa pliku dziennika inspekcji, z którego pochodzi rekord. Nie może być null. |
audit_file_offset |
bigint | Przesunięcie buforu w pliku zawierającym rekord inspekcji. Nie może być null. |
user_defined_event_id |
smallint | Identyfikator zdarzenia zdefiniowany przez użytkownika przekazywany jako argument do sp_audit_write.
NULL dla zdarzeń systemowych (domyślnie) oraz niezerowych dla zdarzeń zdefiniowanych przez użytkownika. Aby uzyskać więcej informacji, zobacz sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Służy do rejestrowania wszelkich dodatkowych informacji, które użytkownik chce zarejestrować w dzienniku sp_audit_write inspekcji przy użyciu procedury składowanej. |
audit_schema_version |
int | Zawsze 1. |
sequence_group_id |
varbinary | Unikalny identyfikator.< |
transaction_id |
bigint | Unikalny identyfikator do identyfikacji wielu zdarzeń audytowych w jednej transakcji. |
client_ip |
nvarchar(128) | Źródłowe IP aplikacji klienckiej. |
application_name |
nvarchar(128) | Nazwa aplikacji klienckiej, która wykonała zdarzenie wywołające zdarzenie audytu. |
duration_milliseconds |
bigint | Czas wykonania zapytań w milisekundach. |
response_rows |
bigint | Liczba wierszy zwracanych w zbiorze wyników.< |
affected_rows |
bigint | Liczba wierszy dotkniętych wykonanym zdaniem. |
connection_id |
uniqueidentifier | Identyfikator połączenia na serwerze. |
data_sensitivity_information |
nvarchar(4000) | Typy informacji i etykiety poufności zwracane przez zapytanie poddane inspekcji na podstawie kolumn sklasyfikowanych w bazie danych. Dowiedz się więcej o odkrywaniu i klasyfikacji danych Azure SQL Database. |
host_name |
nvarchar(128) | Nazwa hosta komputera-klienta. |
session_context |
nvarchar(4000) | Pary klucz-wartość będące częścią bieżącego kontekstu sesji. |
client_tls_version |
bigint | Minimalna wersja TLS obsługiwana przez klienta. |
client_tls_version_name |
nvarchar(128) | Minimalna wersja TLS obsługiwana przez klienta. |
database_transaction_id |
bigint | Identyfikator transakcji aktualnej transakcji w bieżącej sesji. |
ledger_start_sequence_number |
bigint | Numer sekwencyjny operacji w ramach transakcji, która utworzyła wersję wierszową. |
external_policy_permissions_checked |
nvarchar(4000) | Informacje dotyczące sprawdzania zewnętrznych uprawnień, momentu generowania zdarzenia audytowego oraz oceny polityk zewnętrznych autoryzacji Purview. |
obo_middle_tier_app_id |
varchar(120) | ID aplikacji średniej klasy, która łączy się za pomocą dostępu on-behalf-of (OBO). Nullable. Zwraca, NULL jeśli żądanie nie zostało złożone przez dostęp OBO. |
is_local_secondary_replica |
bit |
Truejeśli rekord audytu pochodzi z lokalnej repliki wtórnej tylko do odczytu, w przeciwnym razie. False |
Ulepszenia w sys.fn_get_audit_file
Funkcja ta sys.fn_get_audit_file_v2 stanowi znaczną poprawę względem starszych sys.fn_get_audit_file poprzez wprowadzenie efektywnego filtrowania czasowego zarówno na poziomie pliku, jak i rekordu. Ta optymalizacja jest szczególnie korzystna dla zapytań skierowanych do krótszych przedziałów czasowych i może pomóc utrzymać wydajność w środowiskach wielobazowych danych.
Filtrowanie dwupoziomowe
Filtrowanie na poziomie plików: Funkcja najpierw filtruje pliki na podstawie określonego zakresu czasowego, zmniejszając liczbę plików wymagających skanowania.
Filtrowanie na poziomie rekordu: Następnie stosuje filtrowanie w wybranych plikach, aby wyodrębnić tylko odpowiednie rekordy.
Ulepszenia wydajności
Poprawa wydajności zależy głównie od czasu przejścia plików blob oraz zapytania. Przy założeniu jednolitego rozkładu dokumentacji audytowej:
Zmniejszenie obciążenia: Minimalizując liczbę plików i rekordów do skanowania, zmniejsza się obciążenie systemu i poprawia czas odpowiedzi na zapytania.
Skalowalność: Pomaga utrzymać wydajność nawet przy wzroście liczby baz danych, choć poprawa netto może być mniej widoczna w środowiskach z dużą liczbą baz danych.
Uwagi
Jeśli argument file_pattern przekazany do fn_get_audit_file_v2 odwołania się do ścieżki lub pliku, który nie istnieje, albo jeśli plik nie jest plikiem audytowym, MSG_INVALID_AUDIT_FILE komunikat o błędzie jest zwracany.
Funkcja ta fn_get_audit_file_v2 nie może być użyta, gdy audyt jest tworzony za pomocą APPLICATION_LOGopcji , SECURITY_LOG, lub EXTERNAL_MONITOR .
Obecnie w Fabric Data Warehouse nie możesz uzyskać dostępu do pojedynczych plików, tylko do folderu audytu. Następujące argumenty nie są wspierane dla audytu SQL na pozycie magazynowym: file_pattern, initial_file_name, . audit_record_offset
Permissions
Uprawnienia wymagane w Azure SQL Database
Wymaga uprawnienia CONTROL DATABASE.
Administratorzy serwerów mają dostęp do logów audytowych wszystkich baz danych na serwerze.
Osoby niebędące administratorami serwerów mogą uzyskać dostęp do logów audytowych tylko z aktualnej bazy danych.
Bloby, które nie spełniają powyższych kryteriów, są pomijane (lista pominiętych blobów jest wyświetlana w wiadomości wyjściowej zapytania). Funkcja zwraca logi tylko z blobów, do których dostęp jest dozwolony.
Uprawnienia wymagane w bazie danych Fabric SQL
Aby zarządzać audytem za pomocą ról w przestrzeni roboczej Fabric, użytkownicy muszą posiadać członkostwo w roli Współtwórcy przestrzeni roboczej Fabric lub wyższe uprawnienia. Aby zarządzać inspekcją przy użyciu uprawnień SQL:
- Aby skonfigurować inspekcję bazy danych, użytkownicy muszą mieć uprawnienie ALTER ANY DATABASE AUDIT.
- Aby wyświetlić dzienniki inspekcji przy użyciu T-SQL, użytkownicy muszą mieć uprawnienie WYŚWIETL AUDYT BEZPIECZEŃSTWA BAZY DANYCH.
Więcej informacji można znaleźć w sekcji Audyt w bazie danych Fabric SQL.
Wymagane uprawnienia w Fabric Data Warehouse
Użytkownicy muszą mieć uprawnienia do przedmiotu Audit Fabric. Aby uzyskać więcej informacji, zobacz Uprawnienia.
Przykłady
A. Zobacz logi audytowe SQL dla Azure SQL Database
Ten przykład pobiera logi audytowe z konkretnej lokalizacji Azure Blob Storage, filtrując rekordy między 2023-11-17T08:40:40Z a .2023-11-17T09:10:40Z
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://<storage_account>.blob.core.windows.net/sqldbauditlogs/server_name/database_name/SqlDbAuditing_ServerAudit/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
B. Zobacz logi audytowe SQL dla Fabric Data Warehouse
Ten przykład pobiera logi audytowe z folderu OneLake wyrównane z aktualnym workspace i magazynem, filtrując rekordy między 2023-11-17T08:40:40Z a 2023-11-17T09:10:40Z.
W portalu Fabric pobierz swoje workspaceID i warehouseID:
-
<workspaceID>: Odwiedź swoje miejsce pracy w portalu Tkanina. Znajdź GUID przestrzeni roboczej w URL po sekcji/groups/lub uruchamiającSELECT @@SERVERNAMEw istniejącym magazynie. Jeśli Twój/groups/URL jest poprzedzony przez/me/, używasz domyślnego workspace, a obecnie SQL Audit for Fabric Data Warehouse nie jest wspierany w domyślnym workspace. -
<warehouseID>: Odwiedź swój magazyn w portalu Tkaniny. Znajdź ID magazynu w URL po sekcji/warehouses/.
SELECT *
FROM sys. fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/{workspaceId}/{warehouseId}/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
C. Zobacz logi audytowe SQL dla bazy danych SQL w Microsoft Fabric
Ten przykład pobiera logi audytowe z OneLake w Microsoft Fabric, pomiędzy 2025-11-17T08:40:40Z a 2025-11-17T09:10:40Z.
W poniższym skrypcie musisz podać identyfikator przestrzeni roboczej Microsoft Fabric oraz identyfikator bazy danych. Oba można znaleźć w adresie URL portalu Fabric. Na przykład: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. Pierwszym unikalnym ciągiem identyfikatora w URL jest identyfikator przestrzeni roboczej Fabric, a drugim unikalnym ciągiem identyfikatora jest identyfikator bazy danych SQL.
- Zastąp
<fabric_workspace_id>identyfikatorem obszaru roboczego Fabric. Identyfikator obszaru roboczego można łatwo znaleźć w adresie URL. Jest to unikatowy ciąg w dwóch/znakach po/groups/w oknie przeglądarki. - Zastąp
<fabric sql database id>swoją bazą danych SQL w identyfikatorze bazy danych Fabric. Identyfikator elementu bazy danych można łatwo znaleźć w adresie URL. Jest to unikatowy ciąg w dwóch/znakach po/sqldatabases/w oknie przeglądarki.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2025-11-17T08:40:40Z',
'2025-11-17T09:10:40Z')
Więcej informacji
Widoki katalogu systemowego:
- sys.specyfikacje_audytu_serwera (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Transact-SQL:
- UTWORZENIE AUDYTU SERWERA (Transact-SQL)
- AUDYT ALTER SERVER (Transact-SQL)
- AUDYT SERWERA DROP (Transact-SQL)
- UTWÓRZ SPECYFIKACJĘ AUDYTU SERWERA (Transact-SQL)
- SPECYFIKACJA AUDYTU ALTER SERVER (Transact-SQL)
- SPECYFIKACJA AUDYTU SERWERA DROP (Transact-SQL)
- UTWÓRZ SPECYFIKACJĘ AUDYTU BAZY DANYCH (Transact-SQL)
- ZMIEŃ SPECYFIKACJĘ AUDYTU BAZY DANYCH (Transact-SQL)
- USUŃ SPECYFIKACJĘ AUDYTU BAZY DANYCH (Transact-SQL)
- ZMIEŃ AUTORYZACJĘ (Transact-SQL)
Treści powiązane
- Tworzenie inspekcji serwera i specyfikacji inspekcji serwera
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- Rozpocznij audyt baz danych SQL
- Logi audytowe SQL w Fabric Data Warehouse