SQL Server Audit (Database Engine)

  • 01/01/2020
  • 13 minutes to read
    • D
    • v
    • M
    • M
    • D
    • +8

Applies to: yesSQL Server (všechny podporované verze) AnoSQL Azure Managed Instance

Auditování v instance SQL Server Database Engine nebo jednotlivé databáze zahrnuje sledování a protokolování událostí, které se vyskytují na Databázový stroj. SQL Server audit umožňuje vytvářet audity serveru, které mohou obsahovat SPECIFIKACE auditu serveru pro události na úrovni serveru a specifikace auditu databáze pro události na úrovni databáze. Auditované události lze zapsat do protokolů událostí nebo do souborů auditu.

důležité

na instanci spravované Azure SQL má tato funkce T-SQL určité změny chování. Podrobnosti o všech změnách chování T-SQL najdete v části Azure SQL Managed Instance T-SQL differences from SQL Server.

existuje několik úrovní auditu pro SQL Server, v závislosti na požadavcích vlády nebo standardů pro vaši instalaci. SQL Server Audit poskytuje nástroje a procesy, které musíte povolit, ukládat a prohlížet audity na různých objektech serveru a databáze.

můžete zaznamenávat skupiny akcí auditu serveru na instanci a buď skupiny akcí auditu databáze nebo akce auditu databáze na databázi. K události auditu dojde pokaždé, když dojde k auditovatelné akci.

všechna vydání SQL Server support Server level audity. Všechny edice podporují audity na úrovni databáze počínaje SQL Server 2016 (13.x) SP1. Předtím byl audit na úrovni databáze omezen na edice Enterprise, Developer a Evaluation. Další informace naleznete v části funkce podporované edicemi SQL Server 2016.

Poznámka

toto téma platí pro SQL Server. Pro databázi SQL, viz Začínáme s auditováním databáze SQL.

SQL Server Audit Components

audit je kombinace několika prvků do jednoho balíčku pro určitou skupinu akcí serveru nebo akcí databáze. Komponenty SQL Server audit se kombinují a vytvářejí výstup, který se nazývá audit, stejně jako definice sestavy v kombinaci s grafickými a datovými prvky vytváří zprávu.

SQL Server audit používá rozšířené události k vytvoření auditu. Další informace o rozšířených událostech, viz rozšířené události.

SQL Server Audit

objekt SQL Server Audit shromažďuje jednu instanci akcí na úrovni serveru nebo databáze a skupin akcí, které mají být monitorovány. Audit je na úrovni instance serveru SQL. Můžete mít více auditů na instanci serveru SQL.

když definujete audit, určíte umístění výstupu výsledků. Toto je cíl auditu. Audit je vytvořen v Zakázaném stavu a automaticky neprovádí audit žádných akcí. Po povolení auditu obdrží cíl auditu data z auditu.

SPECIFIKACE auditu serveru

objekt SPECIFIKACE auditu serveru patří auditu. Můžete vytvořit jednu specifikaci auditu serveru na audit, protože obě jsou vytvořeny v rozsahu instance serveru SQL Server.

SPECIFIKACE auditu serveru shromažďuje mnoho skupin akcí na úrovni serveru vyvolaných funkcí rozšířených událostí. Skupiny akcí auditu můžete zahrnout do SPECIFIKACE auditu serveru. Skupiny akcí auditu jsou předdefinované skupiny akcí, což jsou atomové události vyskytující se v databázovém stroji. Tyto akce jsou zaslány auditu, který je zaznamenává do cíle.

skupiny akcí auditu na úrovni serveru jsou popsány v tématu skupiny a akce auditu SQL Server.

SPECIFIKACE auditu databáze

objekt SPECIFIKACE auditu databáze také patří do auditu serveru SQL Server. Můžete vytvořit jednu specifikaci auditu databáze na databázi serveru SQL na audit.

