Creare una specifica di controllo server e di controllo database

Si applica a:SQL Server

Questo articolo descrive come creare un controllo del server e una specifica di controllo database in SQL Server usando SQL Server Management Studio o Transact-SQL.

Il controllo di un'istanza di SQL Server o di un database di SQL Server comporta il rilevamento e la registrazione di eventi che si verificano nel sistema. L'oggetto SQL Server Audit raccoglie un'unica istanza di azioni a livello di server o di database e gruppi di azioni da monitorare. Il controllo si trova al livello dell'istanza di SQL Server. Per ogni istanza di SQL Server è possibile disporre di più controlli. Anche l'oggetto Database-Level Audit Specification fa parte di un controllo. È possibile creare una specifica del controllo del database per ogni database di SQL Server e per ogni controllo. Per altre informazioni, vedi SQL Server Audit (Motore di database).

Operazioni preliminari

Limitazioni e restrizioni

Le specifiche del controllo del database sono oggetti non a sicurezza diretta che risiedono in un database specifico. Al momento della creazione, una specifica di controllo database è in stato disabilitato.

Durante la creazione o la modifica di una specifica di controllo database in un database utente, non includere azioni di controllo su oggetti con ambito server, come le viste di sistema. Se si includono oggetti con ambito server, verrà creato il controllo, ma gli oggetti con ambito server non saranno inclusi e non verrà restituito alcun errore. Per eseguire il controllo degli oggetti con ambito server, usare una specifica di controllo database nel database master.

Le specifiche di controllo database risiedono nel database dove vengono create, ad eccezione del database di sistema TempDB.

Sicurezza

Autorizzazioni

  • Gli utenti con l'autorizzazione ALTER ANY DATABASE AUDIT possono creare specifiche di controllo database e associarle a qualsiasi controllo.

  • Dopo la creazione di una specifica di controllo database, le entità con le autorizzazioni CONTROL SERVER o ALTER ANY DATABASE AUDIT possono visualizzarla. Anche l'account sysadmin può visualizzarla.

Utilizzo di SQL Server Management Studio

Per creare un controllo del server

  1. In Esplora oggetti espandere la cartella Sicurezza .

  2. Fare clic con il pulsante destro del mouse sulla cartella Controlli e scegliere Nuovo controllo. Per altre informazioni, vedere Creare un controllo server e una specifica di controllo server.

  3. Dopo aver selezionato le opzioni desiderate selezionare OK.

Per creare una specifica del controllo a livello di database

  1. In Esplora oggetti espandere il database in cui si vuole creare la specifica di controllo.

  2. Espandere la cartella Sicurezza .

  3. Fare clic con il pulsante destro del mouse sulla cartella Specifiche controllo database e scegliere Nuova specifica controllo database.

    Nella finestra di dialogo Crea specifica controllo database sono disponibili queste opzioni:

    Nome
    Nome della specifica del controllo del database. Un nome viene generato automaticamente quando si crea una nuova specifica di controllo server. Il nome è modificabile.

    Controllo
    Nome di un oggetto controllo server esistente. Digitare il nome del controllo o selezionarlo nell'elenco.

    Tipo di azione di controllo
    Specifica i gruppi di azioni di controllo a livello di database e le azioni di controllo da acquisire. Per un elenco di gruppi di azioni di controllo a livello di database e delle azioni di controllo e una descrizione degli eventi contenuti, vedere Azioni e gruppi di azioni di controllo di SQL Server.

    Schema dell'oggetto
    Consente di visualizzare lo schema per il nome oggettospecificato.

    nome oggetto
    Nome dell'oggetto da controllare. Questa opzione è disponibile solo per le azioni di controllo. Non si applica ai gruppi di controllo.

    Puntini di sospensione (...)
    Apre la finestra di dialogo Seleziona oggetti in modo da poter cercare e selezionare un oggetto disponibile, in base all'opzione Tipo di azione di controllo specificata.

    Nome entità
    Account per filtrare il controllo per l'oggetto da controllare.

    Puntini di sospensione (...)
    Apre la finestra di dialogo Seleziona oggetti in modo da poter cercare e selezionare un oggetto disponibile, in base all'opzione Nome oggettospecificata.

  4. Dopo aver selezionato le opzioni desiderate selezionare OK.

Utilizzo di Transact-SQL

Per creare un controllo del server

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Incollare l'esempio seguente nella finestra Query e quindi selezionare Esegui.

    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) ;  
    

Per creare una specifica del controllo a livello di database

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Incollare l'esempio seguente nella finestra Query e quindi selezionare Esegui. In questo esempio viene creata una specifica di controllo database denominata Audit_Pay_Tables. Controlla le istruzioni SELECT e INSERT da parte dell'utente dbo per la tabella HumanResources.EmployeePayHistory, in base al controllo server definito nella sezione precedente.

    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  
    
    

Per altre informazioni, vedi CREATE SERVER AUDIT (Transact-SQL) e CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL).