Azioni e gruppi di azioni di SQL Server Audit
La caratteristica SQL Server Audit consente di controllare gruppi di eventi ed eventi singoli a livello di server e di database. Per ulteriori informazioni, vedere Informazioni su SQL Server Audit.
I controlli di SQL Server sono costituiti da zero o da più attività di controllo. Tali attività possono essere un gruppo di azioni, ad esempio Server_Object_Change_Group, oppure azioni singole, ad esempio operazioni SELECT da eseguire in una tabella.
Nota
Server_Object_Change_Group include le operazioni CREATE, ALTER e DROP per qualsiasi oggetto server (database o endpoint).
Ai controlli possono essere associate le categorie di azioni seguenti:
Azioni a livello di server, che includono operazioni server, ad esempio modifiche relative alla gestione e operazioni di accesso e di disconnessione.
Azioni a livello di database, che includono operazioni DML (Data Manipulation Language) e DDL (Data Definition Language).
Azioni a livello di controllo, ovvero le azioni del processo di controllo.
Alcune azioni eseguite sui componenti di controllo di SQL Server vengono verificate in modo intrinseco in un controllo specifico. In questi casi gli eventi di controllo si verificano automaticamente poiché l'evento si è verificato nell'oggetto padre.
Di seguito sono elencate le azioni controllate in modo intrinseco:
- Modifica stato del controllo del server (impostazione dello stato su ON oppure OFF)
Di seguito sono elencati gli eventi non controllati in modo intrinseco:
CREATE SERVER AUDIT SPECIFICATION
ALTER SERVER AUDIT SPECIFICATION
DROP SERVER AUDIT SPECIFICATION
CREATE DATABASE AUDIT SPECIFICATION
ALTER DATABASE AUDIT SPECIFICATION
DROP DATABASE AUDIT SPECIFICATION
Al momento della creazione, tutti i controlli sono disabilitati.
Gruppi di azioni di controllo a livello di server
I gruppi di azioni di controllo a livello di server sono analoghi alle classi degli eventi di controllo della sicurezza di SQL Server. Per ulteriori informazioni, vedere Guida di riferimento alla classe di evento SQL Server.
Nella tabella seguente vengono descritti i gruppi di azioni di controllo a livello di server e, ove applicabile, viene specificata la classe di evento di SQL Server equivalente.
Nome del gruppo di azioni |
Descrizione |
---|---|
APPLICATION_ROLE_CHANGE_PASSWORD_GROUP |
Questo evento viene generato ogni volta che una password viene modificata per un ruolo applicazione. Equivale a Classe di evento Audit App Role Change Password. |
AUDIT_CHANGE_GROUP |
Questo evento viene generato ogni volta che un controllo viene creato, modificato o eliminato, nonché ogni volta che la specifica di un controllo viene creata, modificata o eliminata. Qualsiasi modifica al controllo viene verificata nel controllo stesso. Equivale a Classe di evento Audit Change Audit. |
BACKUP_RESTORE_GROUP |
Questo evento viene generato ogni volta che viene eseguito un comando per il backup o il ripristino. Equivale a Evento Audit Backup/Restore. |
BROKER_LOGIN_GROUP |
Questo evento viene generato per segnalare i messaggi di controllo correlati alla sicurezza del trasporto di Service Broker. Equivale a Classe di evento Audit Broker Login. |
DATABASE_CHANGE_GROUP |
Questo evento viene generato ogni volta che un database viene creato, modificato o eliminato. L'evento viene generato ogni volta che qualsiasi database viene creato, modificato o eliminato. Equivale a Classe di evento Audit Database Management. |
DATABASE_MIRRORING_LOGIN_GROUP |
Questo evento viene generato per segnalare i messaggi di controllo correlati alla sicurezza del trasporto del mirroring del database. Equivale a Classe di evento Audit Database Mirroring Login. |
DATABASE_OBJECT_ACCESS_GROUP |
Questo evento viene generato a ogni accesso a oggetti di database, ad esempio tipi di messaggio, assembly e contratti. Questo evento viene generato per qualsiasi accesso a qualsiasi database.
Nota
Questa situazione potrebbe provocare la creazione di record di controllo di dimensioni elevate.
Equivale a Classe di evento Audit Database Object Access. |
DATABASE_OBJECT_CHANGE_GROUP |
Questo evento viene generato quando si esegue un'istruzione CREATE, ALTER o DROP su oggetti di database, ad esempio schemi. L'evento viene generato ogni volta che un oggetto di database viene creato, modificato o eliminato.
Nota
Questa situazione può provocare la creazione di un numero elevato di record di controllo.
Equivale a Classe di evento Audit Database Object Management. |
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP |
Questo evento viene generato in caso di modifica del proprietario di oggetti nell'ambito del database. L'evento viene generato in caso di qualsiasi modifica del proprietario di oggetti per qualsiasi database del server. Equivale a Classe di evento Audit Database Object Take Ownership. |
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP |
Questo evento viene generato quando è stata eseguita un'istruzione GRANT, REVOKE o DENY per oggetti di database, ad esempio assembly o schemi. Questo evento viene generato per qualsiasi modifica alle autorizzazioni per gli oggetti per qualsiasi database del server. Equivale a Classe di evento Audit Database Object GDR. |
DATABASE_OPERATION_GROUP |
Questo evento viene generato quando vengono eseguite operazioni in un database, ad esempio il checkpoint o la sottoscrizione di notifica delle query. L'evento viene generato in caso di qualsiasi operazione eseguita su qualsiasi database. Equivale a Classe di evento Audit Database Operation. |
DATABASE_OWNERSHIP_CHANGE_GROUP |
Questo evento viene generato quando si utilizza l'istruzione ALTER AUTHORIZATION per modificare il proprietario di un database e quando vengono controllate le autorizzazioni necessarie a tale scopo. L'evento viene generato in caso di qualsiasi modifica del proprietario del database per qualsiasi database del server. Equivale a Classe di evento Audit Change Database Owner. |
DATABASE_PERMISSION_CHANGE_GROUP |
Questo evento viene generato ogni volta che una qualsiasi entità di SQL Server esegue un'istruzione GRANT, REVOKE o DENY in relazione a un'autorizzazione. Questa situazione si applica ad eventi relativi esclusivamente a database, ad esempio la concessione di autorizzazioni su un database. Questo evento viene generato per qualsiasi modifica alle autorizzazioni del database (evento GDR) per qualsiasi database del server. Equivale a Classe di evento Audit Database Scope GDR. |
DATABASE_PRINCIPAL_CHANGE_GROUP |
Questo evento viene generato quando in un database vengono create, modificate o eliminate entità, quali gli utenti. Equivale a Classe di evento Audit Database Principal Management. Equivale anche alla classe di evento Audit Add DB Principal, generata in relazione alle stored procedure deprecate sp_grantdbaccess, sp_revokedbaccess, sp_addPrincipal e sp_dropPrincipal. Questo evento viene generato ogni volta che un ruolo del database viene aggiunto o rimosso utilizzando le stored procedure sp_addrole, sp_droprole. L'evento viene generato ogni volta che una qualsiasi entità di database viene creata, modificata o eliminata da un database. Equivale a Classe di evento Audit Add Role. |
DATABASE_PRINCIPAL_IMPERSONATION_GROUP |
Questo evento viene generato in presenza di un'operazione di rappresentazione nell'ambito del database, ad esempio EXECUTE AS <entità> o SETPRINCIPAL. L'evento viene generato per le rappresentazioni eseguite in qualsiasi database. Equivale a Classe di evento Audit Database Principal Impersonation. |
DATABASE_ROLE_MEMBER_CHANGE_GROUP |
Questo evento viene generato ogni volta che un account di accesso viene aggiunto o rimosso da un ruolo del database. Questa classe di evento viene generata per le stored procedure sp_addrolemember, sp_changegroup e sp_droprolemember. L'evento viene generato in corrispondenza di qualsiasi modifica ai membri del ruolo del database in qualsiasi database. Equivale a Classe di evento Audit Add Member to DB Role. |
DBCC_GROUP |
Questo evento viene generato ogni volta che cui un'entità esegue un comando DBCC. Equivale a Classe di evento Audit DBCC. |
FAILED_LOGIN_GROUP |
Indica che un'entità ha tentato di accedere a SQL Server e l'operazione ha avuto esito negativo. Gli eventi di questa classe vengono generati da nuove connessioni o da connessioni riutilizzate da un pool di connessioni. Equivale a Classe di evento Audit Login Failed. |
FULLTEXT_GROUP |
Indica che è stato generato un evento fulltext. Equivale alla classe di evento Audit Fulltext. |
LOGIN_CHANGE_PASSWORD_GROUP |
Questo evento viene generato ogni volta che una password di accesso viene modificata tramite l'istruzione ALTER LOGIN o la stored procedure sp_password. Equivale a Classe di evento Audit Login Change Password. |
LOGOUT_GROUP |
Indica che un'entità ha effettuato la disconnessione da SQL Server. Gli eventi di questa classe vengono generati da nuove connessioni o da connessioni riutilizzate da un pool di connessioni. Equivale a Classe di evento Audit Logout. |
SCHEMA_OBJECT_ACCESS_GROUP |
Questo evento viene generato ogni volta che nello schema è stata utilizzata un'autorizzazione per gli oggetti. Equivale a Classe di evento Audit Schema Object Access. |
SCHEMA_OBJECT_CHANGE_GROUP |
Questo evento viene generato quando si esegue un'operazione CREATE, ALTER o DROP su uno schema. Equivale a Classe di evento Audit Schema Object Management. Questo evento viene generato sugli oggetti dello schema. Equivale a Classe di evento Audit Object Derived Permission. Questo evento viene generato ogni volta che uno schema di un database subisce una modifica. Equivale a Classe di evento Audit Statement Permission. |
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP |
Questo evento viene generato quando vengono controllate le autorizzazioni per la modifica del proprietario dell'oggetto dello schema, ad esempio una tabella, una procedura o una funzione. Questa situazione si verifica quando si assegna un proprietario a un oggetto tramite l'istruzione ALTER AUTHORIZATION. L'evento viene generato in caso di qualsiasi modifica del proprietario dello schema per qualsiasi database del server. Equivale a Classe di evento Audit Schema Object Take Ownership. |
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP |
Questo evento viene generato ogni volta che un'istruzione GRANT, DENY o REVOKE viene eseguita per un oggetto dello schema. Equivale a Classe di evento Audit Schema Object GDR. |
SERVER_OBJECT_CHANGE_GROUP |
Questo evento viene generato per operazioni CREATE, ALTER o DROP sugli oggetti server. Equivale a Classe di evento Audit Server Object Management. |
SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP |
Questo evento viene generato in caso di modifica del proprietario degli oggetti nell'ambito del server. Equivale a Classe di evento Audit Server Object Take Ownership. |
SERVER_OBJECT_PERMISSION_CHANGE_GROUP |
Questo evento viene generato ogni volta che una qualsiasi entità di SQL Server esegue un'istruzione GRANT, REVOKE o DENY in relazione a un'autorizzazione per l'oggetto server. Equivale a Classe di evento Audit Server Object GDR. |
SERVER_OPERATION_GROUP |
Questo evento viene generato quando si utilizzano operazioni di controllo della sicurezza, ad esempio la modifica di impostazioni, risorse, opzioni per l'accesso esterno o autorizzazioni. Equivale a Classe di evento Audit Server Operation. |
SERVER_PERMISSION_CHANGE_GROUP |
Questo evento viene generato quando viene eseguita un'istruzione GRANT, REVOKE o DENY in relazione alle autorizzazioni nell'ambito del server, ad esempio in caso di creazione di un account di accesso. Equivale a Classe di evento Audit Server Scope GDR. |
SERVER_PRINCIPAL_CHANGE_GROUP |
Questo evento viene generato in caso di creazione, modifica o eliminazione di entità del server. Equivale a Classe di evento Audit Server Principal Management. Questo evento viene generato quando in un'entità viene eseguita la stored procedure p_defaultdb or sp_defaultlanguage o l'istruzione ALTER LOGIN. Equivale a Classe di evento Audit Addlogin. Questo evento viene generato nelle stored procedure sp_addlogin e sp_droplogin. Equivale anche a Classe di evento Audit Login Change Property. Questo evento viene generato per la stored procedure sp_grantlogin, sp_revokelogin o sp_denylogin. Equivale a Classe di evento Audit Login GDR. |
SERVER_PRINCIPAL_IMPERSONATION_GROUP |
Questo evento viene generato in presenza di una rappresentazione nell'ambito del server, ad esempio EXECUTE AS <account di accesso>. Equivale a Classe di evento Audit Server Principal Impersonation. |
SERVER_ROLE_MEMBER_CHANGE_GROUP |
Questo evento viene generato ogni volta che un account di accesso viene aggiunto o rimosso da un ruolo predefinito del server. Questo evento viene generato per le stored procedure sp_addsrvrolemember e sp_dropsrvrolemember. Equivale a Classe di evento Audit Add Login to Server Role. |
SERVER_STATE_CHANGE_GROUP |
Questo evento viene generato quando lo stato del servizio di SQL Server viene modificato. Equivale a Classe di evento Audit Server Starts and Stops. |
SUCCESSFUL_LOGIN_GROUP |
Indica che un'entità ha eseguito in modo corretto l'accesso a SQL Server. Gli eventi di questa classe vengono generati da nuove connessioni o da connessioni riutilizzate da un pool di connessioni. Equivale a Classe di evento Audit Login. |
TRACE_CHANGE_GROUP |
Questo evento viene generato per tutte le istruzioni che controllano l'autorizzazione ALTER TRACE. Equivale a Classe di evento Audit Server Alter Trace. |
Considerazioni
I gruppi di azioni a livello di server comprendono azioni relative a un'istanza di SQL Server. Qualsiasi controllo dell'accesso agli oggetti dello schema in un database, ad esempio, viene registrato se il gruppo di azioni appropriato viene aggiunto a una specifica del controllo del server. In una specifica del controllo del database vengono registrati solo gli accessi agli oggetti dello schema del database specifico.
Le azioni a livello di server non consentono di applicare filtri dettagliati sulle azioni a livello di database. Per implementare l'applicazione di filtri dettagliati sull'azione, è necessario un controllo a livello di database, ad esempio un controllo delle azioni SELECT nella tabella Customers per gli account di accesso nel gruppo Employee. In una specifica del controllo di un database utente non includere oggetti con ambito server, ad esempio viste di sistema.
Gruppi di azioni di controllo a livello di database
I gruppi di azioni di controllo a livello di database sono analoghi alle classi degli eventi di controllo della sicurezza di SQL Server. Per ulteriori informazioni sulle classi degli eventi, vedere Guida di riferimento alla classe di evento SQL Server.
Nella tabella seguente vengono descritti i gruppi di azioni di controllo a livello di database e, dove applicabile, viene specificata la classe di evento di SQL Server equivalente.
Nome del gruppo di azioni |
Descrizione |
---|---|
APPLICATION_ROLE_CHANGE_PASSWORD_GROUP |
Questo evento viene generato ogni volta che una password viene modificata per un ruolo applicazione. Equivale a Classe di evento Audit App Role Change Password. |
AUDIT_CHANGE_GROUP |
Questo evento viene generato ogni volta che un controllo viene creato, modificato o eliminato, nonché ogni volta che la specifica di un controllo viene creata, modificata o eliminata. Qualsiasi modifica al controllo viene verificata nel controllo stesso. Equivale a Classe di evento Audit Change Audit. |
BACKUP_RESTORE_GROUP |
Questo evento viene generato ogni volta che viene eseguito un comando per il backup o il ripristino. Equivale a Evento Audit Backup/Restore. |
DATABASE_CHANGE_GROUP |
Questo evento viene generato ogni volta che un database viene creato, modificato o eliminato. Equivale a Classe di evento Audit Database Management. |
DATABASE_OBJECT_ACCESS_GROUP |
Questo evento viene generato ogni volta che viene eseguito l'accesso a oggetti di database, ad esempio certificati e chiavi asimmetriche. Equivale a Classe di evento Audit Database Object Access. |
DATABASE_OBJECT_CHANGE_GROUP |
Questo evento viene generato quando si esegue un'istruzione CREATE, ALTER o DROP su oggetti di database, ad esempio schemi. Equivale a Classe di evento Audit Database Object Management. |
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP |
Questo evento viene generato in caso di modifica del proprietario di oggetti nell'ambito del database. Equivale a Classe di evento Audit Database Object Take Ownership. |
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP |
Questo evento viene generato quando è stata eseguita un'istruzione GRANT, REVOKE o DENY per oggetti di database, ad esempio assembly o schemi. Equivale a Classe di evento Audit Database Object GDR. |
DATABASE_OPERATION_GROUP |
Questo evento viene generato quando vengono eseguite operazioni in un database, ad esempio il checkpoint o la sottoscrizione di notifica delle query. Equivale a Classe di evento Audit Database Operation. |
DATABASE_OWNERSHIP_CHANGE_GROUP |
Questo evento viene generato quando si utilizza l'istruzione ALTER AUTHORIZATION per modificare il proprietario di un database e quando vengono controllate le autorizzazioni necessarie a tale scopo. Equivale a Classe di evento Audit Change Database Owner. |
DATABASE_PERMISSION_CHANGE_GROUP |
Questo evento viene generato ogni volta che un qualsiasi utente di SQL Server esegue un'istruzione GRANT, REVOKE o DENY in relazione a un'autorizzazione per eventi relativi esclusivamente a database, ad esempio la concessione di autorizzazioni su un database. Equivale a Classe di evento Audit Database Scope GDR. |
DATABASE_PRINCIPAL_CHANGE_GROUP |
Questo evento viene generato quando in un database vengono create, modificate o eliminate entità, quali gli utenti. Equivale a Classe di evento Audit Database Principal Management. Equivale anche a Classe di evento Audit Add DB User, generata in relazione alle stored procedure deprecate sp_grantdbaccess, sp_revokedbaccess, sp_adduser e sp_dropuser. Questo evento viene generato ogni volta che un ruolo del database viene aggiunto o rimosso utilizzando le stored procedure deprecate sp_addrole e sp_droprole. Equivale a Classe di evento Audit Add Role. |
DATABASE_PRINCIPAL_IMPERSONATION_GROUP |
Questo evento viene generato in presenza di una rappresentazione nell'ambito del database, ad esempio EXECUTE AS <utente> o SETUSER. Equivale a Classe di evento Audit Database Principal Impersonation. |
DATABASE_ROLE_MEMBER_CHANGE_GROUP |
Questo evento viene generato ogni volta che un account di accesso viene aggiunto o rimosso da un ruolo del database. Questa classe di evento è utilizzata con le stored procedure sp_addrolemember, sp_changegroup e sp_droprolemember. Equivale a Classe di evento Audit Add Member to DB Role |
DBCC_GROUP |
Questo evento viene generato ogni volta che cui un'entità esegue un comando DBCC. Equivale a Classe di evento Audit DBCC. |
SCHEMA_OBJECT_ACCESS_GROUP |
Questo evento viene generato ogni volta che nello schema è stata utilizzata un'autorizzazione per gli oggetti. Equivale a Classe di evento Audit Schema Object Access. |
SCHEMA_OBJECT_CHANGE_GROUP |
Questo evento viene generato quando si esegue un'operazione CREATE, ALTER o DROP su uno schema. Equivale a Classe di evento Audit Schema Object Management. Questo evento viene generato sugli oggetti dello schema. Equivale a Classe di evento Audit Object Derived Permission e a Classe di evento Audit Statement Permission. |
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP |
Questo evento viene generato quando vengono controllate le autorizzazioni per la modifica del proprietario dell'oggetto dello schema, ad esempio una tabella, una procedura o una funzione. Questa situazione si verifica quando si assegna un proprietario a un oggetto tramite l'istruzione ALTER AUTHORIZATION. Equivale a Classe di evento Audit Schema Object Take Ownership. |
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP |
Questo evento viene generato ogni volta che viene eseguita un'istruzione GRANT, DENY o REVOKE per un oggetto dello schema. Equivale a Classe di evento Audit Schema Object GDR. |
Azioni di controllo a livello di database
Le azioni a livello di database supportano il controllo di azioni specifiche direttamente in database, schemi e oggetti dello schema, ad esempio tabelle, viste, stored procedure, funzioni, stored procedure estese, code e sinonimi. Tipi, raccolte di XML Schema, database e schemi non sono controllati. Il controllo di oggetti dello schema può essere configurato nello schema o nel database, ovvero tutti gli eventi sugli oggetti dello schema contenuti nello schema o nel database specificato verranno controllati. Nella tabella seguente vengono descritte le azioni di controllo a livello di database.
Azione |
Descrizione |
---|---|
SELECT |
Questo evento viene generato ogni volta che viene eseguita un'istruzione SELECT. |
UPDATE |
Questo evento viene generato ogni volta che viene eseguita un'istruzione UPDATE. |
INSERT |
Questo evento viene generato ogni volta che viene eseguita un'istruzione INSERT. |
DELETE |
Questo evento viene generato ogni volta che viene eseguita un'istruzione DELETE. |
EXECUTE |
Questo evento viene generato ogni volta che viene eseguita un'istruzione EXECUTE. |
RECEIVE |
Questo evento viene generato ogni volta che viene eseguita un'istruzione RECEIVE. |
REFERENCES |
Questo evento viene generato ogni volta che viene controllata un'autorizzazione REFERENCES. |
Considerazioni
Le azioni di controllo a livello di database non si applicano alle colonne.
Quando Query Processor parametrizza la query, il parametro può apparire nel log degli eventi di controllo anziché nei valori di colonna della query.
Gruppi di azioni di controllo a livello di controllo
È possibile controllare le azioni anche durante il processo di controllo stesso. Questa operazione può essere eseguita sia nell'ambito del server che in quello del database. In quest'ultimo caso l'operazione può essere eseguita solo per le specifiche del controllo del database. Nella tabella seguente vengono descritti i gruppi di azioni di controllo a livello di controllo.
Nome del gruppo di azioni |
Descrizione |
---|---|
AUDIT_ CHANGE_GROUP |
Questo evento viene generato ogni volta che viene eseguito uno dei comandi seguenti:
|
Vedere anche