SPECIFIKACE auditu databáze shromažďuje akce auditu na úrovni databáze vyvolané funkcí rozšířené události. Do SPECIFIKACE auditu databáze můžete přidat buď skupiny akcí auditu, nebo události auditu. Události auditu jsou atomové akce, které lze auditovat pomocí modulu SQL Server. Skupiny akcí auditu jsou předdefinované skupiny akcí. Oba jsou v rozsahu databáze SQL Server. Tyto akce jsou zaslány auditu, který je zaznamenává do cíle. Nezahrnujte objekty zaměřené na server, například zobrazení systému, do SPECIFIKACE auditu databáze uživatelů.

skupiny akcí auditu na úrovni databáze a akce auditu jsou popsány v tématu skupiny a akce auditu SQL Server.

Cíl

výsledky auditu jsou odesílány do cíle, což může být soubor, Windows protokolu událostí Zabezpečení, nebo protokolu událostí Aplikace Windows. Protokoly musí být pravidelně kontrolovány a archivovány, aby se ujistil, že cíl má dostatek místa pro zápis dalších záznamů.

Důležité

Každý ověřený uživatel může číst a zapisovat do protokolu událostí Aplikace Windows. Protokol událostí aplikace vyžaduje nižší oprávnění než protokol událostí zabezpečení systému Windows a je méně bezpečný než protokol událostí zabezpečení systému Windows.

zápis do protokolu zabezpečení systému Windows vyžaduje přidání účtu služby SQL Server do zásad generovat bezpečnostní audity. Ve výchozím nastavení jsou součástí těchto zásad místní systém, místní služba a síťová služba. Toto nastavení lze nakonfigurovat pomocí modulu snap – in zásady zabezpečení (secpol.měsíc). Kromě toho musí být povolena zásada zabezpečení přístupu k objektům auditu pro úspěch i neúspěch. Toto nastavení lze nakonfigurovat pomocí modulu snap – in zásady zabezpečení (secpol.měsíc). V systému Windows Vista nebo Windows Server 2008 můžete nastavit podrobnější zásady generované aplikací z příkazového řádku pomocí programu audit policy (AuditPol.exe). Další informace o krocích k povolení zápisu do protokolu zabezpečení systému Windows naleznete v části zapsat události auditu serveru SQL Server do protokolu zabezpečení. Pro více informací o Auditpol.exe program, viz článek znalostní báze 921469, jak používat Zásady skupiny ke konfiguraci podrobného bezpečnostního auditu. Protokoly událostí systému Windows jsou globální pro operační systém Windows. Další informace o protokolech událostí systému Windows naleznete v přehledu Prohlížeče událostí. Pokud potřebujete přesnější oprávnění k auditu, použijte cíl binárního souboru.

Při ukládání auditních informací do souboru, chcete-li zabránit manipulaci, můžete omezit přístup k umístění souboru následujícími způsoby:

  • Účet Služby serveru SQL Server musí mít jak Číst a Psát oprávnění.

  • Správci auditu obvykle vyžadují oprávnění ke čtení a zápisu. To předpokládá, že správci auditu jsou účty systému Windows pro správu souborů auditu, například: kopírování do různých akcií, jejich zálohování atd.

  • čtenáři auditu, kteří jsou oprávněni číst soubory auditu, musí mít oprávnění ke čtení.

i když databázový stroj zapisuje do souboru, mohou ostatní uživatelé systému Windows přečíst soubor auditu, pokud mají oprávnění. Databázový stroj nebere exkluzivní zámek, který zabraňuje čtení operací.

protože databázový stroj může přistupovat k souboru, přihlášení serveru SQL, které mají oprávnění řídicího serveru, mohou použít databázový stroj pro přístup k souborům auditu. Chcete-li zaznamenat každého uživatele, který čte soubor auditu, definujte audit na master.sys.fn_get_audit_file. Tím se zaznamenají přihlašovací údaje s oprávněním řídicího serveru, které přistupovaly k souboru auditu prostřednictvím serveru SQL Server.

