TiDB Audit Log
TiDB Audit Log
Introduction
Dans le monde axé sur les données d’aujourd’hui, maintenir un journal d’audit complet des activités de la base de données est crucial pour la sécurité, la conformité et les aperçus opérationnels. TiDB, une puissante plate-forme de base de données SQL distribuée, offre des capacités d’audit natives qui peuvent être améliorées avec des solutions tierces sophistiquées. Alors que les organisations doivent de plus en plus protéger leurs actifs de données et se conformer aux réglementations, la mise en œuvre d’une surveillance robuste des bases de données devient essentielle.
Selon les tendances récentes en matière de sécurité, les incidents de sécurité liés aux bases de données continuent d’augmenter, ce qui rend 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 approprié aide les organisations à suivre les activités des utilisateurs, à surveiller l’accès aux données sensibles et à garantir la conformité aux diverses exigences réglementaires. Je vais fournir un aperçu complet avec des exemples de requêtes et intégrer des liens directement dans le texte.
Comprendre TiDB Audit Log
TiDB offre des options de journalisation flexibles pour la surveillance et le dépannage. Vous pouvez ajuster ces paramètres dynamiquement en utilisant des commandes SQL :
Interroger les Paramètres de Journaux
Pour récupérer les paramètres actuels liés aux journaux 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 de configuration plus détaillées :
SELECT * FROM INFORMATION_SCHEMA.CLUSTER_CONFIG WHERE `KEY` LIKE '%log%';
Exemple de Configuration des Journaux :
Modifier les Paramètres de Journaux
Certaines configurations des journaux dans TiDB peuvent être modifiées dynamiquement en utilisant des requêtes SET GLOBAL
, tandis que d’autres nécessitent des changements dans le fichier config.toml
. Voici un récapitulatif :
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 journal 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
:
Certaines configurations, telles quelog.format
(pour le format de sortie des journaux) etlog.level
(pour la verbosité des journaux), doivent être modifiées 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
Activer, définir le seuil et enregistrer les 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
Suivre les requêtes à haute ressource en fonction du nombre de lignes :
SET GLOBAL tidb_expensive_query_time_threshold = 300;
- Les requêtes dépassant le seuil défini (en ms) seront enregistrées.
3. Gestion des Fichiers de Journaux
Configurer le stockage et la rétention des journaux 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 Journal d’Audit TiDB
Pour consulter les requêtes récentes, vous pouvez interroger la table INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY
. Cette table capture les requêtes lentes dans 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 l’analyse des performances. - Utile pour identifier les requêtes longues ou gourmandes en ressources.
Activer les Journaux 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 journaux 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 journal général)
Étape 2 : Interroger les Journaux Généraux dans une Plage de Temps Spécifiée :
Vous pouvez utiliser la requête suivante pour récupérer les 50 dernières entrées de journaux généraux dans une plage de temps spécifiée. Cette requête filtre également en fonction du contenu du message du journal.
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 '%'; -- réduire les résultats
ORDER BY Time DESC
LIMIT 50;
Cette requête récupérera les 50 entrées de journal les plus récentes correspondant à la plage de temps spécifiée. La condition message LIKE '%'
est une recherche de caractère générique, ce qui signifie qu’elle renvoie tous les journaux. Vous pouvez remplacer la condition LIKE
par des mots-clés plus spécifiques (par exemple, '%select%'
, 'insert%'
, etc.) pour filtrer par type de journal ou contenu de la requête.
Exemple de Sortie de la Requête :
DataSunrise : Capacités Étendues pour la Sécurité et la Conformité des Journaux d’Audit TiDB
DataSunrise offre une solution complète de audit de base de données qui améliore 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 implémente une surveillance continue des activités de la base de données qui capture et analyse toutes les opérations de la base de données en temps réel. La plateforme offre des aperçus détaillés sur :
- Exécution des requêtes SQL
- Activités des sessions utilisateurs
- Modifications de schéma
- Modèles d’accès aux données
Gestion Avancée des Pistes de Vérification
La solution maintient des pistes de vérification complètes avec des capacités sophistiquées de filtrage et de stockage. Les administrateurs peuvent facilement rechercher, analyser et exporter les données d’audit pour les rapports de conformité ou les enquêtes de sécurité.
Rapports de Conformité Automatisés
DataSunrise simplifie la conformité aux diverses réglementations par le biais de rapports de conformité automatisés. La plateforme inclut des modèles préconfigurés pour les cadres de conformité courants et permet de les personnaliser en fonction des exigences spécifiques.
Caractéristiques Clés
- Protection Continue des Données avec surveillance et alertes en temps réel
- Contrôles de Sécurité Complet avec gestion des accès basée sur les rôles
- Analyse Comportementale pour détecter les activités anormales