Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
La fonctionnalité SQL Server Audit vous permet d’effectuer l’audit d’événements et de groupes d’événements au niveau du serveur et au niveau de la base de données. Pour plus d’informations, consultez Audit SQL Server (moteur de base de données). Serveur SQL Server.
Les audits sont constitués de zéro ou plusieurs éléments d'action d'audit, enregistrés dans une cibled'audit. La cible d’audit peut être un fichier binaire, le journal des événements d’applications Windows ou le journal des événements de sécurité Windows. Les enregistrements envoyés à la cible peuvent contenir les éléments décrits dans le tableau suivant :
| Nom de colonne | Description | Type | Toujours disponible |
|---|---|---|---|
| event_time | Date et heure à laquelle l’action auditable est déclenchée. | datetime2 | Oui |
| sequence_number | Assure le suivi de la séquence d'enregistrements dans un enregistrement d'audit unique qui était trop grand pour la mémoire tampon d'écriture pour audits. | int | Oui |
| action_id | ID de l’action Conseil : pour utiliser action_id en tant que prédicat, cette chaîne de caractères doit être convertie en valeur numérique. Pour plus d’informations, consultez Filtrage de l’audit SQL Server sur le prédicat action_id/class_type. |
varchar(4) | Oui |
| succeeded | Indique si l’action qui a déclenché l’événement a réussi. Pour tous les événements autres que les événements de connexion, cela indique uniquement si la vérification d’autorisation a réussi ou échoué, et non l’opération. - 1 = Réussite - 0 = Échec |
bit | Oui |
| permission_bitmask | Dans certaines actions, il s’agit des autorisations accordées, refusées ou révoquées. | varbinary(16) | Non |
| is_column_permission | Indicateur indiquant s’il s’agit d’une autorisation au niveau de la colonne. Retourne 0 lorsque le permission_bitmask = 0. - 1 = Vrai - 0 = Faux |
bit | Non |
| session_id | ID de la session au cours de laquelle l'événement s'est produit. | smallint | Oui |
| server_principal_id | ID du contexte de connexion dans lequel l'action est effectuée. | int | Oui |
| database_principal_id | ID du contexte de l'utilisateur de base de données dans lequel l'action est effectuée. Retourne 0 si cela ne s’applique pas. Par exemple, une opération de serveur. | int | Non |
| target_server_principal_id | Principal du serveur sur lequel l’opération GRANT/DENY/REVOKE est effectuée. Retourne 0 s’il n’est pas applicable. | int | Oui |
| target_database_principal_id | Le principal de base de données sur lequel l’opération GRANT/DENY/REVOKE est effectuée. Retourne 0 s’il n’est pas applicable. | int | Non |
| object_id | ID de l’entité sur laquelle l’audit s’est produit. Cela inclut les éléments suivants : Des objets de serveur databases Objets de base de données Des objets de schéma Retourne 0 si l’entité est le serveur lui-même ou si l’audit n’est pas effectué au niveau d’un objet. Par exemple, l’authentification. |
int | Non |
| class_type | Type d’entité auditable sur laquelle l’audit se produit. | varchar(2) | Oui |
| session_server_principal_name | Principal du serveur pour la session. | sysname | Oui |
| server_principal_name | Connexion actuelle. | sysname | Oui |
| server_principal_sid | SID de la connexion actuelle. | varbinary(85) | Oui |
| database_principal_name | Utilisateur actuel. | sysname | Non |
| target_server_principal_name | Connexion cible de l'action. Retourne LA valeur NULL si elle n’est pas applicable. | sysname | Non |
| target_server_principal_sid | SID de la connexion cible. Retourne LA valeur NULL si elle n’est pas applicable. | varbinary(85) | Non |
| target_database_principal_name | Utilisateur cible de l'action. Retourne LA valeur NULL si elle n’est pas applicable. | sysname | Non |
| server_instance_name | Nom de l'instance de serveur où l'audit s'est produit. Le format de serveur\instance standard est utilisé. | sysname | Oui |
| database_name | Contexte de base de données dans lequel l'action s'est produite. Nullable. Retourne NULL pour les audits qui se produisent au niveau du serveur. | sysname | Non |
| schema_name | Contexte du schéma dans lequel l’action s’est produite. | sysname | Non |
| object_name | Nom de l’entité sur laquelle l’audit s’est produit. Cela inclut les éléments suivants : Des objets de serveur databases Objets de base de données Des objets de schéma Nullable. Retourne NULL si l’entité est le serveur lui-même ou si l’audit n’est pas effectué au niveau de l’objet. Par exemple, l’authentification. |
sysname | Non |
| instruction | Instruction TSQL s’il existe. Retourne LA valeur NULL si elle n’est pas applicable. | nvarchar(4000) | Non |
| additional_information | Les informations uniques qui s’appliquent uniquement à un seul événement sont retournées en tant que XML. Quelques actions auditables contiennent ce type d’informations. Un niveau de pile TSQL s’affiche au format XML pour les actions associées à la pile TSQL. Le format XML sera : <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>Le cadre nest_level indique le niveau d’imbrication actuel du cadre. Le nom du module est représenté au format trois parties (database_name, schema_name et object_name). Le nom du module sera analysé pour échapper des caractères xml non valides tels que '\<', '>', '/', '_x'. Ils seront échappés comme _xHHHH\_. Le HHHH signifie le code UCS-2 hexadécimal à quatre chiffres pour le caractèreNullable. Retourne NULL lorsqu’aucune information supplémentaire n’est signalée par l’événement. |
nvarchar(4000) | Non |
| file_name | Chemin d’accès et nom du fichier journal d’audit à partir duquel l’enregistrement provient. | varchar(260) | Oui |
| audit_file_offset |
S’applique à : SQL Server uniquement Décalage de mémoire tampon dans le fichier qui contient l’enregistrement d’audit. |
bigint | Non |
| user_defined_event_id |
S’applique à : SQL Server 2012 (11.x) et versions ultérieures, Azure SQL Database et SQL Managed Instance ID d’événement défini par l’utilisateur passé en tant qu’argument à sp_audit_writeNULL pour les événements système (valeur par défaut) et différent de zéro pour l’événement défini par l’utilisateur. Pour plus d’informations, consultez sp_audit_write (Transact-SQL). |
smallint | Non |
| user_defined_information |
S’applique à : SQL Server 2012 (11.x) et versions ultérieures, Azure SQL Database et SQL Managed Instance Utilisé pour enregistrer toutes les informations supplémentaires que l’utilisateur souhaite enregistrer dans le journal d’audit à l’aide de la sp_audit_write procédure stockée. |
nvarchar(4000) | Non |
| audit_schema_version | Toujours 1 | int | Oui |
| sequence_group_id |
S’applique à : SQL Server uniquement Identificateur unique |
varbinary(85) | Non |
| transaction_id |
S’applique à : SQL Server uniquement (à partir de 2016) Identificateur unique pour identifier plusieurs événements d’audit dans une transaction |
bigint | Non |
| client_ip |
S’applique à : Azure SQL Database + SQL Server (à compter de 2017) Adresse IP source de l’application cliente |
nvarchar(128) | Non |
| application_name |
S’applique à : Azure SQL Database + SQL Server (à compter de 2017) Nom de l’application cliente qui a exécuté l’instruction qui a provoqué l’événement d’audit |
nvarchar(128) | Non |
| duration_milliseconds |
S’applique à : Azure SQL Database et SQL Managed Instance Durée d’exécution des requêtes en millisecondes |
bigint | Non |
| response_rows |
S’applique à : Azure SQL Database et SQL Managed Instance Nombre de lignes retournées dans le jeu de résultats. |
bigint | Non |
| affected_rows |
S’applique uniquement à : Azure SQL Database Nombre de lignes affectées par l’instruction exécutée. |
bigint | Non |
| connection_id |
S’applique à : Azure SQL Database et SQL Managed Instance ID de la connexion dans le serveur |
GUID | Non |
| data_sensitivity_information |
S’applique uniquement à : Azure SQL Database Types d’informations et étiquettes de confidentialité retournés par la requête auditée, en fonction des colonnes classées dans la base de données. En savoir plus sur la découverte et la classification des données Azure SQL Database |
nvarchar(4000) | Non |
| host_name | Nom d’hôte de la connexion cliente | nvarchar(128) | Non |
| session_context | Informations de contexte de session pour la connexion | nvarchar(4000) | Non |
| client_tls_version |
S’applique à : SQL Server 2022 et versions ultérieures Numéro de version TLS utilisé par la connexion cliente |
int | Non |
| client_tls_version_name |
S’applique à : SQL Server 2022 et versions ultérieures Nom de version TLS utilisé par la connexion cliente |
nvarchar(128) | Non |
| database_transaction_id | Identificateur de transaction de base de données | bigint | Non |
| ledger_start_sequence_number |
S’applique à : SQL Server 2022 et versions ultérieures Numéro de séquence de début du registre pour les opérations de registre |
bigint | Non |
| external_policy_permissions_checked | Autorisations de stratégie externe qui ont été vérifiées pendant l’opération | nvarchar(4000) | Non |
Notes
Certaines actions ne remplissent pas la valeur d’une colonne, car elle peut ne pas être appliquée à l’action.
SQL Server Audit stocke 4 000 caractères de données pour les champs de caractères dans un enregistrement d’audit. Lorsque les valeurs de additional_information et d’instruction retournées à partir d’une action auditable retournent plus de 4 000 caractères, la colonne sequence_number est utilisée pour écrire plusieurs enregistrements dans le rapport d’audit pour enregistrer ces données. Pour ce faire, procédez comme suit :
La colonne d’instruction est divisée en 4 000 caractères.
SQL Server Audit écrit sur la première ligne de l'enregistrement d'audit les données partielles. Tous les autres champs sont dupliqués sur chaque ligne.
La valeur sequence_number est incrémentée.
Ce processus est répété jusqu'à ce que toutes les données soient enregistrées.
Vous pouvez connecter les données en lisant les lignes de manière séquentielle à l’aide de la valeur sequence_number , ainsi que les event_Time, les action_id et les colonnes session_id pour identifier l’action.
Contenu connexe
- CRÉER UN AUDIT DE SERVEUR (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- CRÉER SPÉCIFICATION D'AUDIT DU SERVEUR (Transact-SQL)
- ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
- SUPPRIMER LA SPÉCIFICATION D'AUDIT DU SERVEUR (Transact-SQL)
- CRÉER UNE SPÉCIFICATION D'AUDIT DE BASE DE DONNÉES (Transact-SQL)
- ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
- SUPPRIMER LA SPÉCIFICATION D'AUDIT DE LA BASE DE DONNÉES (Transact-SQL)
- MODIFIER L'AUTORISATION (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- Spécifications d'audit de base de données (sys.database_audit_specifications) (Transact-SQL)
- sys.détails_de_spécification_d'audit_de_base_de_données (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)