Format des journaux d’audit SQL Database
S’applique à : Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
L’audit Azure SQL Database permet de suivre les événements de base de données et de les écrire dans un journal d’audit dans votre compte de stockage Azure, ou de les envoyer à Event Hub ou Log Analytics à des fins de traitement et d’analyse en aval.
Conventions d’affectation de noms
Audit d’objets blob
Les journaux d’audit stockés dans Stockage Blob Azure le sont dans un conteneur nommé sqldbauditlogs
dans le compte Stockage Azure. La hiérarchie des répertoires au sein du conteneur prend la forme <ServerName>/<DatabaseName>/<AuditName>/<Date>/
. Le format du nom de fichier des objets blob est <CreationTime>_<FileNumberInSession>.xel
, où CreationTime
correspond au format UTC hh_mm_ss_ms
et FileNumberInSession
à un index en cours d’exécution au cas où les journaux de la session s’étendent sur plusieurs fichiers d’objets blob.
Par exemple, pour la base de données Database1
sur Server1
, un chemin valide possible est le suivant :
Server1/Database1/SqlDbAuditing_ServerAudit_NoRetention/2019-02-03/12_23_30_794_0.xel
Les journaux d’audit de réplicas en lecture seule sont stockés dans le même conteneur. La hiérarchie des répertoires au sein du conteneur prend la forme <ServerName>/<DatabaseName>/<AuditName>/<Date>/RO/
. Le nom de fichier des objets blob partage le même format. Les journaux d’audit de réplicas en lecture seule sont stockés dans le même conteneur.
Event Hub
Les événements d’audit sont écrits dans l’espace de noms et le hub d’événements définis pendant la configuration de l’audit. Ils sont capturés dans le corps des événements Apache Avro et stockés au format JSON avec encodage UTF-8. Pour lire les journaux d’audit, vous pouvez utiliser les outils Avro ou des outils similaires qui traitent ce format.
Log Analytics
Les événements d’audit sont écrits dans l’espace de travail Log Analytics défini lors de la configuration de l’audit, dans la table AzureDiagnostics
avec la catégorie SQLSecurityAuditEvents
et dans la table avec la catégorie DevOpsOperationsAudit
pour les opérations de Support Microsoft. Pour plus d’informations sur le langage et les commandes de recherche Log Analytics, consultez Référence sur les recherches Log Analytics.
Champs de journal d’audit
Nom (objet blob) | Nom (Event Hubs/Log Analytics) | Description | Type d’objet blob | Type Event Hubs/Log Analytics |
---|---|---|---|---|
action_id | action_id_s | ID de l’action | varchar(4) | string |
action_name | action_name_s | Nom de l’action | N/A | string |
additional_information | additional_information_s | Éventuelles informations supplémentaires sur l’événement, stockées au format XML | nvarchar(4000) | string |
affected_rows | affected_rows_d | Nombre de lignes affectées par la requête | bigint | int |
application_name | application_name_s | Nom de l’application cliente | nvarchar(128) | string |
audit_schema_version | audit_schema_version_d | Toujours 1 | int | int |
class_type | class_type_s | Type d’entité pouvant être auditée sur laquelle se produit l’audit | varchar(2) | string |
class_type_desc | class_type_description_s | Description de l’entité pouvant être auditée sur laquelle se produit l’audit | N/A | string |
client_ip | client_ip_s | Adresse IP source de l’application cliente | nvarchar(128) | string |
connection_id | N/A | ID de la connexion dans le serveur | GUID | N/A |
data_sensitivity_information | data_sensitivity_information_s | Types des informations et étiquettes de sensibilité renvoyées par la requête auditée, en fonction des colonnes classifié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) | string |
database_name | database_name_s | Contexte de base de données dans lequel l’action s’est produite | sysname | string |
database_principal_id | database_principal_id_d | ID du contexte d’utilisateur de base de données dans lequel l’action est effectuée | int | int |
database_principal_name | database_principal_name_s | Nom du contexte d’utilisateur de base de données dans lequel l’action est effectuée | sysname | string |
duration_milliseconds | duration_milliseconds_d | Durée d’exécution de la requête en millisecondes | bigint | int |
event_time | event_time_t | Date et heure du déclenchement de l’action pouvant être auditée | datetime2 | DATETIME |
host_name | N/A | Nom d’hôte du client | string | N/A |
is_column_permission | is_column_permission_s | Indicateur précisant s’il s’agit d’une autorisation au niveau de la colonne. 1 = true, 0 = false | bit | string |
N/A | is_server_level_audit_s | Indicateur précisant si cet audit se situe au niveau du serveur | N/A | string |
object_ id | object_id_d | ID de l’entité sur laquelle l’audit s’est produit. Sont inclus les objets de serveur, les bases de données, les objets de base de données et les objets de schéma. 0 si l’entité est le serveur lui-même ou si l’audit n’est pas effectué au niveau d’un objet | int | int |
object_name | object_name_s | Nom de l’entité sur laquelle l’audit s’est produit. Sont inclus les objets de serveur, les bases de données, les objets de base de données et les objets de schéma. 0 si l’entité est le serveur lui-même ou si l’audit n’est pas effectué au niveau d’un objet | sysname | string |
obo_middle_tier_app_id | obo_middle_tier_app_id_s | ID d’application de l’application de niveau intermédiaire qui s’est connectée à SQL Database à l’aide de l’accès OBO. | varchar(120) | string |
permission_bitmask | permission_bitmask_s | Si applicable, présente les autorisations qui ont été octroyées, refusées ou révoquées | varbinary(16) | string |
response_rows | response_rows_d | Nombre de lignes renvoyées dans le jeu de résultats | bigint | int |
schema_name | schema_name_s | Contexte du schéma dans lequel l’action s’est produite. NULL pour les audits qui se produisent en dehors d’un schéma | sysname | string |
N/A | securable_class_type_s | Objet sécurisable mappé au class_type audité | N/A | string |
sequence_group_id | sequence_group_id_g | Identificateur unique | varbinary | GUID |
sequence_number | sequence_number_d | 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. Notez que l’audit Azure SQL Database et Azure Synapse stockent 4 000 caractères de données pour des champs de caractères dans un enregistrement d’audit. Quand ils contiennent plus de 4 000 caractères, toutes les données au-delà des 4 000 premiers caractères sont tronquées | int | int |
server_instance_name | server_instance_name_s | Nom de l’instance du serveur où l’audit s’est produit | sysname | string |
server_principal_id | server_principal_id_d | ID du contexte de connexion dans lequel l’action est effectuée | int | int |
server_principal_name | server_principal_name_s | Connexion actuelle | sysname | string |
server_principal_sid | server_principal_sid_s | SID de la connexion actuelle | varbinary | string |
session_id | session_id_d | ID de la session sur laquelle l’événement s’est produit | SMALLINT | int |
session_server_principal_name | session_server_principal_name_s | Principal de serveur pour la session | sysname | string |
statement | statement_s | Instruction T-SQL qui a été exécutée (le cas échéant) | nvarchar(4000) | string |
succeeded | succeeded_s | Indique si l’action qui a déclenché l’événement a réussi. Pour les événements autres que la connexion et le traitement par lot, ce champ indique uniquement si la vérification des autorisations a réussi ou échoué, et non l’opération. 1 = succès, 0 = échec | bit | string |
target_database_principal_id | target_database_principal_id_d | Principal de base de données sur lequel l’opération GRANT/DENY/REVOKE est effectuée. 0 si non applicable | int | int |
target_database_principal_name | target_database_principal_name_s | Utilisateur cible de l’action. NULL si non applicable | string | string |
target_server_principal_id | target_server_principal_id_d | Principal de serveur sur lequel l’opération GRANT/DENY/REVOKE est effectuée. Retourne 0 si non applicable | int | int |
target_server_principal_name | target_server_principal_name_s | Connexion cible de l’action. NULL si non applicable | sysname | string |
target_server_principal_sid | target_server_principal_sid_s | SID de la connexion cible. NULL si non applicable | varbinary | string |
transaction_id | transaction_id_d | SQL Server uniquement (à partir de la version 2016) - 0 pour Azure SQL Database | bigint | int |
user_defined_event_id | user_defined_event_id_d | ID d’événement défini par l’utilisateur transmis en tant qu’argument à sp_audit_write. NULL pour les événements système (valeur par défaut) et différent de zéro pour un événement défini par l’utilisateur. Pour plus d’informations, consultez sp_audit_write (Transact-SQL). | SMALLINT | int |
user_defined_information | user_defined_information_s | Informations définies par l’utilisateur transmises en tant qu’argument à sp_audit_write. NULL pour les événements système (valeur par défaut) et différent de zéro pour un événement défini par l’utilisateur. Pour plus d’informations, consultez sp_audit_write (Transact-SQL). | nvarchar(4000) | string |
Étapes suivantes
Découvrez-en plus sur l’audit Azure SQL Database.