Journaux d’audit SQL dans Fabric Data Warehouse

S’applique à :✅ Point de terminaison d'analyses SQL et entrepôt de données dans Microsoft Fabric

L’audit dans Fabric Data Warehouse offre des fonctionnalités de sécurité et de conformité renforcées grâce au suivi et à l’enregistrement des événements de base de données.

En utilisant des journaux d’audit SQL, vous pouvez surveiller les activités de la base de données, détecter les menaces potentielles à la sécurité et répondre aux exigences de conformité en maintenant une trace d’audit des actions clés, telles que :

  • Tentatives d’authentification et modifications du contrôle d’accès
  • Opérations d’accès et de modification des données
  • Modifications de schéma et activités administratives
  • Modifications d’autorisation et configurations de sécurité

Important

Par défaut, les journaux d’audit SQL sont OFF. Les utilisateurs disposant des autorisations Requêtes d’audit doivent l’activer afin de capturer les logs.

Pour commencer, passez en revue les étapes de configuration des journaux d’audit SQL dans Fabric Data Warehouse.

Stockage

Les journaux d’audit SQL sont chiffrés au repos et stockés dans OneLake.

Pour Fabric Data Warehouse, les journaux d’audit sont enregistrés dans .XEL des fichiers stockés dans le dossier Audit de l’entrepôt dans OneLake.

Les utilisateurs disposant des rôles suivants peuvent accéder au dossier d’audit :

  • Administrateurs de l’espace de travail
  • Membres de l’espace de travail
  • Espace de travail Contributeurs
  • Utilisateurs de l’espace de travail avec l'autorisation 'Lire tout'

Ces utilisateurs peuvent :

  • Parcourir le dossier Audit
  • Afficher les fichiers d’audit .XEL générés par l’audit SQL
  • Copier les fichiers pour l’analyse hors connexion
  • Ouvrez les fichiers avec des outils tels que SQL Server Management Studio (SSMS)

Vous pouvez également interroger des journaux d’audit avec T-SQL via sys.fn_get_audit_file_v2.

Pour obtenir des instructions, consultez Comment configurer les journaux d’audit SQL dans Fabric Data Warehouse.

Conseil / Astuce

La configuration des journaux d’audit dans Microsoft Fabric Data Warehouse peut augmenter les coûts de stockage en fonction des groupes d’actions et des événements enregistrés. Activez uniquement les événements requis pour éviter les coûts de stockage inutiles.

Performance

La fonctionnalité des journaux d’audit SQL est optimisée pour la disponibilité et la performance de la base de données auditée. Pendant les périodes d’activité très élevée ou de charge réseau élevée, la fonctionnalité d’audit peut permettre la poursuite des transactions sans enregistrer tous les événements marqués pour l’audit.

Autorisations

Les utilisateurs doivent disposer de l’autorisation Requêtes d’audit (Audit) pour configurer et interroger les journaux d’audit.

  • Par défaut, les administrateurs espace de travail disposent des autorisations requêtes d’audit pour tous les éléments de l’espace de travail.
  • Les administrateurs peuvent accorder des permissions d’interrogation d’audit sur des éléments à d’autres utilisateurs via la boîte de dialogue de partage.

Les administrateurs d’espace de travail peuvent accorder des permissions de requêtes d’audit à un élément en utilisant l’option de menu partagé du portail Fabric. Pour vérifier si un utilisateur a des autorisations requêtes Audit, vérifiez les paramètres de Gérer les autorisations.

  1. Dans votre élément Warehouse, sélectionnez le bouton Partager .

    Ou, dans le portail Fabric, dans votre espace de travail. Sélectionnez le ... menu contextuel de votre élément Warehouse, sélectionnez Gérer les autorisations.

  2. Dans le volet Accorder des accès, accorder des permissions à un utilisateur.

    Capture d’écran montrant où sélectionner l’autorisation Requêtes d’audit (Audit) dans le menu Partager de l’élément.

Auditer les journaux de requête en utilisant les permissions T-SQL

Accordez aux utilisateurs la VIEW DATABASE SECURITY AUDIT permission pour qu’ils puissent interroger les journaux d’audit en utilisant les permissions T-SQL, même s’ils n’ont pas de fonctions administratives d’espace de travail.

Lorsque vous accordez l’autorisation suivante, un utilisateur peut interroger les journaux d’audit en utilisant la sys.fn_get_audit_file_v2 fonction suivante :

