2. MySQL

2.1. Les comptes Système MySQL

Comme mentionné dans Section 1.2, « Comptes utilisateur du système », le démon MySQL devrait s'exécuter comme utilisateur unique non privilégié. Ne manquez pas de consulter les instructions de la documentation MySQL ou de la documentation livrée avec votre système.

2.2. Le super utilisateur et l'utilisateur anonyme de MySQL

Par défaut, MySQL est fourni avec un utilisateur « root » dont le mot de passe est vide et avec un utilisateur « anonymous », dont le mot de passe est également vide. Afin de protéger vos données, il faut demander un mot de passe à l'utilisateur « root » et l'utilisateur anonyme doit être désactivé.

Exemple 4.1. Affecter un mot de passe à l'utilisateur « root » de MySQL

bash$ mysql mysql
mysql> UPDATE user SET password = password('new_password') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
        

Exemple 4.2. Désactiver l'utilisateur « anonymous » de MySQL

bash$ mysql -u root -p mysql           1
Enter Password: new_password
mysql> DELETE FROM user WHERE user = '';
mysql> FLUSH PRIVILEGES;
        
1

Cette commande suppose que vous avez déjà effectué Exemple 4.1, « Affecter un mot de passe à l'utilisateur « root » de MySQL ».

2.3. Accès au réseau

Si MySQL et votre serveur Web fonctionnent tous les deux sur la même machine et que vous n'avez pas d'autres raisons d'accéder à MySQL à distance, vous devriez désactiver l'accès au réseau. Cela, ainsi que ce qui est proposé dans Section 1.1, « Ports TCP/IP », vous permettra de protéger votre système de toutes vulnérabilités à distance de MySQL.

Exemple 4.3. Désactiver la gestion du réseau dans MySQL

Tapez simplement ce qui suit dans /etc/my.conf:

[myslqd]
# Prevent network access to MySQL.
skip-networking