Créer une spécification de l’audit du serveur et de la base de données

S’applique à :SQL Server

Cet article explique comment créer un audit de serveur et une spécification d’audit de base de données dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL.

L’audit d’une instance de SQL Server ou d’une base de données SQL Server implique le suivi et la journalisation des événements qui se produisent sur le système. L’objet Audit SQL Server collecte une seule instance des actions et des groupes d’actions au niveau du serveur ou au niveau de la base de données à superviser. L’audit est au niveau de l’instance SQL Server. Vous pouvez avoir plusieurs audits par instance SQL Server. L’objet Spécification d’audit de niveau base de données appartient à un audit. Vous pouvez créer une spécification d'audit de base de données par base de données SQL Server et par audit. Pour plus d’informations, consultez audit SQL Server (moteur de base de données).

Avant de commencer

Limitations et restrictions

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é.

Lorsque vous créez ou modifiez une spécification d’audit de base de données dans une base de données utilisateur, n’incluez pas d’actions d’audit sur les objets situés dans l’étendue du serveur, tels que les vues système. Si vous le faites, l’audit sera créé. Toutefois, les objets situés dans l’étendue du serveur ne seront pas inclus, et aucune erreur ne sera retournée. Pour auditer les objets situés dans l’étendue du serveur, utilisez une spécification d’audit de base de données dans la base de données MASTER.

Les spécifications d’audit de base de données résident dans la base de données où elles sont créées, à l’exception de la base de données système TempDB.

Sécurité

Autorisations

  • Les utilisateurs disposant 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 base de données est créée, les principaux qui disposent des autorisations CONTROL SERVER ou ALTER ANY DATABASE AUDIT peuvent la voir. Le compte sysadmin peut également la voir.

Utilisation de SQL Server Management Studio

Pour créer un audit de serveur

  1. Dans l'Explorateur d'objets, développez le dossier Sécurité .

  2. Cliquez avec le bouton droit sur le dossier Audits, puis sélectionnez Nouvel audit. Pour plus d’informations, consultez Créer un audit du serveur et une spécification d’audit du serveur.

  3. Lorsque vous avez sélectionné les options, sélectionnez OK.

Pour créer une spécification d'audit de niveau base de données

  1. Dans l’Explorateur d’objets, développez la base de données dans laquelle vous souhaitez créer la spécification d’audit.

  2. Développez le dossier Sécurité .

  3. Cliquez avec le bouton droit sur le dossier Spécifications de l’audit de la base de données, puis sélectionnez Nouvelle spécification de l’audit de la base de données.

    Ces options sont disponibles dans la boîte de dialogue Créer la spécification de l’audit de la base de données :

    Nom 
    Nom de la spécification de l'audit de la base de données. Un nom est généré automatiquement lorsque vous créez une spécification d’audit de serveur. Le nom est modifiable.

    Audit
    Nom d’un objet d’audit de serveur existant. Tapez le nom de l'audit ou sélectionnez-le dans la liste.

    Type d'action de l'audit
    Spécifie les groupes d'actions d'audit de niveau base de données et les actions d'audit à capturer. Pour obtenir la liste d’actions d’audit et de groupes d’actions d’audit au niveau de la base de données, ainsi qu’une description des événements qu’ils contiennent, consultez Actions et groupes d’actions SQL Server Audit.

    Schéma d'objet
    Affiche le schéma du Nom de l’objetspécifié.

    Nom de l’objet
    Nom de l'objet à auditer. Cette option est disponible uniquement pour les actions d’audit. Elle ne s’applique pas aux groupes d’audit.

    Points de suspension (...)
    Ouvre la boîte de dialogue Sélectionner des objets permettant de rechercher et de sélectionner un objet disponible, en fonction du Type d’action de l’audit spécifié.

    Nom principal
    Compte par lequel filtrer l'audit pour l'objet audité.

    Points de suspension (...)
    Ouvre la boîte de dialogue Sélectionner des objets permettant de rechercher et de sélectionner un objet disponible, en fonction du Nom d’objet spécifié.

  4. Lorsque vous avez sélectionné les options, sélectionnez OK.

Utilisation de Transact-SQL

Pour créer un audit de serveur

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.

    USE master ;  
    GO  
    -- Create the server audit.   
    CREATE SERVER AUDIT Payrole_Security_Audit  
        TO FILE ( FILEPATH =   
    'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA' ) ;   
    GO  
    -- Enable the server audit.   
    ALTER SERVER AUDIT Payrole_Security_Audit   
    WITH (STATE = ON) ;  
    

Pour créer une spécification d'audit de niveau base de données

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter. Cet exemple crée une spécification d’audit de serveur nommée Audit_Pay_Tables. Il audite les instructions SELECT et INSERT de l’utilisateur dbo pour la table HumanResources.EmployeePayHistory, en fonction de l’audit de serveur défini dans la section précédente.

    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 dbo )   
    WITH (STATE = ON) ;   
    GO  
    
    

Pour plus d’informations, consultez CREATE SERVER AUDIT (Transact-SQL) et CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL).