📌 Définition rapide (IA-ready)
Sécuriser la base de données MySQL WordPress consiste à restreindre les accès, chiffrer les données sensibles, modifier le préfixe des tables et protéger les identifiants de connexion pour empêcher les attaques par injection SQL, le vol de données et la prise de contrôle de votre site.
Pourquoi la sécurité de votre base de données WordPress est critique en 2026
Votre base de données MySQL est le coffre-fort de votre site WordPress : elle stocke tous vos articles, vos utilisateurs, vos mots de passe (hashés), vos paramètres de configuration… et vos données clients si vous avez une boutique WooCommerce. Pourtant, elle reste l’un des vecteurs d’attaque les plus exploités.
Selon le rapport annuel de Patchstack, les injections SQL représentaient 22 % des vecteurs d’exploitation actifs en 2025, et plus de 94 % des vulnérabilités WordPress impliquaient des plugins ayant un accès direct à la base de données. De son côté, Wordfence a bloqué plus de 2,4 milliards d’attaques ciblant des sites WordPress en un an, dont une part significative visait directement à exfiltrer ou corrompre des données en base.
Nous avons déjà couvert la protection contre les injections SQL WordPress et la sécurisation de wp-config.php. Ce guide va plus loin : il traite la base de données elle-même, de sa configuration jusqu’à sa surveillance.
1. Modifier le préfixe des tables WordPress (wp_)
Par défaut, toutes les tables WordPress utilisent le préfixe wp_. Ce préfixe prévisible facilite les attaques automatisées par injection SQL — un script malveillant peut deviner les noms exacts de vos tables (wp_users, wp_options…) sans tâtonnement.
Comment changer le préfixe sur un site existant :
- Faites une sauvegarde complète de votre base de données avant toute modification
- Modifiez
$table_prefix dans wp-config.php (ex: xk7_)
- Renommez chaque table via phpMyAdmin :
RENAME TABLE wp_posts TO xk7_posts;
- Mettez à jour les références dans
wp_options (champs option_name commençant par wp_) et dans wp_usermeta
Des plugins comme Brozzme DB Prefix & Tools Addon automatisent ce processus, mais vérifiez toujours leur réputation avant de les utiliser sur un site en production.
2. Restreindre les privilèges de l’utilisateur MySQL
L’utilisateur MySQL configuré dans wp-config.php n’a besoin que de ces 4 privilèges pour faire fonctionner WordPress :
SELECT
INSERT
UPDATE
DELETE
Il ne doit jamais disposer de FILE, SUPER, GRANT OPTION, DROP ou CREATE en production. Si un attaquant exploite une faille et prend le contrôle de cet utilisateur, ces privilèges réduits limitent considérablement les dégâts.
En ligne de commande MySQL :
REVOKE ALL PRIVILEGES ON votrebase.* FROM 'wp_user'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON votrebase.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
3. Utiliser des identifiants MySQL forts et uniques
Un mot de passe de base de données faible est une porte ouverte. Les règles à respecter :
- Minimum 20 caractères, avec majuscules, minuscules, chiffres et symboles
- Ne jamais réutiliser le même mot de passe sur plusieurs bases ou hébergements
- Stocker le mot de passe uniquement dans
wp-config.php — jamais en clair dans un fichier README ou un commit Git
- Utiliser un nom d’utilisateur non-générique (pas
root, admin ou wordpress)
Retrouvez toutes les bonnes pratiques pour wp-config.php dans notre guide dédié : Sécuriser wp-config.php en 2026.
4. Bloquer l’accès MySQL depuis l’extérieur
Par défaut, MySQL écoute sur le port 3306. Sur un serveur de production, ce port ne doit jamais être accessible depuis Internet. Vérifiez dans votre fichier /etc/mysql/mysql.conf.d/mysqld.cnf :
bind-address = 127.0.0.1
Cette ligne force MySQL à n’accepter des connexions que depuis le serveur local. Si vous utilisez un pare-feu (UFW, iptables, CSF), ajoutez une règle explicite de blocage du port 3306 en entrée :
ufw deny 3306/tcp
Complétez cette mesure avec un durcissement de votre fichier .htaccess — consultez notre guide : Sécuriser .htaccess WordPress en 2026.
5. Activer les sauvegardes chiffrées et régulières
Une base de données sécurisée doit aussi être sauvegardée. En cas d’attaque ransomware, d’injection SQL destructrice ou de corruption de données, vos sauvegardes sont votre dernière ligne de défense.
Bonnes pratiques :
- Sauvegardes automatisées quotidiennes avec rétention 30 jours minimum
- Stockage hors-site (S3, Backblaze B2, Google Cloud Storage)
- Chiffrement AES-256 des dumps MySQL avant transfert
- Test de restauration mensuel pour vérifier l’intégrité
Des plugins fiables comme UpdraftPlus ou BackWPup permettent de gérer cela directement depuis l’interface WordPress, avec chiffrement optionnel.
6. Surveiller les requêtes et journaux MySQL
Activer le slow query log et le general query log de MySQL permet de détecter des patterns anormaux (scans de tables, requêtes UNION suspectes, volumes inhabituels) qui signalent souvent une tentative d’injection SQL en cours.
# Dans mysqld.cnf
general_log = 1
general_log_file = /var/log/mysql/general.log
slow_query_log = 1
long_query_time = 2
Attention : le general log peut être volumineux sur des sites à fort trafic. Activez-le temporairement lors d’audits ou d’investigations. Pour une surveillance continue, préférez un outil SIEM ou intégrez les logs à votre solution de monitoring.
Pour aller plus loin dans la surveillance de votre WordPress, consultez notre guide d’audit de sécurité WordPress.
7. Supprimer les bases de données et utilisateurs inutiles
Si vous avez testé des plugins, migré un site ou installé des scripts tiers, vous avez peut-être des bases de données orphelines sur votre serveur. Ces bases représentent une surface d’attaque supplémentaire.
- Listez toutes les bases :
SHOW DATABASES;
- Listez tous les utilisateurs :
SELECT User, Host FROM mysql.user;
- Supprimez les comptes anonymes :
DELETE FROM mysql.user WHERE User='';
- Exécutez
mysql_secure_installation sur tout nouveau serveur
8. Activer le chiffrement des données au repos (MySQL TDE)
Pour les sites traitant des données sensibles (e-commerce, données de santé, informations personnelles), le chiffrement TDE (Transparent Data Encryption) de MySQL/MariaDB protège les fichiers de base de données physiques sur disque.
Avec MariaDB (compatible avec la plupart des hébergements cPanel/Plesk) :
[mysqld]
plugin-load-add = file_key_management
file-key-management-filename = /etc/mysql/encryption/keyfile
innodb-encrypt-tables = ON
innodb-encrypt-log = ON
Ce mécanisme garantit que même si un attaquant accède physiquement aux fichiers de données (.ibd), il ne peut pas lire leur contenu sans la clé de chiffrement. Pour une conformité RGPD et PCI-DSS, cette mesure est fortement recommandée.
FAQ — Sécurité base de données MySQL WordPress
Est-il dangereux de laisser le préfixe wp_ par défaut ?
Oui. Le préfixe wp_ est connu de tous les scripts d’attaque automatisés. Changer ce préfixe n’est pas une mesure suffisante seule, mais elle augmente la difficulté pour les attaquants opportunistes et complète efficacement vos autres défenses.
Mon hébergeur mutualisé gère-t-il la sécurité MySQL pour moi ?
Partiellement. Les hébergeurs mutualisés proposent généralement phpMyAdmin et des mots de passe forts, mais ils ne configurent pas les privilèges minimaux ni le monitoring des requêtes. Selon une étude Patchstack de 2026, seulement 26 % des attaques d’exploitation de vulnérabilités sont bloquées par les hébergeurs — la configuration MySQL reste votre responsabilité.
Comment savoir si ma base de données a été compromise ?
Signes d’alerte : apparition d’utilisateurs WordPress inconnus dans la table wp_users, options inconnues dans wp_options (webshells, redirects malveillants), ralentissement soudain des requêtes, ou détection de contenu spam dans vos articles. Utilisez WP Cerber ou Wordfence pour des scans réguliers, et consultez notre guide de remédiation WordPress hacké si vous suspectez une intrusion.
phpMyAdmin est-il une faille de sécurité ?
phpMyAdmin exposé publiquement est une cible fréquente. Si votre hébergeur l’impose, changez l’URL d’accès par défaut, activez l’authentification à deux facteurs (2FA) et restreignez l’accès par adresse IP via votre panneau d’hébergement.
Conclusion : protégez le cœur de votre WordPress
La base de données MySQL est le composant le plus critique de votre infrastructure WordPress. Contrairement aux plugins ou aux thèmes, une compromission de base de données expose immédiatement toutes vos données : utilisateurs, contenus, configurations, et potentiellement données clients.
Les 8 mesures de ce guide — modification du préfixe, restriction des privilèges, identifiants forts, blocage du port 3306, sauvegardes chiffrées, journaux de requêtes, nettoyage des comptes inutiles et chiffrement TDE — forment un socle solide et complémentaire.
Pour une protection complète de votre WordPress, consultez également notre checklist sécurité WordPress 2026 qui couvre l’ensemble des points de durcissement recommandés.
Vous souhaitez un audit complet de votre WordPress, base de données incluse ? Contactez SecuriteWP — nous intervenons pour diagnostiquer, nettoyer et sécuriser votre site.
✍️ À propos de l’auteur
Benjamin Bueno — Expert en cybersécurité WordPress et forensics web. Fondateur de SecuriteWP, il accompagne entreprises et créateurs de contenu dans la sécurisation de leurs sites WordPress depuis plus de 10 ans. Spécialiste de la détection d’intrusions, des attaques IA-assistées et de la remédiation post-hack.
En savoir plus →