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.