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
azure SQL Managed Instance
audit instance databázového stroje SQL Serveru nebo jednotlivé databáze zahrnuje sledování a protokolování událostí, ke kterým dochází v databázovém stroji. Audit SQL Serveru umožňuje vytvářet audity serverů, které můžou 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 se dají zapsat do protokolů událostí nebo do souborů auditu.
Důležitý
Na Azure SQL Managed Instancemá tato T-SQL funkce určité změny chování. Podrobnosti o všech změnách chování jazyka T-SQL najdete v tématu Rozdíly ve službě Azure SQL Managed Instance T-SQL od SQL Serveru.
V závislosti na požadavcích na státní správu nebo standardy pro vaši instalaci existuje několik úrovní auditování SQL Serveru. Sql Server Audit poskytuje nástroje a procesy, které musíte povolit, uložit a zobrazit audity na různých serverových a databázových objektech.
Skupiny akcí auditování serveru můžete zaznamenat na úrovni jednotlivých instancí a buď skupiny akcí auditování databáze, nebo akce auditu databáze pro jednotlivé databáze. K události auditu dochází při každém výskytu auditovatelné akce.
Všechny edice SQL Serveru podporují audity na úrovni serveru. V SQL Serveru 2016 (13.x) s aktualizací Service Pack 1 a novějšími verzemi podporují všechny edice audity na úrovni databáze. Před tím se auditování na úrovni databáze omezilo na edice Enterprise, Developer a Evaluation. Další informace najdete v tématu Edice a podporované funkce SQL Serveru 2016.
Poznámka
Tento článek se týká SQL Serveru. Informace o SQL Database najdete v tématu Auditování pro Azure SQL Database a Azure Synapse Analytics.
Komponenty auditu SQL Serveru
audit je kombinace několika prvků do jednoho balíčku pro konkrétní skupinu akcí serveru nebo databázových akcí. Komponenty auditu SQL Serveru se kombinují a produkují výstup, který se nazývá audit, stejně jako definice sestavy v kombinaci s grafikou a datovými prvky vytvářejí sestavu.
Audit SQL Serveru využívá Extended Events k pomoci při vytváření auditu. Další informace o rozšířených událostech naleznete v tématu Přehled rozšířených událostí.
Audit SQL Serveru
Objekt sql Server Audit shromažďuje jednu instanci akcí na úrovni serveru nebo databáze a skupiny akcí, které se mají monitorovat. Audit je na úrovni instance SQL Serveru. Pro každou instanci SQL Serveru můžete mít více auditů.
Při definování auditu zadáte umístění výstupu výsledků. Toto je cíl auditu. Audit se vytvoří ve vypnutém stavu a neumožňuje automatickou kontrolu žádných akcí. Po povolení auditu obdrží cíl auditu data z auditu.
Specifikace auditu serveru
Objekt Server Audit Specification patří do auditu. Pro každý audit můžete vytvořit jednu specifikaci auditu serveru, protože obě jsou vytvořeny v oboru instance SQL Serveru.
Specifikace auditu serveru shromažďuje mnoho skupin akcí na úrovni serveru vyvolaných funkcí Rozšířených událostí. Do specifikace auditu serveru můžete zahrnout skupiny akcí auditu. Skupiny akcí auditu jsou předdefinované skupiny akcí, což jsou atomické události, ke kterým dochází v databázovém stroji. Tyto akce se odesílají do auditu, který je zaznamenává do cílového systému.
Skupiny akcí auditu na úrovni serveru jsou popsány v článku Skupiny akcí a akce auditování SQL Serveru.
Poznámka
Kvůli omezením výkonu ne auditujeme tempdb
a dočasné tabulky. Zatímco dávková dokončená skupina akcí zachycuje příkazy proti dočasným tabulkám, nemusí správně naplnit názvy objektů. Zdrojová tabulka se ale vždy audituje a zajišťuje, aby se zaznamenávaly všechny vložení ze zdrojové tabulky do dočasných tabulek.
Specifikace auditu databáze
Objekt Database Audit Specification patří také k auditování SQL Serveru. Pro každou databázi SQL Serveru můžete vytvořit jednu auditní specifikaci databáze.
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 skupiny akcí auditu nebo události auditu. Auditní události jsou atomické akce, které může modul SQL Serveru auditovat. Skupiny akcí auditování jsou předdefinované skupiny akcí. Oba jsou v oboru databáze SQL Serveru. Tyto akce se odesílají do auditu, který je zaznamenává do cílového systému. Do specifikace auditu uživatelské databáze nezahrnujte objekty v oboru serveru, jako jsou například systémová zobrazení.
Skupiny akcí auditu na úrovni databáze a akce auditu jsou popsány v článku Skupiny akcí a akce auditování SQL Serveru.
Cíl
Výsledky auditu se odesílají do cíle, což může být soubor, protokol událostí zabezpečení systému Windows nebo protokol událostí aplikace systému Windows. Protokoly je potřeba pravidelně kontrolovat a archivovat, aby se zajistilo, že cíl má dostatek místa pro zápis více záznamů.
Důležitý
Každý ověřený uživatel může číst a zapisovat do protokolu událostí aplikace systému Windows. Protokol událostí aplikace vyžaduje nižší oprávnění než protokol událostí zabezpečení systému Windows a je méně zabezpečený 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ásady Generování auditů zabezpečení. Místní systém, místní služba a síťová služba jsou ve výchozím nastavení součástí této zásady. Toto nastavení lze nakonfigurovat pomocí modulu zásad zabezpečení snap-in (secpol.msc). Kromě toho musí být zásada zabezpečení auditování přístupu k objektům povolená pro Úspěch i Selhání. Toto nastavení lze nakonfigurovat pomocí modulu zásad zabezpečení snap-in (secpol.msc). V systému Windows Vista nebo Windows Server 2008 (a novějších) můžete nastavit podrobnější zásady generované aplikací z příkazového řádku pomocí programu zásad auditu (AuditPol.exe
). Další informace o postupu povolení zápisu do protokolu zabezpečení systému Windows naleznete v tématu Zápis událostí auditu SQL Serveru do protokolu zabezpečení. Další informace o programu Auditpol.exe naleznete v článku znalostní báze Knowledge Base 921469, Použití zásad skupiny ke konfiguraci podrobného auditování zabezpečení. Protokoly událostí Windows jsou globální pro operační systém Windows. Další informace o protokolech událostí systému Windows naleznete v tématu Přehled prohlížeče událostí. Pokud potřebujete přesnější nastavení oprávnění pro audit, použijte cílový binární soubor.
Pokud ukládáte informace o auditu do souboru, abyste zabránili manipulaci, můžete omezit přístup k umístění souboru následujícími způsoby:
Účet služby SQL Serveru musí mít oprávnění ke čtení i zápisu.
Správci auditu obvykle vyžadují oprávnění ke čtení a zápisu. Předpokládá se, že správci auditu jsou účty systému Windows pro správu souborů auditu, jako je například jejich kopírování do různých sdílených složek, jejich zálohování atd.
Čtenáři auditu, kteří jsou oprávněni číst auditní soubory, musí mít povolení k jejich čtení.
I když databázový stroj zapisuje do souboru, můžou si ho ostatní uživatelé Systému Windows přečíst, pokud mají oprávnění. Databázový stroj nemá výhradní zámek, který brání operacím čtení.
Vzhledem k tomu, že databázový stroj má přístup k souboru, přihlašovací údaje SQL Serveru, které mají CONTROL SERVER
oprávnění, můžou k přístupu k souborům auditu použít databázový stroj. Chcete-li zaznamenat libovolného uživatele, který čte soubor auditu, definujte audit na master.sys.fn_get_audit_file
. Tato akce zaznamenává přihlášení s oprávněním CONTROL SERVER
, která získala přístup k souboru auditu prostřednictvím SQL Serveru.
Pokud správce auditu zkopíruje soubor do jiného umístění (pro účely archivace atd.), měly by se seznamy řízení přístupu (ACL) v novém umístění snížit na následující oprávnění:
- Správce auditu – čtení a zápis
- Čtenář auditu – číst
Doporučujeme generovat sestavy auditu z samostatné instance SQL Serveru, například instance SQL Serveru Express, ke které mají přístup pouze správci auditu nebo čtenáři auditu. Pomocí samostatné instance databázového systému pro vytváření sestav můžete zabránit neoprávněným uživatelům v tom, aby získali přístup k záznamu auditu.
Můžete nabídnout dodatečnou ochranu před neoprávněným přístupem tím, že zašifrujete složku, ve které je soubor auditu uložený pomocí nástroje Windows BitLocker Drive Encryption nebo systému souborů Windows Encrypting.
Další informace o záznamech auditu, které jsou zapisovány do cíle, naleznete v tématu záznamy auditu SQL Server.
Přehled použití SQL Server Audit
K definování auditu můžete použít SQL Server Management Studio nebo Transact-SQL. Po vytvoření a povolení auditu cílový systém obdrží záznamy.
Protokoly událostí systému Windows můžete číst pomocí nástroje prohlížeče událostí
Obecný proces vytváření a používání auditu je následující.
- Vytvořte audit a definujte cíl.
- Vytvořte specifikaci auditu serveru nebo specifikaci auditu databáze, která odpovídá auditu. Povolte specifikaci auditu.
- Povolte audit.
- Události auditu si můžete přečíst pomocí Prohlížeče událostí systému Windows, Prohlížeče souborů protokolu nebo
fn_get_audit_file
funkce.
Další informace najdete v tématu Vytvoření specifikace auditu serveru a auditu serveru a vytvoření specifikace auditování serveru a databáze.
Úvahy
V případě selhání při zahájení auditu se server nespustí. V takovém případě lze server spustit pomocí -f
možnosti na příkazovém řádku.
Pokud selhání auditu způsobí, že se server vypne nebo se nespustí, protože ON_FAILURE = SHUTDOWN
je určen pro audit, MSG_AUDIT_FORCED_SHUTDOWN
událost se zapíše do protokolu. Vzhledem k tomu, že k vypnutí dojde při prvním výskytu tohoto nastavení, událost se zapíše jednou. Tato událost se zapíše po chybové zprávě auditu, která způsobuje vypnutí systému. Správce může obejít vypnutí vyvolaná auditováním spuštěním SQL Serveru v režimu jednoho uživatele pomocí příznaku -m
. Pokud spustíte režim pro jednoho uživatele, snížíte úroveň všech auditů, u kterých je ON_FAILURE = SHUTDOWN
zadáno ke spuštění v této relaci jako ON_FAILURE = CONTINUE
. Při spuštění SQL Serveru s příznakem -m
MSG_AUDIT_SHUTDOWN_BYPASSED
se zpráva zapíše do protokolu chyb.
Další informace o možnostech spuštění služby naleznete v tématu Možnosti spuštění služby databázového stroje.
Připojení databáze s definovaným auditem
Připojení databáze, která má specifikaci auditu a určuje identifikátor GUID, který na serveru neexistuje, způsobí osiřelou specifikaci auditu. Protože v instanci serveru neexistuje audit s odpovídajícím identifikátorem GUID, nezaznamenávají se žádné události auditu. Pokud chcete tuto situaci opravit, použijte ALTER DATABASE AUDIT SPECIFICATION
příkaz k připojení osamocené specifikace auditu k existujícímu serverovému auditu. Nebo pomocí CREATE SERVER AUDIT
příkazu vytvořte nový audit serveru se zadaným identifikátorem GUID.
Databázi, která má definovanou specifikaci auditu, můžete připojit k jiné edici SQL Serveru, která nepodporuje audit SQL Serveru, například SQL Server Express, ale nezaznamená události auditu.
Zrcadlení databáze a audit SQL Serveru
Databáze, která má definovanou specifikaci auditu databáze a která používá zrcadlení databáze, zahrnuje specifikaci auditu databáze. Pokud chcete správně pracovat se zrcadlenou instancí SQL, musí být nakonfigurované následující položky:
Zrcadlový server musí mít audit se stejným identifikátorem GUID, aby specifikace auditu databáze mohla zapisovat záznamy auditu. To lze nakonfigurovat pomocí příkazu
CREATE AUDIT WITH GUID = <guid-from-source-server-audit>
.Pro cíle binárních souborů musí mít účet služby zrcadlového serveru příslušná oprávnění k umístění, kam se zapisuje auditní stopa.
V případě cílů protokolu událostí systému Windows musí zásady zabezpečení v počítači, kde je umístěn zrcadlový server, umožnit přístup účtu služby k protokolu událostí zabezpečení nebo aplikačnímu protokolu událostí.
Správci auditování
Členové pevné role sysadmin správce systému jsou v každé databázi identifikováni jako uživatel dbo. Pokud chcete auditovat akce správců, auditujte akce dbo uživatele.
Vytváření a správa auditů pomocí Transact-SQL
K implementaci všech aspektů auditu SQL Serveru můžete použít příkazy DDL, zobrazení dynamické správy a funkce a zobrazení katalogu.
Příkazy jazyka DDL (Data Definition Language)
Pomocí následujících příkazů DDL můžete vytvářet, měnit a odstraňovat specifikace auditu:
Příkazy DDL | Popis |
---|---|
Změnit oprávnění | Změní vlastnictví zabezpečitelného objektu. |
ALTER DATABASE AUDIT SPECIFIKACE | Změní objekt specifikace auditu databáze pomocí funkce Audit SQL Serveru. |
ZMĚNIT SERVER AUDIT | Změní objekt auditu serveru pomocí funkce auditování SQL Serveru. |
ZMĚNIT SPECIFIKACI AUDITU SERVERU | Změní objekt specifikace auditu serveru pomocí funkce Audit SQL Serveru. |
VYTVOŘTE SPECIFIKACI AUDITU DATABÁZE | Vytvoří objekt specifikace auditu databáze pomocí funkce auditování SQL Serveru. |
VYTVOŘIT AUDIT SERVERU | Vytvoří objekt auditu serveru pomocí auditu SQL Serveru. |
VYTVOŘIT SPECIFIKACI AUDITU SERVERU | Vytvoří objekt specifikace auditu serveru pomocí funkce Audit SQL Serveru. |
ODSTRANIT SPECIFIKACI AUDITU DATABÁZE | Zahodí objekt specifikace auditu databáze pomocí funkce Audit SQL Serveru. |
AUDIT DROP SERVERU | Zahodí objekt auditování serveru pomocí funkce auditování SQL Serveru. |
SPECIFIKACE AUDITOVÁNÍ SERVERU | Odstraní objekt specifikace auditu serveru pomocí funkce SQL Server Audit. |
Dynamická zobrazení a funkce
V následující tabulce jsou uvedena dynamická zobrazení a funkce, které můžete použít pro auditování SQL Serveru.
Dynamická zobrazení a funkce | Popis |
---|---|
sys.dm_audit_actions | Vrátí řádek pro každou akci auditu, která se dá hlásit v protokolu auditování, a všechny skupiny akcí auditu, které lze konfigurovat jako součást auditování SQL Serveru. |
sys.dm_server_audit_status | Poskytuje informace o aktuálním stavu auditu. |
sys.dm_audit_class_type_map | Vrátí tabulku, která mapuje pole class_type v protokolu auditu na pole class_desc v sys.dm_audit_actions . |
fn_get_audit_file | Vrátí informace ze souboru auditu vytvořeného auditem serveru. |
Zobrazení katalogu
Následující tabulka uvádí zobrazení katalogu, která můžete použít pro auditování SQL Serveru.
Zobrazení katalogu | Popis |
---|---|
Specifikace auditu databáze v systému | Obsahuje informace o specifikacích auditu databáze v auditování SQL Serveru v instanci serveru. |
sys.database_audit_specification_details | Obsahuje informace o specifikacích auditu databáze v auditování SQL Serveru na instanci serveru pro všechny databáze. |
sys.server_audits | Obsahuje jeden řádek pro každý audit SQL Serveru v instanci serveru. |
specifikace auditu serveru sys | Obsahuje informace o specifikacích auditu na úrovni serveru v auditu SQL Serveru v instanci serveru. |
sys.server_audit_specifications_details | Obsahuje informace o podrobnostech specifikace auditu serveru (akcí) v auditování SQL Serveru v instanci serveru. |
sys.server_file_audits | Obsahuje uložené rozšířené informace o typu auditu souboru v auditování SQL Serveru v instanci serveru. |
Dovolení
Každá funkce a příkaz pro audit SQL Serveru má jednotlivé požadavky na oprávnění.
K vytvoření, změně nebo vyřazení auditu serveru nebo specifikace auditu serveru vyžadují hlavní objekty serveru oprávnění ALTER ANY SERVER AUDIT
nebo CONTROL SERVER
. K vytvoření, změně nebo zrušení specifikace auditu databáze vyžadují databázoví principálové oprávnění ALTER ANY DATABASE AUDIT
nebo oprávnění ALTER
či CONTROL
k databázi. Kromě toho musí mít uživatelé oprávnění pro připojení k databázi, nebo ALTER ANY SERVER AUDIT
, nebo CONTROL SERVER
oprávnění.
Oprávnění VIEW ANY DEFINITION
poskytuje přístup k zobrazení zobrazení auditování na úrovni serveru a VIEW DEFINITION
poskytuje přístup k zobrazení zobrazení auditu na úrovni databáze. Odepření těchto oprávnění vyloučí schopnost zobrazit zobrazení katalogu, i když má subjekt ALTER ANY SERVER AUDIT
nebo ALTER ANY DATABASE AUDIT
oprávnění.
Další informace o tom, jak udělit práva a oprávnění, naleznete v tématu GRANT.
Opatrnost
Objekty zabezpečení v roli správce systému můžou manipulovat s libovolnou komponentou auditu a objekty zabezpečení v db_owner roli mohou manipulovat se specifikacemi auditu v databázi. Audit SQL Serveru ověřuje, že přihlášení, které vytváří nebo mění specifikaci auditu, má alespoň ALTER ANY DATABASE AUDIT
oprávnění. Při připojení databáze se ale neprovádí žádné ověření. Měli byste předpokládat, že všechny specifikace auditu databáze jsou důvěryhodné pouze jako objekty zabezpečení v roli správce systému nebo db_owner.
Související úkoly
- Vytvořit audit serveru a specifikaci auditování serveru
- Vytvoření specifikace auditu serveru a auditu databáze
- Zobrazení protokolu auditování SQL Serveru
- Zápis událostí auditu SQL Serveru do protokolu zabezpečení
Články úzce související s auditem
Článek | Popis |
---|---|
Vlastnosti serveru – stránka zabezpečení | Vysvětluje, jak zapnout auditování přihlášení pro SQL Server. Záznamy auditu jsou uloženy v protokolu aplikací systému Windows. |
Konfigurace serveru: režim auditu c2 | Vysvětluje režim auditování dodržování předpisů zabezpečení C2 na SQL Serveru. |
Kategorie události auditu zabezpečení (SQL Server Profiler) | Vysvětluje události auditu, které můžete použít v SQL Server Profileru. Další informace naleznete v tématu SQL Server Profiler. |
trasování SQL | Vysvětluje, jak se dá trasování SQL použít z vlastních aplikací k ručnímu vytváření trasování místo použití SQL Server Profileru. |
Spouště DDL | Vysvětluje, jak můžete pomocí triggerů DDL (Data Definition Language) sledovat změny vašich databází. |
Microsoft TechNet: SQL Server TechCenter: Zabezpečení a ochrana SQL Server 2005 | Poskytuje informace o datech zabezpečení SQL Serveru up-to. |