ALTER SERVER AUDIT (Transact-SQL)

Dotyczy:SQL ServerAzure SQL Managed Instance

Zmienia obiekt inspekcji serwera przy użyciu funkcji inspekcji programu SQL Server. Aby uzyskać więcej informacji, zobacz Inspekcja programu SQL Server (aparat bazy danych).

Transact-SQL konwencje składni

Syntax

ALTER SERVER AUDIT audit_name
{
    [ TO { { FILE ( <file_options> [ , ...n ] ) } | APPLICATION_LOG | SECURITY_LOG } | URL ]
    [ WITH ( <audit_options> [ , ...n ] ) ]
    [ WHERE <predicate_expression> ]
}
| REMOVE WHERE
| MODIFY NAME = new_audit_name
[ ; ]

<file_options>::=
{
      FILEPATH = 'os_file_path'
    | MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED }
    | MAX_ROLLOVER_FILES = { integer | UNLIMITED }
    | MAX_FILES = integer
    | RESERVE_DISK_SPACE = { ON | OFF }
}

<audit_options>::=
{
      QUEUE_DELAY = integer
    | ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION }
    | STATE = = { ON | OFF }
}

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

<predicate_factor>::=
    event_field_name { = | < > | != | > | >= | < | <= } { number | 'string' }

Arguments

DO { PLIKU | APPLICATION_LOG | BEZPIECZEŃSTWO | URL }

Określa lokalizację obiektu docelowego inspekcji. Opcje to plik binarny, dziennik aplikacji Windows lub dziennik bezpieczeństwa Windows.

Ważna

W Azure SQL Managed Instance SQL Audit działa na poziomie serwera i przechowuje .xel pliki w Azure Blob Storage.

ŚCIEŻKA PLIKU = 'os_file_path'

Ścieżka ścieżki audytu. Nazwa pliku jest generowana na podstawie nazwy inspekcji i identyfikatora GUID inspekcji.

MAXSIZE = max_size

Określa maksymalny rozmiar, do którego plik inspekcji może rosnąć. Wartość max_size musi być liczbą całkowitą, po której następuje MB, GB, TB, lub UNLIMITED. Minimalny rozmiar, który można określić dla max_size , to 2 MB , a maksymalny to 2 147 483 647 TB. Gdy UNLIMITED jest to określone, plik rośnie, aż dysk się zapełni. Podanie wartości mniejszej niż 2 MB podnosi MSG_MAXSIZE_TOO_SMALL błąd. Wartość domyślna to UNLIMITED.

MAX_ROLLOVER_FILES = liczba całkowita | UNLIMITED

Określa maksymalną liczbę plików, które należy zachować w systemie plików. Gdy ustawiono , MAX_ROLLOVER_FILES = 0nie nakłada się ograniczenia na liczbę utworzonych plików rollover. Wartość domyślna to 0. Maksymalna liczba plików, którą można określić, to 2 147 483 647.

MAX_FILES = liczba całkowita

Określa maksymalną liczbę plików inspekcji, które można utworzyć. Nie przechodzi do pierwszego pliku, gdy limit zostanie osiągnięty. Po osiągnięciu limitu każda MAX_FILES akcja powodująca wygenerowanie większej liczby zdarzeń inspekcji kończy się niepowodzeniem z powodu błędu.

RESERVE_DISK_SPACE = { ON | WYŁ. }

Ta opcja wstępnie przydziela plik na dysku do MAXSIZE wartości. Dotyczy tylko wtedy, gdy MAXSIZE nie jest równe .UNLIMITED Wartość domyślna to OFF.

QUEUE_DELAY = liczba całkowita

Określa czas w milisekundach, który może upłynąć, zanim działania audytowe zostaną wymuszone do przetworzenia. Wartość 0 wskazuje synchroniczne dostarczanie. Minimalna ustawiona wartość opóźnienia zapytania to 1000 (1 sekunda), która jest wartością domyślną. Maksymalna wartość to 2147 483 647 (2147 483,647 sekund lub 24 dni, 20 godzin, 31 minut, 23,647 sekund). Jeśli podasz nieprawidłową liczbę, otrzymasz błąd MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { KONTYNUUJ | ZAMKNIĘCIE | FAIL_OPERATION }

Wskazuje, czy zapis instancji do celu powinien się nie powiódć, kontynuować lub zatrzymać, jeśli SQL Server nie może zapisać się do logu audytu.

CONTINUE

Operacje programu SQL Server są kontynuowane. Rekordy inspekcji nie są zachowywane. Inspekcja nadal próbuje rejestrować zdarzenia i wznawiać, jeśli warunek niepowodzenia zostanie rozwiązany. Wybranie opcji Kontynuuj może zezwalać na niezaudiowane działanie, co może naruszać zasady zabezpieczeń. Użyj tej opcji, jeśli ciągła operacja aparatu bazy danych jest ważniejsza niż utrzymywanie pełnej inspekcji.

SHUTDOWN

Wymusza zamknięcie wystąpienia programu SQL Server, jeśli program SQL Server nie może zapisywać danych w obiekcie docelowym inspekcji z jakiegokolwiek powodu. Identyfikator logowania wykonujący instrukcję ALTERSHUTDOWN musi mieć uprawnienie w programie SQL Server. Zachowanie zamykania będzie się powtarzać, nawet jeśli SHUTDOWN uprawnienie zostanie później odwołane z wykonania logowania. Jeśli użytkownik nie ma tego uprawnienia, to oświadczenie się nie udaje, a audyt nie jest modyfikowany. Użyj opcji , gdy awaria inspekcji może naruszyć bezpieczeństwo lub integralność systemu. Aby uzyskać więcej informacji, zobacz SHUTDOWN (ZAMYKANIE).

FAIL_OPERATION

Akcje bazy danych kończą się niepowodzeniem, jeśli powodują zdarzenia inspekcji. Działania, które nie powodują zdarzeń audytowanych, mogą być kontynuowane, ale żadne zdarzenia audytowane nie mogą wystąpić. Inspekcja nadal próbuje rejestrować zdarzenia i wznawiać, jeśli warunek niepowodzenia zostanie rozwiązany. Użyj tej opcji, gdy utrzymywanie pełnej inspekcji jest ważniejsze niż pełny dostęp do aparatu bazy danych.

STAN = { ON | WYŁĄCZ }

Umożliwia lub wyłącza audyt w zakresie zbierania dokumentacji. Zmiana stanu audytu (z ON do ) OFFtworzy wpis audytu, że audyt został zatrzymany, główny podmiot, który go zatrzymał, oraz czas jego zatrzymania.

ZMODYFIKUJ NAZWĘ = new_audit_name

Zmienia nazwę audytu. Nie da się jej używać z żadną inną opcją.

predicate_expression

Określa wyrażenie predykatu używane do określania, czy zdarzenie powinno być przetwarzane, czy nie. Wyrażenia predykatu są ograniczone do długości 3000 znaków, co ogranicza argumenty ciągu.

event_field_name

Nazwa pola zdarzenia identyfikującego źródło predykatu. Pola inspekcji są opisane w sys.fn_get_audit_file. Wszystkie pola mogą być audytowane z wyjątkiem file_name i audit_file_offset.

number

Dowolny typ liczbowy, w tym dziesiętny. Ograniczenia to brak dostępnej pamięci fizycznej lub liczba, która jest zbyt duża, aby być reprezentowana jako 64-bitowa liczba całkowita.

"ciąg"

Ciąg ANSI lub Unicode zgodnie z wymaganiami porównania predykatu. Dla funkcji porównywania predykatu nie jest wykonywana niejawna konwersja typu ciągu. Przejście błędnego typu skutkuje błędem

Remarks

Musisz określić co najmniej jedną z TOklauzul , WITH, lub MODIFY NAME podczas wywoływania ALTER AUDIT.

Aby móc wprowadzić zmiany w audycie, musisz ustawić stan audytu na opcję WYŁĄCZONE. Jeśli ALTER AUDIT zostanie wykonany, gdy audyt jest włączony z innymi opcjami niż STATE = OFF, otrzymujesz MSG_NEED_AUDIT_DISABLED komunikat o błędzie.

Możesz dodawać, zmieniać i usuwać specyfikacje audytu bez przerywania audytu.

Nie możesz zmienić GUID audytu po jego utworzeniu.

ALTER SERVER AUDIT Nie można użyć instrukcji w ramach transakcji użytkownika.

Permissions

Aby utworzyć, zmienić lub usunąć zasadę audytu serwera, musisz mieć ALTER ANY SERVER AUDIT lub uprawnienia CONTROL SERVER.

Examples

A. Zmień nazwę audytu serwera

Poniższy przykład zmienia nazwę audytu HIPAA_Audit serwera na .HIPAA_Audit_Old

USE master;
GO

ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT HIPAA_Audit
MODIFY NAME = HIPAA_Audit_Old;
GO

ALTER SERVER AUDIT HIPAA_Audit_Old
WITH (STATE = ON);
GO

B. Zmień cel audytu serwera

Poniższy przykład zmienia audyt serwera wywołany HIPAA_Audit na cel pliku.

USE master;
GO

ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT HIPAA_Audit TO FILE (
    FILEPATH = '\\SQLPROD_1\Audit\',
    MAXSIZE = 1000 MB,
    RESERVE_DISK_SPACE = OFF
)
WITH (
    QUEUE_DELAY = 1000,
    ON_FAILURE = CONTINUE
);
GO

ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = ON);
GO

C. Zmień klauzulę audytu serwera GDZIE

Poniższy przykład modyfikuje klauzulę where utworzoną w przykładzie C z CREATE SERVER AUDIT. Nowa klauzula WHERE filtruje zdarzenie zdefiniowane przez użytkownika, jeśli wynosi 27.

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
    WHERE user_defined_event_id = 27;
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = ON);
GO

D. Usuń klauzulę GDZIE

Poniższy przykład usuwa wyrażenie predykatu klauzuli WHERE .

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
REMOVE WHERE;
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = ON);
GO

E. Zmiana nazwy audytu serwera

Poniższy przykład zmienia nazwę audytu serwera z FilterForSensitiveData na AuditDataAccess.

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
MODIFY NAME = AuditDataAccess;
GO

ALTER SERVER AUDIT [AuditDataAccess]
WITH (STATE = ON);
GO

Transact-SQL odniesienia