pokud správce auditu zkopíruje soubor do jiného umístění (pro účely archivu atd.), měly by být ACL na novém umístění redukovány na následující oprávnění:

  • Audit Správce – Čtení / Zápis

  • Audit Reader – Přečtěte si

doporučujeme generovat auditní zprávy ze samostatné instance serveru SQL Server, jako je například instance SQL Server Express, který pouze Audit Správce nebo Auditu Čtenáři mají přístup. Pomocí samostatné instance Database Engine pro vykazování, můžete zabránit neoprávněným uživatelům v získání přístupu k auditní záznam.

můžete nabídnout další ochranu proti neoprávněnému přístupu šifrováním složky, ve které je soubor auditu uložen, pomocí šifrování jednotky Windows BitLocker nebo systému souborů šifrování systému Windows.

další informace o záznamech auditu, které jsou zapsány do cíle, viz záznamy auditu serveru SQL Server.

přehled použití SQL Server Audit

můžete použít SQL Server Management Studio nebo Transact-SQL definovat audit. Po vytvoření a povolení auditu obdrží cíl položky.

protokoly událostí systému Windows si můžete přečíst pomocí nástroje Prohlížeč událostí v systému Windows. Pro cíle souborů můžete použít prohlížeč souborů protokolu v SQL Server Management Studio nebo funkci fn_get_audit_file ke čtení cílového souboru.

obecný proces vytváření a používání auditu je následující.

  1. Vytvořte audit a definujte cíl.

  2. Vytvořte buď specifikaci auditu serveru nebo specifikaci auditu databáze, která mapuje audit. Povolit specifikaci auditu.

  3. povolit audit.

  4. Přečtěte si události auditu pomocí Prohlížeče událostí systému Windows, prohlížeče souborů protokolu nebo funkce fn_get_audit_file.

další informace naleznete v části Vytvoření SPECIFIKACE auditu serveru a auditu serveru a vytvoření SPECIFIKACE auditu serveru a auditu databáze.

úvahy

v případě selhání během zahájení auditu se server nespustí. V takovém případě lze server spustit pomocí volby-f na příkazovém řádku.

Při auditu selhání způsobí, že server vypnout nebo ne spustit, protože ON_FAILURE=VYPNUTÍ je určen pro audit, MSG_AUDIT_FORCED_SHUTDOWN událost bude zapsána do protokolu. Protože k vypnutí dojde při prvním setkání s tímto nastavením, událost bude zapsána jednou. Tato událost je zapsána po zprávě o selhání auditu způsobující vypnutí. Správce může obejít odstávky vyvolané auditem spuštěním serveru SQL Server v režimu jednoho uživatele pomocí příznaku-m. Pokud spustíte v režimu pro jednoho uživatele, downgradujete jakýkoli audit, kde je on_failure=SHUTDOWN určen ke spuštění v této relaci jako ON_FAILURE=CONTINUE. Když je SQL Server spuštěn pomocí příznaku-m, zpráva MSG_AUDIT_SHUTDOWN_BYPASSED bude zapsána do protokolu chyb.

další informace o možnostech spuštění služby naleznete v části Možnosti spuštění služby databázového stroje.

Připojení Databáze s Audit Definovanými

Připojení databáze auditu specifikace a určuje identifikátor GUID, který neexistuje na serveru, způsobí osamocené auditu specifikace. Protože v instanci serveru neexistuje audit s odpovídajícím GUID, nebudou zaznamenány žádné události auditu. Chcete-li tuto situaci napravit, použijte příkaz ALTER DATABASE audit SPECIFICATION pro připojení osamocené SPECIFIKACE auditu k existujícímu auditu serveru. Nebo pomocí příkazu Vytvořit AUDIT serveru vytvořte nový audit serveru se zadaným GUID.

