
TiDB Audit Log

Introduction
Dans le monde actuel axé sur les données, il est crucial de maintenir un journal d’audit complet des activités de la base de données pour garantir la sécurité, la conformité et fournir des informations opérationnelles. TiDB, une puissante plateforme de base de données SQL distribuée, offre des capacités d’audit natives qui peuvent être renforcées avec des solutions tierces sophistiquées. Alors que les organisations font face à une pression croissante pour protéger leurs actifs de données et se conformer aux réglementations, la mise en œuvre d’un audit robuste des bases de données devient essentiel.
D’après les tendances récentes en matière de sécurité, les incidents liés à la sécurité des bases de données continuent d’augmenter, rendant indispensable la tenue de journaux d’audit détaillés de toutes les activités de la base de données. Un système de journalisation d’audit adéquat aide les organisations à suivre les activités des utilisateurs, surveiller l’accès aux données sensibles et garantir la conformité aux différentes exigences réglementaires. Je fournirai une vue d’ensemble complète avec des exemples de requêtes et j’incorporerai les liens directement dans le texte.
Comprendre le TiDB Audit Log
TiDB offre des options de journalisation flexibles pour le suivi et le dépannage. Vous pouvez ajuster ces paramètres dynamiquement à l’aide de commandes SQL :
Interrogation des paramètres du journal
Pour récupérer les paramètres liés aux journaux actuels dans TiDB, vous pouvez utiliser les requêtes suivantes :
SHOW VARIABLES LIKE 'tidb%log%';
Cela affichera les variables liées à la journalisation dans TiDB.
Alternativement, vous pouvez interroger la table INFORMATION_SCHEMA.CLUSTER_CONFIG
pour obtenir des informations plus détaillées sur la configuration :
SELECT *
FROM INFORMATION_SCHEMA.CLUSTER_CONFIG
WHERE `KEY` LIKE '%log%';
Exemple de configuration du journal :

Modification des paramètres du journal
Certains paramètres de journal se modifient dynamiquement via des requêtes SET GLOBAL
, tandis que d’autres nécessitent des modifications dans le fichier config.toml
. Voici un aperçu :
Changements dynamiques (via
SET GLOBAL
) :
Certains paramètres peuvent être ajustés à la volée, tels que :SET GLOBAL tidb_slow_log_threshold = 300; -- Modifier le seuil du log des requêtes lentes SET GLOBAL tidb_query_log_max_len = 4096; -- Ajuster la longueur maximale de la requête
Changements dans le fichier
config.toml
:
Certains paramètres, tels quelog.format
(pour le format de sortie du log) etlog.level
(pour la verbosité du log), doivent être modifiés directement dans le fichierconfig.toml
. Ces paramètres ne peuvent pas être modifiés dynamiquement via des requêtes SQL et nécessitent un redémarrage de l’instance TiDB pour prendre effet.
1. Journalisation des requêtes lentes
Activation, définition du seuil et journalisation des plans d’exécution :
SET GLOBAL tidb_enable_slow_log = 1;
SET GLOBAL tidb_slow_log_threshold = 500; -- en millisecondes
SET GLOBAL tidb_record_plan_in_slow_log = 1;
- Seuil par défaut :
300 ms
.
2. Journalisation des requêtes coûteuses
Suivi des requêtes gourmandes en ressources basé sur le nombre de lignes :
SET GLOBAL tidb_expensive_query_time_threshold = 300;
- Les requêtes dépassant le seuil défini (en ms) seront journalisées.
3. Gestion des fichiers journaux
Configurer le stockage et la conservation des logs dans config.toml
:
[log.file]
filename = "/var/log/tidb/tidb.log"
max-size = 300 # MB avant rotation
max-days = 7 # Période de rétention
max-backups = 5 # Nombre de sauvegardes
compression = "gzip"
Pour plus de détails, voir la Documentation TiDB.
Interroger le TiDB Audit Log
Pour consulter les requêtes récentes, vous pouvez interroger la table INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY
. Cette table capture les requêtes lentes sur l’ensemble du cluster TiDB.
Exemple : Récupérer les 50 dernières requêtes exécutées
SELECT
Time,
Query,
Query_time
FROM INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY
ORDER BY Time DESC
LIMIT 50;
Cette requête :
- Récupère les 50 dernières requêtes exécutées dans le cluster.
- Inclut le temps d’exécution (
Query_time
) pour une analyse des performances. - Est utile pour identifier les requêtes longues ou gourmandes en ressources.
Activation des logs généraux pour un historique complet des requêtes
Si vous avez besoin d’un historique complet des requêtes, activez la journalisation générale et récupérez les logs en utilisant INFORMATION_SCHEMA.CLUSTER_LOG
.
Étape 1 : Activer la journalisation générale :
SET GLOBAL tidb_general_log = 1;
(Ce paramètre commence à enregistrer toutes les requêtes exécutées dans le log général)
Étape 2 : Interroger les logs généraux dans une plage horaire :
Vous pouvez utiliser la requête suivante pour récupérer les 50 dernières entrées du log général dans une plage horaire spécifiée. Cette requête filtre également en fonction du contenu du message du log.
SELECT * FROM information_schema.cluster_log
WHERE time > '2024-02-18 00:00:00'
AND time < '2025-02-18 23:59:59'
AND message LIKE '%'; -- restreindre les résultats
ORDER BY Time DESC
LIMIT 50;
Cette requête récupérera les 50 entrées de log les plus récentes correspondant à la plage horaire spécifiée. La condition message LIKE '%'
constitue une recherche avec un caractère générique, ce qui signifie qu’elle renvoie tous les logs. Vous pouvez remplacer la condition LIKE
par des mots-clés plus spécifiques (p. ex., '%select%'
, 'insert%'
, etc.) afin de filtrer par type de log ou contenu de requête.
Exemple de résultat de requête :

