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 ]
}
Arguments
audit_specification_name
Nom de la spécification de l'audit.
audit_name
Nom de l'audit auquel cette spécification est appliquée.
audit_action_specification
Spécification des actions sur les éléments sécurisables par les principaux qui doivent être enregistrés dans l’audit.
action
Nom d’une ou plusieurs actions auditables 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 plusieurs groupes d’actions auditables 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 laquelle appliquer l’action d’audit ou le groupe d’actions d’audit. Pour plus d'informations, consultez Securables.
principal
Nom du principal de 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 base de données est créée, les utilisateurs disposant de l’autorisation CONTROL SERVER
ou du sysadmin
compte peuvent l’afficher.
Exemples
Les exemples de code Transact-SQL de cet article sont fondés sur l’échantillon de base de données AdventureWorks2022
ou AdventureWorksDW2022
fourni, que vous pouvez télécharger à partir de la page d’accueil Échantillons et projets communautaires Microsoft SQL Server.
A. Auditer SELECT et INSERT dans une table pour n’importe quel principal de base de données
L’exemple suivant crée un audit de serveur appelé Payroll_Security_Audit
, puis une spécification d’audit de base de données appelée Payroll_Security_Audit
audite SELECT
et INSERT
instructions par n’importe quel membre du rôle de base de données publique , pour la HumanResources.EmployeePayHistory
table. Chaque utilisateur est audité, car chaque utilisateur est toujours membre du rôle public .
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. Auditer toute modification de données sur tous les objets d’un schéma pour un rôle de base de données spécifique
L’exemple suivant crée un audit de serveur appelé DataModification_Security_Audit
, puis une spécification d’audit de base de données appelée Audit_Data_Modification_On_All_Sales_Tables
audits INSERT
, UPDATE
et DELETE
instructions par les utilisateurs dans un nouveau rôle SalesUK
de base de données , pour tous les objets du Sales
schéma.
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
Tâches associées
Spécifications d’audit du serveur :
- CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
- ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
- DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
Spécifications d’audit de base de données :
- CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
- ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
- DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
Vues de catalogue et vues de gestion dynamique :
- 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)
Contenu connexe
- Créer un audit du serveur et une spécification d’audit du serveur
- CREATE SERVER AUDIT (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- ALTER AUTHORIZATION (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)