Sécurisation
L'accès à une base de données et bien sûr sensible.
Elle doit être sécurisée :
- pour éviter des actions malveillantes et garantir l'intégrité des données
- pour éviter la fuite de données confidentielles et le respect du RGPD
- pour éviter la destruction des tables ou de la base et perdre des données par des utilisateurs non experts SGBD
Accès à la base / Utilisateurs
Lors de la création d'une base de données, MySQL créé des utilisateurs dans la table user :
Dans cette table, le triplet utilisateur/client/mot de passe gère les accès.
L'utilisateur root par exemple ne dispose pas de mot de passe initialement mais n'accède à la gestion de la base que sur le serveur mysql : localhost ou 127.0.0.1 ou ::1.
N'importe quel utilisateur peut accéder par défaut à la base de donnée sans mot de passe à condition qu'il accède à la base sur le serveur.
N'importe quel utilisateur peut accéder de n'importe où (%) à la base de donnée avec un mot de passe.
Il est possible de créer de nouveaux utilisateurs avec les outils d'administration ou la commande :
CREATE USER 'root-bis'@'localhost' IDENTIFIED BY 'motDePasse';
Il est possible de changer le mot de passe avec les outils d'administration ou la commande :
SET PASSWORD FOR `root-bis`@`localhost`=PASSWORD('nouveauPW');
Il est possible de supprimer un utilisateur avec les outils d'administration ou la commande :
DELETE FROM mysql.user WHERE Host=`localhost` AND User='root-bis';
Droits d'accès
L'utilisateur root dispose par défaut des droits pour utiliser l'ensemble des commandes SQL.
Les autres utilisateurs quant à eux ne disposent pas défaut d'aucun droit :
Les droits sont octroyés avec les outils d'administration ou la commande (ici droit sur les commandes CREATE et SELECT:
GRANT CREATE, SELECT ON * . * TO 'root-bis'@'localhost';
Sécurisation
Le sujet de la sécurisation d'une base de donnée est vaste, mais voilà trois règle élémentaires pour protéger une base.
- Imposer un mot de passe à l'utilisateur root.
- On peut sécuriser davantage la base en renommant root (créer un nouveau super-administrateur de base et supprimer root).
- Si la base est accessible par le web (Client = %), l'administrateur d'accès à distance ne doit pas avoir tous les privilèges, à l'instar de root.