Sdílet prostřednictvím


VYTVOŘENÍ SPECIFIKACE PRO AUDIT DATABÁZE (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Vytváří specifikační objekt pro audit databáze pomocí auditní funkce SQL Server. Další informace získáte v části SQL Server Audit (Database Engine).

Transact-SQL konvence syntaxe

Syntaxe

CREATE DATABASE AUDIT SPECIFICATION audit_specification_name
{
    FOR SERVER AUDIT audit_name
        [ ADD (
            { <audit_action_specification> | audit_action_group_name }
            [ , ...n ] )
        ]
        [ WITH ( STATE = { ON | OFF } ) ]
}
[ ; ]
<audit_action_specification>::=
{
    action [ , ...n ] ON [class::]securable BY principal [ , ...n ]
}

Arguments

audit_specification_name

Název specifikace auditu.

audit_name

Název auditu, na který se tato specifikace vztahuje.

audit_action_specification

Specifikace opatření na zajištění ze strany zmocnitelů, která by měla být zaznamenána při auditu.

action

Název jedné nebo více auditovatelných akcí na úrovni databáze. Pro seznam auditních akcí viz SQL Server Audit Action Groups and Actions.

audit_action_group_name

Název jedné nebo více skupin databázově auditovatelných akcí. Pro seznam skupin auditních akcí viz SQL Server Audit Action Groups and Actions.

třída

Název třídy (pokud je relevantní) na securable.

securable

Tabulka, pohled nebo jiný zabezpečený objekt v databázi, na který lze aplikovat auditní akci nebo skupinu auditních akcí. Další informace naleznete v tématu Securables.

principal

Název databázového principa, na který se aplikuje auditní akce nebo skupina auditních akcí. Pro audit všech principalů databáze použijte principal veřejné databáze. Pro více informací viz Principals (Database Engine).

S ( STAV = { ON | VYPNUTO } )

Umožňuje nebo zakazuje auditu sběr záznamů pro tuto specifikaci auditu.

Poznámky

Specifikace auditu databází jsou nezabezpečené objekty, které se nacházejí v dané databázi. Když je specifikace auditu databáze vytvořena, je v deaktivovaném stavu.

Povolení

Uživatelé s tímto oprávněním ALTER ANY DATABASE AUDIT mohou vytvářet specifikace auditu databáze a vázat je na jakýkoli audit.

Po vytvoření specifikace auditu databáze ji mohou uživatelé s oprávněním CONTROL SERVER , tedy účtem sysadmin , vidět.

Examples

Ukázky kódu v tomto článku používají ukázkovou databázi AdventureWorks2025 nebo AdventureWorksDW2025, kterou si můžete stáhnout z domovské stránky Microsoft SQL Serveru pro ukázky a komunitní projekty .

A. Auditujte SELECT a INSERT v tabulce pro jakýkoli princip databáze

Následující příklad vytváří server audit a Payroll_Security_AuditPayroll_Security_Audit poté specifikaci auditu databáze nazvanou SELECT this audits INSERT a příkazy od kteréhokoliv člena veřejné databázové role pro tabulku.HumanResources.EmployeePayHistory Každý uživatel je auditován, protože každý uživatel je vždy členem veřejné role .

USE master;
GO

-- Create the server audit.
CREATE SERVER AUDIT Payroll_Security_Audit
TO FILE (FILEPATH = 'D:\SQLAudit\'); -- make sure this path exists
GO

-- Enable the server audit.
ALTER SERVER AUDIT Payroll_Security_Audit
WITH (STATE = ON);
GO

-- Move to the target database.
USE AdventureWorks2022;
GO

-- Create the database audit specification.
CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables
FOR SERVER AUDIT Payroll_Security_Audit ADD (
    SELECT, INSERT ON HumanResources.EmployeePayHistory BY PUBLIC
)
WITH (STATE = ON);
GO

B. Auditujte jakoukoli úpravu dat na všech objektech ve schématu pro konkrétní databázovou roli

Následující příklad vytváří server audit nazvaný DataModification_Security_Audit a poté specifikaci databázového auditu nazvanou Audit_Data_Modification_On_All_Sales_Tables , která audituje INSERT, UPDATE, a příkazy DELETE uživatelů v nové databázové roli SalesUK, pro všechny objekty ve schématu Sales .

USE master;
GO

-- Create the server audit.
-- Change the path to a path that the SQLServer Service has access to.
CREATE SERVER AUDIT DataModification_Security_Audit
TO FILE (FILEPATH = 'D:\SQLAudit\'); -- make sure this path exists
GO

-- Enable the server audit.
ALTER SERVER AUDIT DataModification_Security_Audit
WITH (STATE = ON);
GO

-- Move to the target database.
USE AdventureWorks2022;
GO

CREATE ROLE SalesUK
GO

-- Create the database audit specification.
CREATE DATABASE AUDIT SPECIFICATION Audit_Data_Modification_On_All_Sales_Tables
FOR SERVER AUDIT DataModification_Security_Audit ADD (
    INSERT, UPDATE, DELETE ON SCHEMA::Sales BY SalesUK
)
WITH (STATE = ON);
GO

Specifikace auditu serveru:

  • CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
  • ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
  • DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

Specifikace auditu databáze:

  • CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
  • ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
  • DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

Zobrazení katalogu a DMV: