Delen via


MAAK DATABASEAUDITSPECIFICATIE AAN (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Maakt een databaseauditspecificatie-object aan met behulp van de SQL Server-auditfunctie. Zie SQL Server Audit (Database Engine)voor meer informatie.

Transact-SQL syntaxis-conventies

Syntaxis

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

De naam van de auditspecificatie.

audit_name

De naam van de audit waarop deze specificatie wordt toegepast.

audit_action_specification

De specificatie van acties op sekurabelen door opdrachtgevers die in de audit moeten worden vastgelegd.

action

De naam van een of meer controleerbare acties op databaseniveau. Voor een lijst van auditacties, zie SQL Server Audit Action Groups and Actions.

audit_action_group_name

De naam van een of meer groepen controleerbare acties op databaseniveau. Voor een lijst van auditactiegroepen, zie SQL Server Audit Action Groups and Actions.

klasse

De klassenaam (indien van toepassing) op de securable.

securable

De tabel, weergave of ander beveiligbaar object in de database waarop de auditactie of auditactiegroep moet worden toegepast. Voor meer informatie, zie Beveiligingsobjecten.

principal

De naam van de databasehoofd waarop de auditactie of auditactiegroep wordt toegepast. Om alle databasehoofden te auditen, gebruik je de publieke databaseprincipe. Voor meer informatie, zie Principes (Database Engine).

WITH ( STATE = { ON | UIT } )

Maakt het mogelijk of schakelt de controle uit om gegevens te verzamelen voor deze auditspecificatie.

Opmerkingen

Database-auditspecificaties zijn niet-securable objecten die zich in een bepaalde database bevinden. Wanneer een database-auditspecificatie wordt gemaakt, bevindt deze zich in een uitgeschakelde staat.

Permissions

Gebruikers met de ALTER ANY DATABASE AUDIT toestemming kunnen database-auditspecificaties maken en deze binden aan elke audit.

Nadat een database-auditspecificatie is gemaakt, kunnen gebruikers met de CONTROL SERVER toestemming, of het sysadmin account, deze bekijken.

Voorbeelden

De codevoorbeelden in dit artikel gebruiken de AdventureWorks2025 of AdventureWorksDW2025 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .

Eén. Audit SELECT en INSERT op een tabel voor elke databasehoofd

Het volgende voorbeeld creëert een serveraudit die wordt aangeroepen Payroll_Security_Audit en vervolgens een databaseauditspecificatie die Payroll_Security_Audit auditt en SELECT statements uitvoert INSERT door elk lid van de publieke databaserol, voor de HumanResources.EmployeePayHistory tabel. Elke gebruiker wordt gecontroleerd, omdat elke gebruiker altijd lid is van de publieke rol.

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. Controleer elke datawijziging op alle objecten in een schema voor een specifieke databaserol

Het volgende voorbeeld creëert een serveraudit genaamd DataModification_Security_Audit en vervolgens een databaseauditspecificatie genaamd Audit_Data_Modification_On_All_Sales_Tables die , INSERT, en UPDATE statements door gebruikers in een nieuwe databaserol DELETEauditt SalesUKvoor alle objecten in het Sales schema.

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

Serverauditspecificaties:

Specificaties voor database-audit:

Catalogusweergaven en DMV's: