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:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database w usłudze Microsoft Fabric
Zwraca informacje z pliku inspekcji utworzonego przez inspekcję serwera w programie SQL Server. Aby uzyskać więcej informacji, zobacz Inspekcja programu SQL Server (aparat bazy danych).
Wskazówka
Rozważ użycie sys.fn_get_audit_file_v2 zamiast tego. Funkcja wprowadza sys.fn_get_audit_file_v2 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.
Wskazówka
Dla Fabric Data Warehouse jest obsługiwany, sys.fn_get_audit_file ale sys.fn_get_audit_file_v2 (Transact-SQL) jest zalecany. Funkcja wprowadza sys.fn_get_audit_file_v2 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. Więcej informacji i przykładów można znaleźć w sekcji Configure Auditing in Fabric Data Warehouse.
Wskazówka
Dla baz danych SQL w Fabric, jest obsługiwany, sys.fn_get_audit_file ale sys.fn_get_audit_file_v2 (Transact-SQL ) jest zalecany. Funkcja wprowadza sys.fn_get_audit_file_v2 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. Więcej informacji i przykładów można znaleźć w artykule Konfiguruj audyt w bazie danych Fabric SQL.
Transact-SQL konwencje składni
Składnia
fn_get_audit_file ( file_pattern ,
{ default | initial_file_name | NULL } ,
{ default | audit_record_offset | NULL } )
Argumenty (w programowaniu)
file_pattern
Określa katalog lub ścieżkę i nazwę pliku dla pliku inspekcji, który ma być odczytany. Typ to nvarchar(260).
Przekazywanie ścieżki bez wzorca nazwy pliku generuje błąd.
Ten argument musi zawierać zarówno ścieżkę (literę dysku lub udział sieciowy), jak i nazwę pliku, która może zawierać symbol wieloznaczny. Pojedyncza gwiazdka (*) może służyć do zbierania wielu plików z zestawu plików inspekcji. Przykład:
\<path>\*— Zbierz wszystkie pliki inspekcji w określonej lokalizacji.<path>\LoginsAudit_{GUID}*— Zbierz wszystkie pliki inspekcji, które mają określoną nazwę i parę identyfikatorów GUID.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit— Zbierz określony plik inspekcji.
initial_file_name
Określa ścieżkę i nazwę określonego pliku w pliku inspekcji ustawionym na rozpoczęcie odczytywania rekordów inspekcji. Typ to nvarchar(260).
Argument initial_file_name musi zawierać prawidłowe wpisy lub musi zawierać default wartość lub NULL .
audit_record_offset
Określa znaną lokalizację z plikiem określonym dla initial_file_name. Gdy ten argument jest używany, funkcja rozpoczyna odczytywanie pierwszego rekordu buforu bezpośrednio po określonym przesunięciu.
Argument audit_record_offset musi zawierać prawidłowe wpisy lub musi zawierać default wartość lub NULL . Typ jest bigint.
Zwrócone tabele
W poniższej tabeli opisano zawartość pliku inspekcji, która może zostać zwrócona przez tę funkcję.
| Nazwa kolumny | Typ | Opis |
|---|---|---|
event_time |
data/godzina2 | Data i godzina UTC 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) | Identyfikator 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 akcjach ta maska bitów to uprawnienia, które zostały przyznane, odrzucone lub odwołane. |
is_column_permission |
bit | Flaga wskazująca, czy jest to uprawnienie na poziomie kolumny. Nie może być null. Zwraca wartość 0 , gdy elementpermission_bitmask = 0 .1 = 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. Zwraca wartość 0 , jeśli nie ma to zastosowania. Na przykład operacja serwera. |
target_server_principal_id |
Int | Podmiot zabezpieczeń serwera, na podstawie którego jest wykonywana GRANT/DENY/REVOKE operacja. Nie może być null. Zwraca wartość 0 , jeśli nie ma zastosowania. |
target_database_principal_id |
Int | Jednostka bazy danych wykonywana GRANT/DENY/REVOKE jest na operacji. Nie może być null. Zwraca wartość 0 , jeśli nie ma zastosowania. |
object_id |
Int | Identyfikator jednostki, na której wystąpił inspekcja, która zawiera następujące obiekty: - Obiekty serwera -Baz danych - Obiekty bazy danych - Obiekty schematu Nie może być null. Zwraca wartość 0 , jeśli jednostka jest samym serwerem lub jeśli inspekcja nie jest wykonywana na poziomie obiektu. Na przykład uwierzytelnianie. |
class_type |
varchar(2) | Typ podlegającego audytowi podmiotu, na którym jest przeprowadzany audyt. Nie może być null. |
session_server_principal_name |
nazwa systemu | Podmiot serwera dla sesji. Zmienna mogąca przyjmować wartość null. Zwraca tożsamość oryginalnego identyfikatora logowania połączonego z wystąpieniem aparatu bazy danych w przypadku jawnych lub niejawnych przełączników kontekstu. |
server_principal_name |
nazwa systemu | Bieżące logowanie. Zmienna mogąca przyjmować wartość null. |
server_principal_sid |
varbinary (zmienna) | Bieżący identyfikator zabezpieczeń logowania (SID). Zmienna mogąca przyjmować wartość null. |
database_principal_name |
nazwa systemu | Bieżący użytkownik. Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , jeśli nie jest dostępna. |
target_server_principal_name |
nazwa systemu | Docelowe logowanie akcji. Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , jeśli nie ma zastosowania. |
target_server_principal_sid |
varbinary (zmienna) | Identyfikator SID logowania docelowego. Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , jeśli nie ma zastosowania. |
target_database_principal_name |
nazwa systemu | Docelowy użytkownik działania. Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , jeśli nie ma zastosowania. |
server_instance_name |
nazwa systemu | Nazwa wystąpienia serwera, w którym wystąpiła inspekcja. Używany jest standardowy server\instance format. |
database_name |
nazwa systemu | Kontekst bazy danych, w którym wystąpiła akcja. Zmienna mogąca przyjmować wartość null. Zwraca dane NULL dla inspekcji występujących na poziomie serwera. |
schema_name |
nazwa systemu | Kontekst schematu, w którym wystąpiła akcja. Zmienna mogąca przyjmować wartość null. Zwraca dane NULL dla inspekcji występujących poza schematem. |
object_name |
nazwa systemu | Nazwa jednostki, na której wystąpiła inspekcja, która zawiera następujące obiekty: - Obiekty serwera -Baz danych - Obiekty bazy danych - Obiekty schematu Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , jeśli jednostka jest samym serwerem lub jeśli inspekcja nie jest wykonywana na poziomie obiektu. Na przykład uwierzytelnianie. |
statement |
nvarchar(4000) | Transact-SQL instrukcji, jeśli istnieje. Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , jeśli nie ma 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ą skojarzony stos języka 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 bieżący poziom zagnieżdżania ramki. Nazwa modułu jest reprezentowana w trzyczęściowym formacie (database_name, schema_name, i object_name). Nazwa modułu jest analizowana w celu uniknięcia nieprawidłowych znaków XML, takich jak <, >, /, . _x Są one ucieczki jako _xHHHH_. Oznacza HHHH czterocyfrowy kod szesnastkowy UCS-2 dla znaku. Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , gdy nie ma żadnych dodatkowych informacji zgłoszonych przez zdarzenie. |
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 powiedział: | Przesunięcie buforu w pliku zawierającym rekord inspekcji. Nie może być null. Dotyczy: tylko program SQL Server |
user_defined_event_id |
smallint | Identyfikator zdarzenia zdefiniowanego przez użytkownika został przekazany jako argument do sp_audit_writeelementu .
NULL dla zdarzeń systemowych (ustawienie domyślne) i niezerowe dla zdarzenia zdefiniowanego przez użytkownika. Aby uzyskać więcej informacji, zobacz sp_audit_write.Dotyczy: SQL Server 2012 (11.x) i nowsze wersje, Azure SQL Database i SQL Managed Instance |
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.Dotyczy: SQL Server 2012 (11.x) i nowsze wersje, Azure SQL Database i SQL Managed Instance |
audit_schema_version |
Int | Zawsze 1. |
sequence_group_id |
varbinary (zmienna) | Unikatowy identyfikator. Dotyczy: SQL Server 2016 (13.x) i nowsze wersje |
transaction_id |
Bigint powiedział: | Unikatowy identyfikator identyfikujące wiele zdarzeń inspekcji w jednej transakcji. Dotyczy: SQL Server 2016 (13.x) i nowsze wersje |
client_ip |
nvarchar(128) | Źródłowy adres IP aplikacji klienckiej. Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz Azure SQL Database |
application_name |
nvarchar(128) | Nazwa aplikacji klienckiej, która wykonała instrukcję, która spowodowała zdarzenie inspekcji. Dotyczy: SQL Server 2017 (14.x) i nowsze wersje oraz Azure SQL Database |
duration_milliseconds |
Bigint powiedział: | Czas trwania wykonywania zapytania w milisekundach. Dotyczy: Azure SQL Database i SQL Managed Instance |
response_rows |
Bigint powiedział: | Liczba wierszy zwróconych w zestawie wyników. Dotyczy: Azure SQL Database i SQL Managed Instance |
affected_rows |
Bigint powiedział: | Liczba wierszy zmienionych przez wykonane polecenie. Dotyczy: tylko usługa Azure SQL Database |
connection_id |
unikalnyidentyfikator | Identyfikator połączenia na serwerze. Dotyczy: Azure SQL Database i SQL Managed Instance |
data_sensitivity_information |
nvarchar(4000) | Typy informacji i etykiety poufności zwracane przez zapytanie poddanego audytowi, na podstawie kolumn sklasyfikowanych w bazie danych. Dowiedz się więcej na temat odnajdywania i klasyfikacji danych usługi Azure SQL Database. Dotyczy: tylko usługa Azure SQL Database |
host_name |
nvarchar(128) | Nazwa hosta maszyny klienckiej. |
session_context |
nvarchar(4000) | Pary klucz-wartość, które są częścią bieżącego kontekstu sesji. |
client_tls_version |
Bigint powiedział: | Minimalna wersja protokołu TLS obsługiwana przez klienta. |
client_tls_version_name |
nvarchar(128) | Minimalna wersja protokołu TLS obsługiwana przez klienta. |
database_transaction_id |
Bigint powiedział: | Identyfikator transakcji bieżącej transakcji w bieżącej sesji. |
ledger_start_sequence_number |
Bigint powiedział: | Numer sekwencji operacji w ramach transakcji, która utworzyła wersję wiersza. Dotyczy: Tylko usługa Azure SQL Database |
external_policy_permissions_checked |
nvarchar(4000) | Informacje związane z sprawdzaniem uprawnień autoryzacji zewnętrznej, gdy jest generowane zdarzenie inspekcji, a zasady autoryzacji zewnętrznej usługi Purview są oceniane. Dotyczy: Tylko usługa Azure SQL Database |
obo_middle_tier_app_id |
varchar(120) | Identyfikator aplikacji warstwy środkowej, która łączy się z usługą Azure SQL Database przy użyciu dostępu on-behalf-of (OBO). Zmienna mogąca przyjmować wartość null. Zwraca wartość NULL , jeśli żądanie nie zostało wykonane przy użyciu dostępu OBO.Dotyczy: tylko usługa Azure SQL Database |
is_local_secondary_replica |
bit |
True jeśli rekord inspekcji pochodzi z lokalnej repliki pomocniczej tylko do odczytu, False w przeciwnym razie.Dotyczy: Tylko usługa Azure SQL Database |
Uwagi
Jeśli argument file_pattern przekazany do odwołuje się do
fn_get_audit_fileścieżki lub pliku, który nie istnieje lub jeśli plik nie jest plikiem inspekcji,MSG_INVALID_AUDIT_FILEzwracany jest komunikat o błędzie.fn_get_audit_filenie można używać podczas tworzenia inspekcji za pomocąAPPLICATION_LOGopcji ,SECURITY_LOGlubEXTERNAL_MONITOR.
Uprawnienia
Program SQL Server 2019 (15.x) i starsze wersje wymagają uprawnień CONTROL SERVER na serwerze.
Program SQL Server 2022 (16.x) i nowsze wersje wymagają uprawnień VIEW SERVER SECURITY AUDIT na serwerze.
Przykłady
W tym przykładzie odczytuje plik o nazwie \\serverName\Audit\HIPAA_AUDIT.sqlaudit.
SELECT *
FROM sys.fn_get_audit_file(
'\\serverName\Audit\HIPAA_AUDIT.sqlaudit',
DEFAULT,
DEFAULT
);
GO
Pełny przykład tworzenia inspekcji można znaleźć w temacie SQL Server Audit (Database Engine)( Inspekcja programu SQL Server (aparat bazy danych).
Ograniczenia
Wybieranie wierszy z sys.fn_get_audit_file poziomu tabeli Utwórz jako wybierz (CTAS) lub INSERT INTO jest ograniczeniem podczas uruchamiania w usłudze Azure Synapse Analytics. Mimo że zapytanie zakończy się pomyślnie i nie pojawią się żadne komunikaty o błędach, w tabeli utworzonej przy użyciu funkcji CTAS lub INSERT INTO.
Więcej informacji
Widoki wykazu systemu:
- 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)
Język Transact-SQL:
- UTWÓRZ AUDYT SERWERA (Transact-SQL)
- ALTER AUDYT SERWERA (Transact-SQL)
- UPUŚĆ AUDYT SERWERA (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)