Megosztás a következőn keresztül:


ADATBÁZIS-AUDIT SPECIFIKÁCIÓ LÉTREHOZÁSA (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Az SQL Server audit funkcióval létrehoz egy adatbázis-audit specifikációs objektumot. További információ: SQL Server Audit (Adatbázismotor).

Transact-SQL szintaxis konvenciók

Szemantika

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

Az audit specifikációjának neve.

audit_name

Az audit neve, amelyre ezt a specifikációt alkalmazzák.

audit_action_specification

A megbízottak által a biztosítékokra vonatkozó intézkedések specifikálása, amelyeket az auditban rögzíteni kell.

action

Egy vagy több adatbázis-szintű auditálható művelet neve. Az audit műveletek listájáért lásd: SQL Server Audit Action Groups és Actions.

audit_action_group_name

Egy vagy több adatbázis-szintű auditálható műveletcsoport neve. Az audit akciócsoportok listájáért lásd: SQL Server Audit Action Groups and Actions.

osztály

Az osztálynév (ha van) a Securable-en.

securable

Az adatbázisban található táblázat, nézet vagy más biztonsági objektum, amelyre az audit műveletet vagy az audit műveletcsoportot alkalmazzuk. További információ: Biztonságos eszközök.

principal

Az adatbázis fő nevére, amelyre az audit akciót vagy az audit műveleti csoportot alkalmazzák. Az összes adatbázis-alap auditálásához használja a nyilvános adatbázis alapkövet. További információért lásd: Principals (Database Engine) szakasz.

WITH ( STATE = { ON | KI } )

Lehetővé teszi vagy letiltja az audit számára, hogy az ellenőrzés nyilvántartásokat gyűjthessen ehhez az auditi specifikációhoz.

Megjegyzések

Az adatbázis-audit specifikációk nem biztonságos objektumok, amelyek egy adott adatbázisban találhatók. Amikor létrehoznak egy adatbázis-audit specifikációt, az letiltott állapotban van.

Permissions

A ALTER ANY DATABASE AUDIT jogosult felhasználók létrehozhatnak adatbázis-audit specifikációkat, és bármely audithoz köthetik őket.

Miután létrehoztak egy adatbázis-audit specifikációt, a jogosult felhasználók CONTROL SERVER vagy a sysadmin fiók megtekinthetik azt.

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A. Auditáld a SELECT és INSERT egy táblán bármely adatbázis-alap esetén

A következő példa létrehoz egy szerverauditot, Payroll_Security_Audit majd egy adatbázis-audit specifikációt, Payroll_Security_AuditSELECT amelyet a INSERT adatbázis bármely tagjának auditjai és állításai a HumanResources.EmployeePayHistory táblához. Minden felhasználót auditálnak, mert minden felhasználó mindig a nyilvános szerep tagja.

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. Auditáld az összes objektumot egy sémában egy adott adatbázis-szerep esetén

A következő példa létrehoz egy szerverauditot, amelyet hívnak DataModification_Security_Audit , majd egy adatbázis-audit specifikációt, Audit_Data_Modification_On_All_Sales_Tables amely auditál INSERT, UPDATE, és DELETE utasításokat végez a felhasználók által egy új adatbázis szerepben SalesUK, az összes séma Sales objektumára.

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

Szerveraudit specifikációk:

Adatbázis-audit specifikációk:

Katalógusnézetek és DMV-k: