ALTER SERVER AUDIT (Transact-SQL)

Platí na:SQL ServerAzureSQL Managed Instance

Změní objekt auditu serveru pomocí funkce SQL Server Audit. Další informace získáte v části SQL Server Audit (Database Engine).

Transact-SQL konvence syntaxe

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 { SOUBORU | APPLICATION_LOG | BEZPEČNOST | URL }

Určuje umístění cíle auditu. Možnosti jsou binární soubor, logy aplikací Windows nebo bezpečnostní log Windows.

Important

V Azure SQL Managed Instance funguje SQL Audit na úrovni serveru a ukládá .xel soubory do Azure Blob Storage.

FILEPATH = 'os_file_path'

Cesta auditní stopy. Název souboru se vygeneruje na základě názvu auditu a identifikátoru GUID auditu.

MAXSIZE = max_size

Určuje maximální velikost, na kterou může soubor auditu růst. Hodnota max_size musí být celé číslo následované MB, GB, TB, nebo UNLIMITED. Minimální velikost, kterou můžete pro max_size zadát, je 2 MB a maximální je 2 147 483 647 TB. Když UNLIMITED je zadán, soubor roste, dokud není disk plný. Zadání hodnoty menší než 2 MB zvyšuje chybu MSG_MAXSIZE_TOO_SMALL . Výchozí hodnota je UNLIMITED.

MAX_ROLLOVER_FILES = celé číslo | NEOMEZENÉ

Specifikuje maximální počet souborů, které má být v souborovém systému uložen. Při nastavení , MAX_ROLLOVER_FILES = 0není uvalen žádný limit na počet vytvořených souborů rolloverů. Výchozí hodnota je 0. Maximální počet souborů, které lze specifikovat, je 2 147 483 647.

MAX_FILES = celé číslo

Určuje maximální počet souborů auditu, které lze vytvořit. Nepřejde na první soubor, když je limit dosažen. Po dosažení limitu MAX_FILES se jakákoli akce, která způsobí, že se vygenerují další události auditu, selže s chybou.

RESERVE_DISK_SPACE = { ON | VYPNUTO }

Tato možnost předem přiděluje soubor na disku k hodnotě MAXSIZE . Platí pouze tehdy, pokud MAXSIZE není rovno .UNLIMITED Výchozí hodnota je OFF.

QUEUE_DELAY = celé číslo

Určuje dobu v milisekundách, která může uplynout, než budou auditní akce nuceny zpracovat. Hodnota 0 označuje synchronní doručení. Minimální nastavená hodnota zpoždění dotazu je 1000 (1 sekunda), což je výchozí hodnota. Maximum je 2 147 483 647 (2 147 483,647 sekund nebo 24 dní, 20 hodin, 31 minut, 23,647 sekund). Pokud zadáte neplatné číslo, dostanete chybu MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUE | VYPNUTÍ | FAIL_OPERATION }

Označuje, zda by měla instance zapisující do cíle selhat, pokračovat nebo se zastavit, pokud SQL Server nemůže zapisovat do auditního logu.

CONTINUE

Operace SQL Serveru budou pokračovat. Záznamy auditu se nezachovají. Audit se nadále pokouší protokolovat události a pokračuje v případě, že je vyřešena podmínka selhání. Výběrem možnosti pokračovat můžete povolit neauditovanou aktivitu, která by mohla narušit vaše zásady zabezpečení. Tuto možnost použijte, pokud je pokračování provozu databázového stroje důležitější než údržba kompletního auditu.

SHUTDOWN

Vynutí, aby se instance SQL Serveru vypnula, pokud SQL Server z nějakého důvodu nedokáže zapisovat data do cíle auditu. Přihlašovací jméno, které ALTER příkaz spouští, musí mít SHUTDOWN oprávnění v rámci SQL Serveru. Chování vypnutí přetrvává i v případě SHUTDOWN , že se oprávnění později odvolá z prováděcího přihlášení. Pokud uživatel toto oprávnění nemá, příkaz selže a audit se nemodifikuje. Tuto možnost použijte, pokud by selhání auditu mohlo ohrozit zabezpečení nebo integritu systému. Další informace naleznete v tématu VYPNUTÍ.

FAIL_OPERATION

Databázové akce selžou, pokud způsobují auditované události. Akce, které nezpůsobují auditované události, mohou pokračovat, ale žádné auditované události nemohou nastat. Audit se nadále pokouší protokolovat události a pokračuje v případě, že je vyřešena podmínka selhání. Tuto možnost použijte při údržbě kompletního auditu důležitější než úplný přístup k databázovému stroji.

STAV = { ZAPNUTO | VYPNUTO }

Umožňuje nebo zakazuje audit ve sběru záznamů. Změna stavu probíhajícího auditu (z ON na OFF) vytvoří záznam auditu, že audit byl zastaven, hlavní subjekt, který audit zastavil, a čas ukončení auditu.

UPRAVIT NÁZEV = new_audit_name

Mění název auditu. Nelze použít s žádnou jinou možností.

predicate_expression

Určuje predikát výraz použitý k určení, jestli má být událost zpracována nebo ne. Predikát výrazy jsou omezené na délku 3 000 znaků, což omezuje řetězcové argumenty.

event_field_name

Název pole události, které identifikuje zdroj predikátu. Pole auditu jsou popsaná v sys.fn_get_audit_file. Všechna pole lze auditovat kromě file_name a .audit_file_offset

number

Jakýkoli číselný typ včetně desetinné části. Omezení jsou nedostatek dostupné fyzické paměti nebo čísla, které je příliš velké, aby bylo reprezentováno jako 64bitové celé číslo.

'string'

Buď řetězec ANSI nebo Unicode vyžadovaný porovnáním predikátu. Pro porovnávané funkce predikátu se neprovádí žádný implicitní převod typu řetězce. Chybný typ vede k chybě

Remarks

Při volání ALTER AUDITmusíte zadat alespoň jednu z TO, WITH, nebo MODIFY NAME klauzul .

Musíte nastavit stav auditu na možnost VYPNUTO, abyste mohli provádět změny v auditu. Pokud ALTER AUDIT je proveden, když je audit povolen s jinými možnostmi než STATE = OFF, dostanete chybovou zprávu MSG_NEED_AUDIT_DISABLED .

Můžete přidávat, měnit a odebírat specifikace auditu, aniž byste audit zastavili.

Nemůžete změnit GUID auditu poté, co audit byl vytvořen.

ALTER SERVER AUDIT Příkaz nelze použít v rámci uživatelské transakce.

Permissions

Pro vytvoření, změnu nebo odstranění principu auditu serveru musíte mít ALTER JAKÝKOLI SERVER AUDIT nebo oprávnění CONTROL SERVER.

Examples

A. Změnit název auditu serveru

Následující příklad mění název auditu HIPAA_Audit serveru 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. Změňte cíl auditu serveru

Následující příklad mění server audit volaný HIPAA_Audit na cílový soubor.

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. Změňte klauzuli o auditu serveru KDE

Následující příklad upravuje where klauzuli vytvořenou v příkladu C z CREATE SERVER AUDIT. Nová klauzule WHERE filtruje uživatelem definovanou událost, pokud je 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. Odstraňte klauzuli WHERE

Následující příklad odstraňuje WHERE výraz klauzule predikát.

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

ALTER SERVER AUDIT [FilterForSensitiveData]
REMOVE WHERE;
GO

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

E. Přejmenovat audit serveru

Následující příklad mění název auditu serveru 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 odkaz