Partager via


CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Crée un objet de spécification d’audit de base de données à l’aide de la fonctionnalité SQL Server Audit. Pour plus d’informations, consultez Audit SQL Server (moteur de base de données).

Conventions de la syntaxe Transact-SQL

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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

audit_specification_name
Nom de la spécification d’audit.

audit_name
Nom de l’audit auquel cette spécification est appliquée.

audit_action_specification
Spécification des actions exécutées sur des éléments sécurisables par des principaux qui doivent être enregistrées dans l'audit.

action
Nom d'une ou de plusieurs actions pouvant être auditées au niveau de la base de données. Pour obtenir la liste des actions d’audit, consultez Actions et groupes d’actions SQL Server Audit.

audit_action_group_name
Nom d'un ou de plusieurs groupes d'actions pouvant être auditées au niveau de la base de données. Pour obtenir la liste des groupes d’actions d’audit, consultez Actions et groupes d’actions SQL Server Audit.

class
Nom de classe (le cas échéant) sur l'élément sécurisable.

securable
Table, vue ou autre objet sécurisable dans la base de données sur lequel appliquer l'action d'audit ou le groupe d'actions d'audit. Pour plus d'informations, consultez Securables.

principal
Nom du principal de la base de données sur lequel appliquer l’action d’audit ou le groupe d’actions d’audit. Pour auditer tous les principaux de base de données, utilisez le principal de base de données public. Pour plus d’informations, consultez Principaux (moteur de base de données).

WITH ( STATE = { ON | OFF } )
Active ou désactive la collecte d'enregistrements d'audit pour cette spécification d'audit.

Notes

Les spécifications d'audit de base de données sont des objets non sécurisables qui résident dans une base de données spécifiée. Lorsqu'une spécification d'audit de base de données est créée, elle se trouve dans un état désactivé.

Autorisations

Les utilisateurs dotés de l’autorisation ALTER ANY DATABASE AUDIT peuvent créer des spécifications d’audit de base de données et les lier à n’importe quel audit.

Une fois qu’une spécification d’audit de la base de données est créée, elle est consultable par les utilisateurs disposant de l’autorisation CONTROL SERVER ou du compte sysadmin.

Exemples

R. Auditer SELECT et INSERT dans une table pour n’importe quel principal de base de données

L’exemple suivant crée un audit du serveur nommé Payrole_Security_Audit, puis une spécification d’audit de la base de données nommée Payrole_Security_Audit qui audite les instructions SELECT et INSERT par n’importe quel membre du rôle de base de données public, pour la table HumanResources.EmployeePayHistory de la base de données AdventureWorks2022. Cela a pour effet que chaque utilisateur est audité, car chaque utilisateur est toujours membre du rôle 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. Auditer le DML (INSERT, UPDATE ou DELETE) dans tous les objets du schéma sales d’un rôle de base de données

L’exemple suivant crée un audit du serveur nommé DataModification_Security_Audit, puis une spécification d’audit de la base de données nommée Audit_Data_Modification_On_All_Sales_Tables qui audite les instructions INSERT, UPDATE et DELETE par les utilisateurs d’un nouveau rôle de base de données SalesUK, pour tous les objets du schéma Sales de la base de données 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  

Voir aussi

CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE 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)
Créer un audit du serveur et une spécification d’audit du serveur