CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

Si applica a:SQL Server Istanza gestita di SQL di Azure

Crea un oggetto specifica controllo database usando la funzionalità SQL Server. Per altre informazioni, vedere SQL Server Audit (Motore di database).

Convenzioni di sintassi Transact-SQL

Sintassi

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 ]  
}  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

audit_specification_name
Nome della specifica del controllo.

audit_name
Nome del controllo al quale viene applicata questa specifica.

audit_action_specification
Specifica di azioni eseguite dalle entità su entità a sicurezza diretta da registrare nel controllo.

azione
Nome di una o più azioni controllabili a livello di database. Per un elenco delle azioni di controllo, vedere Azioni e gruppi di azioni di SQL Server Audit.

audit_action_group_name
Nome di uno o più gruppi di azioni controllabili a livello di database. Per un elenco dei gruppi di azioni di controllo, vedere Azioni e gruppi di azioni di SQL Server Audit.

class
Nome della classe nell'entità a protezione diretta, se applicabile.

securable
Tabella, vista oppure altro oggetto a protezione diretta nel database cui applicare l'azione di controllo oppure il gruppo di azioni di controllo. Per altre informazioni, vedere Entità a protezione diretta.

principal
Nome di entità di database cui applicare l'azione di controllo oppure il gruppo di azioni di controllo. Per controllare tutte le entità di database, usare l'entità di database public. Per altre informazioni, vedere Entità (motore di database).

WITH ( STATE = { ON | OFF } )
Abilita o disabilita la raccolta di record mediante il controllo per questa specifica del controllo.

Osservazioni:

Le specifiche del controllo del database sono oggetti non a sicurezza diretta che risiedono in un database specifico. Quando una specifica del controllo del database viene creata, il relativo stato è disabilitato.

Autorizzazioni

Gli utenti che dispongono dell'autorizzazione ALTER ANY DATABASE AUDIT possono creare specifiche del controllo del database e associarle a qualsiasi controllo.

Dopo essere stata creata, una specifica di controllo del database può essere visualizzata dagli utenti con l'autorizzazione CONTROL SERVER o l'account sysadmin.

Esempi

R. Eseguire il controllo di SELECT e INSERT in una tabella per qualsiasi entità di database

L'esempio seguente crea un controllo del server denominato Payrole_Security_Audit e quindi una specifica di controllo del database denominata Payrole_Security_Audit per il controllo delle istruzioni SELECT e INSERT per qualsiasi membro del ruolo del database public per la tabella HumanResources.EmployeePayHistory nel database AdventureWorks2022. Di conseguenza, viene controllato ogni utente perché ogni utente è sempre membro del ruolo public.

USE master ;  
GO  
-- Create the server audit.  
CREATE SERVER AUDIT Payrole_Security_Audit  
    TO FILE ( FILEPATH =   
'D:\SQLAudit\' ) ;  -- make sure this path exists
GO  
-- Enable the server audit.  
ALTER SERVER AUDIT Payrole_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 Payrole_Security_Audit  
ADD (SELECT , INSERT  
     ON HumanResources.EmployeePayHistory BY public )  
WITH (STATE = ON) ;  
GO  

B. Eseguire il controllo di eventuali DML (INSERT, UPDATE o DELETE) su tutti gli oggetti dello schema sales per un ruolo di database specifico

Nell'esempio seguente vengono creati un controllo server denominato DataModification_Security_Audit e una specifica di controllo database denominata Audit_Data_Modification_On_All_Sales_Tables che controlla le istruzioni INSERT, UPDATE e DELETE degli utenti con un nuovo ruolo di database SalesUK, per tutti gli oggetti dello schema Sales nel database AdventureWorks2022.

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  

Vedi anche

CREATE edizione Standard RVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL)
CREATE edizione Standard RVER AUDIT SPECIFICATION (Transact-SQL)
ALTER edizione Standard RVER AUDIT SPECIFICATION (Transact-SQL)
DROP edizione Standard RVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABA edizione Standard AUDIT SPECIFICATION (Transact-SQL)
DROP DATABA edizione Standard AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL)
sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL)
Creazione di un controllo del server e di una specifica del controllo del server