Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Spravovaná instance Azure SQL
Vytvoří objekt auditu serveru pomocí auditu SQL Serveru. Další informace naleznete v tématu Sql Server Audit (databázový stroj).
Syntax
CREATE SERVER AUDIT audit_name
{
TO {
[ FILE ( <file_options> [ ,... n ] ) ]
| APPLICATION_LOG
| SECURITY_LOG
| URL
| EXTERNAL_MONITOR
}
[ WITH ( <audit_options> [ ,... n ] ) ]
[ WHERE <predicate_expression> ]
}
[ ; ]
<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 } ]
[ , AUDIT_GUID = uniqueidentifier ]
[ , OPERATOR_AUDIT = { ON | OFF } ]
[ , RETENTION_DAYS = integer ]
}
<predicate_expression> ::=
{ [ NOT ] <predicate_factor>
[ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }
<predicate_factor> ::=
event_field_name { = | < > | != | > | >= | < | <= | LIKE }
{ number | 'string' }
Arguments
audit_name
Název auditu. SQL Server 2019 (15.x) a starší verze nemůžou obsahovat mezery v názvu auditu.
TO { FILE | APPLICATION_LOG | SECURITY_LOG | Adresa URL | EXTERNAL_MONITOR }
Určuje umístění cíle auditu. Možnosti jsou binární soubor, protokol aplikace systému Windows nebo protokol zabezpečení systému Windows. SQL Server nemůže zapisovat do protokolu zabezpečení systému Windows bez konfigurace dalších nastavení ve Windows. Další informace naleznete v tématu Zápis událostí auditu SQL Serveru do protokolu zabezpečení.
Cíl URL není pro SQL Server podporovaný.
Important
Ve službě Azure SQL Managed Instance funguje SQL Audit na úrovni serveru. Umístění mohou být URL pouze nebo EXTERNAL_MONITOR.
FILEPATH = 'os_file_path'
Cesta protokolu auditu. Název souboru se vygeneruje na základě názvu auditu a identifikátoru GUID auditu. Pokud je tato cesta neplatná, audit se nevytvořil.
FILEPATH Cíl se nepodporuje pro spravovanou instanci Azure SQL. Místo toho musíte použít PATH .
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 zadat pro max_size , je 2 MB a maximum je 2 147 483 647 TB. Když zadáte UNLIMITED, soubor se rozroste, dokud se disk nezaplní. (0 označuje UNLIMITEDtaké .) Zadání hodnoty nižší než 2 MB vyvolá chybu MSG_MAXSIZE_TOO_SMALL. Výchozí hodnota je UNLIMITED.
MAXSIZE Cíl se nepodporuje pro spravovanou instanci Azure SQL.
MAX_ROLLOVER_FILES = { celé číslo | UNLIMITED }
Určuje maximální počet souborů, které se mají zachovat v systému souborů kromě aktuálního souboru. Hodnota MAX_ROLLOVER_FILES musí být celé číslo nebo UNLIMITED. Výchozí hodnota je UNLIMITED. Tento parametr se vyhodnocuje vždy, když se audit restartuje (což se může stát, když se instance databázového stroje restartuje nebo když je audit vypnutý a pak znovu) nebo když je potřeba nový soubor, protože je MAXSIZE dosažen. Když MAX_ROLLOVER_FILES se vyhodnotí, pokud počet souborů překročí MAX_ROLLOVER_FILES nastavení, nejstarší soubor se odstraní. V důsledku toho se při nastavení MAX_ROLLOVER_FILES 0 vytvoří nový soubor při MAX_ROLLOVER_FILES každém vyhodnocení nastavení. Při vyhodnocování nastavení se automaticky odstraní MAX_ROLLOVER_FILES jenom jeden soubor, takže při zmenšení hodnoty MAX_ROLLOVER_FILES se počet souborů nezmenší, pokud se staré soubory neodstraní ručně. Maximální počet souborů, které můžete zadat, je 2 147 483 647.
MAX_ROLLOVER_FILES azure SQL Managed Instance se nepodporuje.
MAX_FILES = celé číslo
Určuje maximální počet souborů auditu, které lze vytvořit. Audit se při dosažení limitu nepřevádí na první soubor. 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 v případě, že MAXSIZE se nerovná UNLIMITED. Výchozí hodnota je OFF.
RESERVE_DISK_SPACE Cíl se nepodporuje pro spravovanou instanci Azure SQL.
QUEUE_DELAY = celé číslo
Určuje čas v milisekundách, který může uplynout před vynuceným zpracováním akcí auditu. 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 2147483647 (2 147 483,647 sekund nebo 24 dní, 20 hodin, 31 minut, 23,647 sekund). Zadání neplatného čísla vyvolá MSG_INVALID_QUEUE_DELAY chybu.
ON_FAILURE = { CONTINUE | VYPNUTÍ | FAIL_OPERATION }
Určuje, jestli má instance zápisu do cíle selhat, pokračovat nebo zastavit SQL Server, pokud cíl nemůže zapisovat do protokolu auditu. Výchozí hodnota je CONTINUE.
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é CREATE SERVER AUDIT 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 nevytvořil. 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ůsobí auditované události, můžou pokračovat, ale nedochází k žádným auditovaným událostem. 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.
AUDIT_GUID = uniqueidentifier
Aby bylo možné podporovat scénáře, jako je zrcadlení databáze nebo databáze, které se účastní skupiny dostupnosti AlwaysOn, potřebuje audit konkrétní identifikátor GUID, který odpovídá identifikátoru GUID nalezeného v zrcadlené databázi. Po vytvoření auditu nemůžete upravit identifikátor GUID.
OPERATOR_AUDIT
Platí pouze pro: Azure SQL Managed Instance.
Označuje, jestli auditování zaznamenává operace techniků podpory Microsoftu, když potřebují přístup k vašemu serveru během žádosti o podporu.
RETENTION_DAYS = celé číslo
Platí jenom pro: Azure SQL Managed Instance a Azure SQL Database.
Určuje počet dní uložení souboru protokolu auditu.
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. Můžete filtrovat všechna pole kromě file_nameaudit_file_offset, a event_time.
action_id I když jsou pole class_type typu varchar in sys.fn_get_audit_file, můžete je použít pouze s čísly, pokud jsou predikátem zdroje pro filtrování. Pokud chcete získat seznam hodnot, které se mají použít class_type, spusťte následující dotaz:
SELECT spt.[name], spt.[number]
FROM [master].[dbo].[spt_values] spt
WHERE spt.[type] = N'EOD'
ORDER BY spt.[name];
number
Libovolný číselný typ včetně desetinných míst. 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. Predikát porovnávané funkce neprovádějí žádné implicitní převody typu řetězce. Předání nesprávného typu způsobí chybu.
Remarks
Audit serveru se vytvoří v zakázaném stavu.
Příkaz CREATE SERVER AUDIT je součástí transakce. Pokud vrátíte zpět transakci, příkaz se také vrátí zpět.
Permissions
K vytvoření, změně nebo vyřazení auditu serveru potřebují ALTER ANY SERVER AUDIT objekty zabezpečení nebo CONTROL SERVER oprávnění.
Když uložíte informace o auditu do souboru, omezte přístup k umístění souboru, abyste zabránili manipulaci.
Examples
A. Vytvoření auditu serveru s cílem souboru
Následující příklad vytvoří audit serveru s HIPAA_Audit názvem binární soubor jako cíl a žádné možnosti.
CREATE SERVER AUDIT HIPAA_Audit
TO FILE (FILEPATH = '\\SQLPROD_1\Audit\');
B. Vytvoření auditu serveru s cílem protokolu aplikací systému Windows s možnostmi
Následující příklad vytvoří audit serveru pojmenovaný HIPAA_Audit s cílovou sadou pro protokol aplikací systému Windows. Fronta se zapíše každou sekundu a vypne modul SQL Serveru při selhání.
CREATE SERVER AUDIT HIPAA_Audit
TO APPLICATION_LOG
WITH (
QUEUE_DELAY = 1000,
ON_FAILURE = SHUTDOWN
);
C. Vytvoření auditu serveru obsahující klauzuli WHERE
Následující příklad vytvoří databázi, schéma a dvě tabulky pro příklad. Pojmenovaná DataSchema.SensitiveData tabulka obsahuje důvěrná data a přístup k tabulce musí být zaznamenán v auditu.
Pojmenovaná DataSchema.GeneralData tabulka neobsahuje důvěrná data. Specifikace auditu databáze audituje přístup ke všem objektům ve schématu DataSchema .
Audit serveru se vytvoří s WHERE klauzulí, která omezuje audit serveru pouze na SensitiveData tabulku. Audit serveru předpokládá, že složka auditu existuje na adrese C:\SQLAudit.
CREATE DATABASE TestDB;
GO
USE TestDB;
GO
CREATE SCHEMA DataSchema;
GO
CREATE TABLE DataSchema.GeneralData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
CREATE TABLE DataSchema.SensitiveData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
Vytvořte audit serveru v master databázi:
USE master;
GO
CREATE SERVER AUDIT AuditDataAccess TO FILE (FILEPATH = 'C:\SQLAudit\')
WHERE object_name = 'SensitiveData';
GO
ALTER SERVER AUDIT AuditDataAccess WITH (STATE = ON);
GO
Vytvořte v TestDB databázi specifikaci auditu databáze:
USE TestDB;
GO
CREATE DATABASE AUDIT SPECIFICATION [FilterForSensitiveData]
FOR SERVER AUDIT [AuditDataAccess]
ADD (SELECT ON SCHEMA::[DataSchema] BY [public])
WITH(STATE = ON);
GO
Aktivujte událost auditu výběrem z tabulek:
SELECT ID,
DataField
FROM DataSchema.GeneralData;
SELECT ID,
DataField
FROM DataSchema.SensitiveData;
GO
Zkontrolujte audit filtrovaného obsahu:
SELECT *
FROM fn_get_audit_file('C:\SQLAudit\AuditDataAccess_*.sqlaudit', DEFAULT, DEFAULT);
GO
Transact-SQL odkaz
- ZMĚNIT SERVER AUDIT
- AUDIT DROP SERVERU
- VYTVOŘIT SPECIFIKACI AUDITU SERVERU
- ZMĚNIT SPECIFIKACI AUDITU SERVERU
- SPECIFIKACE AUDITOVÁNÍ SERVERU
- VYTVOŘTE SPECIFIKACI AUDITU DATABÁZE
- ALTER DATABASE AUDIT SPECIFIKACE
- ODSTRANIT SPECIFIKACI AUDITU DATABÁZE
- Změnit oprávnění
Související obsah
- sys.fn_get_audit_file (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- Vytvoření specifikace auditu serveru a auditu serveru