GRANT VIEW DATABASE SECURITY AUDIT TO [user];

Conseil / Astuce

Cette VIEW DATABASE SECURITY AUDIT permission ne permet qu’à interroger les journaux d’audit. Il n’accorde pas l’accès aux fichiers ni la permission de modifier la configuration de l’audit.

Groupes d’actions et actions d’audit au niveau de la base de données

Pour rendre la configuration du journal d’audit plus accessible, le portail Fabric utilise des noms conviviaux pour aider les administrateurs non-SQL et d’autres utilisateurs à comprendre facilement les événements Fabric Data Warehouse capturés.

Fabric mappe ces noms conviviaux aux groupes d’actions d’audit SQL sous-jacents. Utilisez la table suivante comme référence.

Nom convivial Nom du groupe d’actions Descriptif
Accès à l’objet DATABASE_OBJECT_ACCESS_GROUP Enregistre l’accès aux objets de base de données tels que les types de messages, les assemblys ou les contrats.
L’objet a été modifié DATABASE_OBJECT_CHANGE_GROUP Consigner les opérations CREATE, ALTER, ou DROP sur des objets de base de données.
Propriétaire de l’objet modifié DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP Enregistre les modifications de propriété des objets de base de données.
L’autorisation d’objet a été modifiée DATABASE_OBJECT_PERMISSION_CHANGE_GROUP Enregistre les actions GRANT, REVOKE, ou DENY sur des objets de base de données.
L’utilisateur a été modifié DATABASE_PRINCIPAL_CHANGE_GROUP Journalise la création, modification ou suppression de principaux de base de données (utilisateurs, rôles).
L’utilisateur a été usurpé d'identité DATABASE_PRINCIPAL_IMPERSONATION_GROUP Journalise les opérations d’emprunt d’identité (telles que EXECUTE AS).
Le membre de rôle a été modifié DATABASE_ROLE_MEMBER_CHANGE_GROUP Enregistre l’ajout ou la suppression de connexions à partir d’un rôle de base de données.
L’utilisateur n’a pas pu se connecter FAILED_DATABASE_AUTHENTICATION_GROUP Consigne les tentatives d’authentification échouées dans la base de données.
L’autorisation de schéma a été utilisée SCHEMA_OBJECT_ACCESS_GROUP Journalise l’accès aux objets de schéma.
Le schéma a été modifié SCHEMA_OBJECT_CHANGE_GROUP Journalise les opérations CREATE, ALTER, ou DROP sur les schémas.
L’autorisation de l’objet de schéma a été vérifiée SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP Enregistre les modifications apportées à la propriété de l’objet de schéma.
L’autorisation de l’objet de schéma a été modifiée SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP Journalise les actions GRANT, REVOKE ou DENY sur les objets de schéma.
Batch a été terminé BATCH_COMPLETED_GROUP Cet événement se déclenche chaque fois que l’exécution d’une opération de gestion de transaction, de texte de lot ou de procédure stockée se termine.
Le batch a été lancé BATCH_STARTED_GROUP Cet événement se déclenche chaque fois que l'exécution de texte par lot, de procédure stockée ou d'opérations de gestion de transactions commence.
L’audit a été modifié AUDIT_CHANGE_GROUP Cet événement est déclenché chaque fois qu’un audit est créé, modifié ou supprimé.
Utilisateur déconnecté DATABASE_LOGOUT_GROUP Cet événement est déclenché lorsqu’un utilisateur de base de données se déconnecte d’une base de données.
Utilisateur connecté SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP Indique qu’un principal s’est connecté avec succès à une base de données.

Actions d'audit de niveau base de données

En plus des groupes d’actions, vous pouvez configurer des actions d’audit individuelles pour consigner des événements de base de données spécifiques :

Action d’audit Descriptif
SELECT Enregistre les instructions SELECT sur un objet spécifié.
INSERT Journalise INSERT opérations sur un objet spécifié.
UPDATE Journalise UPDATE opérations sur un objet spécifié.
DELETE Journalise DELETE opérations sur un objet spécifié.
EXECUTE Enregistre l’exécution de procédures stockées ou de fonctions.
RECEIVE Journalise les opérations RECEIVE sur les files d’attente Service Broker.
REFERENCES Journalise les vérifications d’autorisation impliquant des contraintes de clé étrangère.

Réduire le bruit d’audit grâce au filtrage des prédicats

Pour filtrer les événements capturés, utilisez le filtre optionnel d’expression des prédicats .

Utilisez le filtrage des prédicats pour réduire le bruit lié aux activités répétitives attendues, telles que les identités d’automatisation, les responsables de service ou les tâches planifiées, sans avoir à désactiver les groupes d’actions dont votre organisation a besoin pour la conformité ou l’enquête.

  • Ce n’est que lorsqu’un événement correspond au prédicat configuré que l’événement du journal d’audit SQL pour cette action est généré.
    • Le filtrage a lieu avant que l’événement ne soit écrit, donc les événements exclus ne sont pas disponibles ultérieurement pour une investigation rétroactive. Considérez les exclusions de prédicats comme une décision délibérée de politique d’audit, et révisez périodiquement le prédicat configuré au fur et à mesure que la propriété, les autorisations et les profils de risque changent.
  • Le filtrage des prédicats n’évalue que les événements déjà configurés pour être capturés par un groupe d’actions ou une action d’audit activée.
    • Si le groupe d’actions sous-jacent n’est pas activé, aucun événement n’est généré pour que le prédicat puisse l’évaluer, et le filtre n’a aucun effet. Par exemple, pour filtrer SELECT les instructions utilisant un prédicat sur le statement champ, vous devez d’abord activer le groupe d’actions Batch Was Completed (BATCH_COMPLETED_GROUP).

Vous pouvez configurer une expression de prédicat en utilisant le portail Fabric ou l’API REST. Pour les étapes, voir Configurer une expression de prédicat.

Syntaxe des expressions des prédicats

Les expressions de prédicat utilisent la même syntaxe que la <predicate_expression> clause de CREATE SERVER AUDIT (Transact-SQL), sans le WHERE mot-clé :

<predicate_expression> ::=
    { [ NOT ] <predicate_factor>
    [ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }

<predicate_factor> ::=
    event_field_name { = | <> | != | > | >= | < | <= | LIKE }
    { number | 'string' }
  • event_field_name correspond à une colonne retournée par sys.fn_get_audit_file (Transact-SQL). Vous pouvez utiliser toutes les colonnes documentées, sauf file_name, audit_file_offset, et event_time.
  • action_id et class_type sont des chaînes, mais on ne peut les comparer qu’aux valeurs numériques d’un prédicat.
  • Les comparaisons de chaînes n’effectuent pas la conversion implicite des types.
  • La longueur maximale d’expression est de 3 000 caractères.
  • Une chaîne vide signifie qu’aucun prédicat n’est appliqué.

Par exemple, pour exclure une activité générée par un principal de service ou une identité d’automatisation connue, filtrez sur server_principal_name. Pour exclure les énoncés répétitifs SELECT , filtrez sur le statement champ : NOT statement LIKE 'SELECT %'.

Limites

  • Votre espace de travail par défaut ne prend pas en charge les journaux d’audit SQL.
  • Les journaux d’audit SQL ne sont pas pris en charge pour les instantanés d’entrepôt.

Important

Les journaux d’audit sont stockés dans l’élément Warehouse dans OneLake. Si vous supprimez l’entrepôt, vous supprimez également les fichiers journaux d’audit associés et ne pouvez plus y accéder.
Pour conserver les journaux d’audit à des fins de conformité ou d’investigation, copiez les .XEL fichiers vers un autre emplacement de stockage avant de supprimer l’entrepôt.

Limitations des points de terminaison d'analyse SQL

Les limitations suivantes s’appliquent lors de l’audit des points de terminaison d’analytique SQL :

  • Les opérations DML ne sont pas capturées. L’audit n’enregistre pas les opérations telles que INSERT, UPDATE, DELETEet MERGE parce que la manipulation des données pour les tables Lakehouse se produit par le biais du runtime Lakehouse plutôt que par le biais du point de terminaison d’analyse SQL.
  • L’accès direct au dossier d’audit n’est actuellement pas pris en charge. Les utilisateurs ne peuvent pas parcourir ou télécharger les fichiers d’audit sous-jacents .XEL à partir du dossier d’audit Lakehouse.

Vous pouvez toujours interroger des événements d’audit pour les terminaux d’analyse SQL en utilisant la fonction sys.fn_get_audit_file_v2T-SQL.

Étape suivante