můžete připojit databázi, která má specifikaci auditu definovanou na jiném vydání SQL Server, který nepodporuje SQL Server audit, jako je SQL Server Express, ale nebude zaznamenávat události auditu.

Zrcadlení Databáze a SQL Server Auditu

databáze auditu specifikace databáze definovány a že používá zrcadlení databáze bude obsahovat specifikace databáze auditu. Pracovat správně na zrcadlené instance serveru SQL, následující položky musí být nakonfigurován tak,:

  • mirror server musí mít audit se stejným GUID umožnit auditu specifikace databáze, psát auditní záznamy. To lze nakonfigurovat pomocí příkazu Vytvořit AUDIT pomocí GUID =<GUID ze zdrojového serveru audit>.

  • pro cíle binárních souborů musí mít účet služby mirror server příslušná oprávnění k umístění, kde se zapisuje auditní stopa.

  • u cílů protokolu událostí systému Windows musí zásady zabezpečení v počítači, kde je umístěn server mirror, umožnit přístup k účtu služby k protokolu událostí zabezpečení nebo aplikace.

Audit Administrators

pro Členy sysadmin pevné role serveru jsou označeny jako uživatel dbo nastaven v každé databázi. Chcete-li provést audit akcí správců, proveďte audit akcí uživatele dbo.

vytváření a správa auditů pomocí Transact-SQL

můžete použít příkazy DDL, zobrazení a funkce dynamické správy a zobrazení katalogu k implementaci všech aspektů auditu serveru SQL Server.

Data Definition Language Prohlášení

můžete použít následující příkazy DDL vytvořit, změnit a přetažení specifikace auditu:

DDL Popis
ALTER OPRÁVNĚNÍ Změny vlastnictví zabezpečený.
změna SPECIFIKACE auditu databáze mění objekt SPECIFIKACE auditu databáze pomocí funkce auditu serveru SQL Server.
ALTER server AUDIT mění objekt auditu serveru pomocí funkce SQL Server Audit.
změna SPECIFIKACE auditu serveru změní objekt SPECIFIKACE auditu serveru pomocí funkce auditu serveru SQL Server.
vytvoření SPECIFIKACE auditu databáze vytvoří objekt SPECIFIKACE auditu databáze pomocí funkce auditu serveru SQL Server.
vytvořit SERVER AUDIT vytvoří objekt auditu serveru pomocí SQL Server Audit.
vytvoření SPECIFIKACE auditu serveru vytvoří objekt SPECIFIKACE auditu serveru pomocí funkce auditu serveru SQL Server.
DROP DATABASE AUDIT SPECIFICATION upustí objekt SPECIFIKACE auditu databáze pomocí funkce auditu serveru SQL Server.
DROP SERVER AUDIT zruší objekt auditu serveru pomocí funkce SQL Server Audit.
DROP server audit SPECIFICATION upustí objekt SPECIFIKACE auditu serveru pomocí funkce SQL Server Audit.

Dynamické Pohledy a Funkce

následující tabulce jsou uvedeny dynamické pohledy a funkce, které lze použít pro SQL Server Auditování.

Dynamické pohledy a funkce Popis
sys.dm_audit_actions vrací řádek pro každou akci auditu, kterou lze nahlásit v protokolu auditu, a pro každou skupinu akcí auditu, kterou lze nakonfigurovat jako součást auditu serveru SQL Server.
sys.dm_server_audit_status Poskytuje informace o aktuálním stavu auditu.
sys.dm_audit_class_type_map Vrátí tabulku, která mapuje class_type pole v protokolu auditu na class_desc pole v sys.dm_audit_actions.
fn_get_audit_file Vrátí informací ze souboru auditu vytvořený server audit.

zobrazení katalogu

následující tabulka obsahuje seznam zobrazení katalogu, které můžete použít pro audit serveru SQL.

