Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 relative alla 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 ]
}
Argomenti
audit_specification_name
Nome della specifica del controllo.
audit_name
Nome del controllo al quale viene applicata questa specifica.
audit_action_specification
Specifica delle azioni sulle entità a protezione diretta che devono essere registrate 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 (se applicabile) nell'entità a protezione diretta.
securable
Tabella, vista o altro oggetto a protezione diretta nel database in cui applicare l'azione di controllo o il gruppo di azioni di controllo. Per altre informazioni, vedere Entità a protezione diretta.
principal
Nome dell'entità di database in cui applicare l'azione di controllo o il gruppo di azioni di controllo. Per controllare tutte le entità di database, usare l'entità di database pubblica . Per altre informazioni, vedere Entità (motore di database).
CON ( STATO = { SU | 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. Al momento della creazione, una specifica di controllo database è in 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 aver creato una specifica di controllo del database, gli utenti con l'autorizzazione CONTROL SERVER o l'account sysadmin possono visualizzarlo.
Esempi
Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.
R. Eseguire il controllo di SELECT e INSERT in una tabella per qualsiasi entità di database
Nell'esempio seguente viene creato un controllo del server denominato Payroll_Security_Audit e quindi una specifica di controllo del database denominata Payroll_Security_Audit che controlla SELECT e INSERT istruzioni da qualsiasi membro del ruolo del database pubblico per la HumanResources.EmployeePayHistory tabella. Ogni utente viene controllato, perché ogni utente è sempre membro del ruolo pubblico .
USE master;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payroll_Security_Audit
TO FILE (FILEPATH = 'D:\SQLAudit\'); -- make sure this path exists
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payroll_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 Payroll_Security_Audit ADD (
SELECT, INSERT ON HumanResources.EmployeePayHistory BY PUBLIC
)
WITH (STATE = ON);
GO
B. Controllare qualsiasi modifica dei dati in tutti gli oggetti in uno schema per un ruolo del database specifico
Nell'esempio seguente viene creato un controllo del server denominato DataModification_Security_Audit e quindi una specifica di controllo del database denominata Audit_Data_Modification_On_All_Sales_Tables che controlla INSERTle istruzioni , UPDATEe DELETE dagli utenti in un nuovo ruolo SalesUKdel database , per tutti gli oggetti nello Sales schema.
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
Attività correlate
Specifiche del controllo del server:
- CREA LA SPECIFICA DI AUDIT SERVER (Transact-SQL)
- ALTER SPECIFICA DI VERIFICA DEL SERVER (Transact-SQL)
- SPECIFICA DI AUDIT DEL SERVER DROP (Transact-SQL)
Specifiche di controllo del database:
- CREA UNA SPECIFICAZIONE DI VERIFICA DEL DATABASE (Transact-SQL)
- MODIFICA DELLA SPECIFICA DI AUDIT DEL DATABASE (Transact-SQL)
- DROP SPECIFICA DI AUDIT DEL DATABASE (Transact-SQL)
Viste del catalogo e DMV:
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- sys.specifiche_di_audit_del_server (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Contenuto correlato
- Creazione di un controllo del server e di una specifica del controllo del server
- CREATE SERVER AUDIT (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP AUDIT SERVER (Transact-SQL)
- ALTERA AUTORIZZAZIONE (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)