Audit v MS SQL 2008 (2. část)
- 31. Květen 2009
- Publikováno v MS SQL
- Napište komentář
V předchozí části jsem nastínil jak vytvořit nový Audit, který je však sám o sobě k ničemu. Je třeba určit jaké události budou zaznamenávány. Právě o tom je dnešní část. Přesněji půjde o události na úrovni serveru.
K tomuto účelu slouží Server Audit Specification. Pro každý Audit lze vytvořit pouze jeden objekt Server Audit Specification.
Seznam skupin událostí, které lze ve specifikaci auditu použít, společně s jejich popisem, lze najít na stránkách technet.microsoft.com. V SQL Server Management Studiu je uvedena i možnost FULLTEXT_GROUP, která ve zmíněném seznamu chybí.
Vytvoření Server Audit Specification
Nejprve opět pomocí SQL Server Management Studio
Novou specifikaci vytvoříme první volbou v kontextové nabídce složky Server Audit Specification. Opět ve složce Security na serverové úrovni.
Ze seznamu vytvořených auditů vybereme ten, kterému chceme specifikaci přiřadit a navolíme si skupiny událostí, které chceme sledovat. V mém případě to jsou:
- DATABASE_CHANGE_GROUP - vytvoření, úprava nebo zrušení databáze
- DATABASE_ROLE_MEMBER_CHANGE_GROUP - přidání či odebrání uživatele z databázové role (platí pro všechny databáze)
- FAILED_LOGIN_GROUP - neúspěšné přihlášení k SQL serveru
Specifikace Auditu, stejně jako Audit, je po svém vytvoření neaktivní a tak je třeba jí povolit. Pokud budeme chtít specifikaci upravit, musíme ji nejdříve znovu zakázat.
Nyní by měl náš audit zaznamenávat události spjaté s výše uvedenými skupinami. Jednoduše jsem to otestoval modifikací vlastností databáze 'pokus', odebráním role db_owner uživateli testLogin a na konec pokusem o přihlášení k serveru pomocí špatného hesla.
Že byly události zapsány do logu lze ověřit po jeho zobrazení. Tuto možnost najdeme v kontextové nabídce konkrétního auditu.
![]()
![]()
Objekt Server Audit Specification lze samozřejmě vytvořit i pomocí Transact-SQL
GO
CREATE SERVER AUDIT SPECIFICATION [ServerAuditSpecification-pokus]
FOR SERVER AUDIT [Audit-pokus]
ADD (DATABASE_CHANGE_GROUP),
ADD (DATABASE_ROLE_MEMBER_CHANGE_GROUP),
ADD (FAILED_LOGIN_GROUP);
GO
ALTER SERVER AUDIT SPECIFICATION [ServerAuditSpecification-pokus]
WITH (STATE = ON);
GO
Povolit danou specifikaci lze i rovnou při vytváření.
FOR SERVER AUDIT [Audit-pokus]
ADD (DATABASE_CHANGE_GROUP),
ADD (DATABASE_ROLE_MEMBER_CHANGE_GROUP),
ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON);
GO
Pokud se rozhodneme specifikaci upravit, je třeba ji nejprve zakázat.
WITH (STATE = OFF);
GO
ALTER SERVER AUDIT SPECIFICATION [ServerAuditSpecification-pokus]
DROP (DATABASE_ROLE_MEMBER_CHANGE_GROUP)
WITH (STATE = ON);
GO
Dosud žádný komentář.