zobrazení katalogu popis
sys.database_audit_specifications obsahuje informace o specifikacích auditu databáze v auditu serveru SQL na instanci serveru.
sys.database_audit_specification_details obsahuje informace o specifikacích auditu databáze v auditu serveru SQL na instanci serveru pro všechny databáze.
sys.server_audits obsahuje jeden řádek pro každý audit serveru SQL v instanci serveru.
sys.server_audit_specifications obsahuje informace o specifikacích auditu serveru v auditu serveru SQL na instanci serveru.
sys.server_audit_specifications_details obsahuje informace o podrobnostech SPECIFIKACE auditu serveru (akce) v auditu serveru SQL na instanci serveru.
sys.server_file_audits obsahuje ukládá rozšířené informace o typu auditu souboru v auditu serveru SQL na instanci serveru.

oprávnění

každá funkce a příkaz pro SQL Server Audit má individuální požadavky na oprávnění.

Chcete-li vytvořit, změnit nebo zrušit specifikaci auditu serveru nebo auditu serveru, principy serveru vyžadují změnu jakéhokoli auditu serveru nebo oprávnění řídicího serveru. Chcete-li vytvořit, změnit nebo zrušit specifikaci auditu databáze, principy databáze vyžadují oprávnění ALTER ANY DATABASE AUDIT nebo ALTER nebo CONTROL v databázi. Kromě toho musí mít principálové oprávnění k připojení k databázi nebo ke změně oprávnění k auditu serveru nebo řízení serveru.

Zobrazit jakékoli oprávnění definice poskytuje přístup k zobrazení zobrazení auditu na úrovni serveru a definice zobrazení poskytuje přístup k zobrazení zobrazení auditu na úrovni databáze. Odepření těchto oprávnění, přepíše schopnost zobrazit zobrazení katalogu, a to i v případě, že hlavní má změnit jakýkoli AUDIT serveru nebo změnit oprávnění auditu databáze.

další informace o tom, jak udělit práva a oprávnění, viz GRANT (Transact-SQL).

upozornění

principy v roli sysadmin mohou manipulovat s jakoukoli komponentou auditu a ty v roli db_owner mohou manipulovat se specifikacemi auditu v databázi. SQL Server Audit ověří, že přihlášení, které vytvoří nebo změní specifikaci auditu, má alespoň oprávnění k auditu databáze. Při připojení databáze však neprovádí žádné ověření. Měli byste předpokládat, že všechny SPECIFIKACE auditu databáze jsou stejně důvěryhodné jako principy v roli sysadmin nebo db_owner.

Vytvoření Auditu Serveru a Server Auditu Specifikace

Vytvoření Auditu Serveru a Databáze Auditu Specifikace

Zobrazení SQL Server Protokol Auditu

Napsat SQL Server Audit Události do Protokolu Zabezpečení

Vlastnosti Serveru (Bezpečnostní Stránce)
Vysvětluje, jak zapnout auditování přihlášení pro SQL Server. Záznamy auditu jsou uloženy v protokolu aplikací systému Windows.

volba konfigurace serveru režimu auditu C2
vysvětluje režim auditu shody zabezpečení C2 v SQL Serveru.

kategorie událostí bezpečnostního auditu (SQL Server Profiler)
vysvětluje události auditu, které můžete použít v SQL Server Profiler. Další informace naleznete v části Profiler serveru SQL Server.

SQL Trace
vysvětluje, jak SQL Trace lze použít v rámci svých vlastních aplikací vytvořit stopy ručně, namísto použití SQL Server Profiler.

DDL triggery
vysvětluje, jak můžete použít Data Definition Language (DDL) triggery ke sledování změn ve vašich databázích.

Microsoft TechNet: SQL Server TechCenter: Zabezpečení a ochrana SQL Server 2005
poskytuje aktuální informace o zabezpečení serveru SQL.

Viz také

skupiny a akce auditu SQL Server
záznamy auditu SQL Server