DataSunrise : Capacités étendues pour TiDB Audit Log, sécurité et conformité
DataSunrise propose une solution d’audit de base de données complète qui renforce considérablement les capacités natives de TiDB avec des fonctionnalités avancées et un contrôle granulaire.
Surveillance et analyse en temps réel
DataSunrise met en œuvre une surveillance continue des activités de la base de données qui capture et analyse en temps réel toutes les opérations de la base de données. La plateforme fournit des informations détaillées sur :
- L’exécution des requêtes SQL
- Les activités des sessions utilisateurs
- Les modifications de schéma
- Les modes d’accès aux données

Gestion avancée des pistes d’audit
La solution maintient des pistes d’audit complètes avec des capacités de filtrage et de stockage sophistiquées. Les administrateurs peuvent facilement rechercher, analyser et exporter les données d’audit pour des rapports de conformité ou des enquêtes de sécurité.

Rapports de conformité automatisés
DataSunrise facilite la conformité avec diverses réglementations grâce à des rapports de conformité automatisés. La plateforme inclut des modèles préconfigurés pour les cadres de conformité courants et permet une personnalisation pour des exigences spécifiques.

Fonctionnalités clés
- Protection continue des données avec surveillance et alertes en temps réel
- Contrôles de sécurité complets avec gestion des accès basée sur les rôles
- Analyse comportementale pour détecter les activités anormales
- Notifications en temps réel pour les événements de sécurité
- Génération automatisée de rapports pour répondre aux besoins de conformité et de sécurité
Conclusion
Bien que TiDB offre des capacités essentielles de journalisation d’audit natives, les organisations ayant des exigences avancées en matière de sécurité et de conformité peuvent grandement bénéficier de la solution d’audit complète de DataSunrise. La combinaison de la plateforme robuste de TiDB et des capacités d’audit sophistiquées de DataSunrise crée un environnement puissant pour maintenir la sécurité, assurer la conformité et obtenir des informations opérationnelles.
Prêt à renforcer la sécurité et la conformité de votre base de données TiDB ? Planifiez une démonstration dès aujourd’hui pour découvrir comment DataSunrise peut transformer vos capacités d’audit de base de données.