Lorsque vous installez le service de base de données MySQL, il crée automatiquement un compte root. Vous pouvez l’utiliser pour effectuer n’importe quelle action et accéder à n’importe quelle donnée. Cela peut être un cauchemar en matière de sécurité !

Pour assurer la sécurité de votre site, il est sage de créer des comptes supplémentaires qui n’ont pas ces privilèges élevés. Heureusement, il existe plusieurs façons de créer de nouveaux utilisateurs dans MySQL.

Dans cet article, nous allons explorer toutes les raisons pour lesquelles vous pourriez vouloir ajouter des utilisateurs supplémentaires à votre base de données MySQL. Nous vous montrerons ensuite comment créer ces comptes et gérer leurs permissions pour une sécurité maximale. C’est parti !

Introduction à MySQL (et pourquoi vous voulez peut-être ajouter de nouveaux utilisateurs)

La distribution officielle de WordPress prend en charge les moteurs de base de données MySQL et MariaDB. Si vous avez pesé le pour et le contre, vous avez peut-être opté pour la dernière version du logiciel de gestion de base de données MySQL. À un moment donné, vous voudrez peut-être créer des utilisateurs supplémentaires.

Dans MySQL, chaque compte se compose d’un nom d’utilisateur et d’un mot de passe. Il indique également le ou les hôtes clients sur lesquels l’utilisateur peut se connecter à votre serveur MySQL.

Vous créerez généralement des comptes supplémentaires lorsque plusieurs personnes auront besoin d’accéder à votre base de données. Bien que plusieurs personnes puissent interagir avec MySQL à partir du même compte, le partage des identifiants de connexion constitue un risque pour la sécurité. Si vous détectez des erreurs ou une activité suspecte dans votre base de données, un compte partagé rendra également plus difficile l’identification du coupable.

MySQL est un système basé sur les autorisations. Il vous permet de contrôler exactement les informations auxquelles chaque utilisateur a accès et les actions qu’il peut effectuer. Créer plusieurs comptes avec des autorisations différentes est bien plus sûr que de se fier à un seul compte avec un accès global.

Lorsque vous installez MySQL, il crée automatiquement un seul compte super-utilisateur ‘root’@’localhost’. Même si vous gérez la base de données en solo, il est toujours sage de créer au moins un compte supplémentaire. Ainsi, vous ne perdrez pas l’accès à l’ensemble de votre base de données simplement parce que vous rencontrez un problème avec ‘root’@’localhost’

Ce compte root a également la permission d’accéder à toutes vos données et d’effectuer n’importe quelle action. Même les utilisateurs expérimentés de bases de données peuvent causer de sérieux dégâts avec ce niveau de contrôle. C’est pourquoi il est préférable de créer un compte utilisateur ordinaire que vous pouvez utiliser pour l’administration quotidienne de MySQL. Vous pouvez ensuite réserver ‘root’@’localhost’ pour les tâches qui nécessitent des privilèges élevés.

L'installation du service de base de données MySQL peut être un cauchemar en matière de sécurité 😱... mais avec ce guide, vous pouvez assurer la sécurité de votre site. ⬇Click to Tweet

Comment gérer votre base de données MySQL

Lorsqu’il s’agit de gérer votre base de données MySQL, vous avez deux choix. Vous pouvez utiliser MySQL Shell, qui est une interface Python, Javascript ou SQL et un composant du serveur MySQL. Cet outil est disponible sur Microsoft Windows, Linux et macOS pour les plateformes 64 bits.

Vous pouvez aussi utiliser l’outil gratuit phpMyAdmin. Voyons de plus près ces deux options.

1. Gérez votre base de données à partir de MySQL Shell

Pour accéder à l’invite MySQL Shell, ouvrez un Terminal ou une Invite de commande. Vous pouvez ensuite exécuter la commande suivante :

> mysqlsh

Cela ouvre MySQL Shell sans se connecter à un serveur. Par défaut, MySQL Shell se lance en mode JavaScript, mais vous pouvez changer de mode en utilisant la commande sql, py ou js:

Ouvrir le shell MySQL
Ouvrir le shell MySQL

Dans MySQL Shell, les connexions aux instances de MySQL Server sont gérées par un objet de session. Si le protocole X est disponible, vous pouvez alors utiliser un objet Session. Notez que le protocole X nécessite le plugin X.

Le plugin X écoute le port spécifié par mysqlx_port, qui a la valeur 33060 par défaut. Vous pouvez créer un objet Session à l’aide de ce qui suit :

–mysqlx (–mx)

Par exemple, vous pouvez établir une connexion X Protocol à une instance locale de MySQL Server écoutant sur le port 33060, en utilisant ce qui suit :

shell> mysqlsh –mysqlx -u user -h localhost -P 33060

Si le protocole X n’est pas disponible, vous pouvez utiliser un objet ClassicSession. Cet objet est destiné à exécuter SQL contre des serveurs utilisant le protocole MySQL classique. Pour créer un objet ClassicSession, saisissez :

–mysql (–mc)

Vous pouvez vérifier les résultats de votre tentative de connexion en utilisant la commande status du MySQL Shell ou la méthode shell.status(). Par exemple :

mysql-js []> shell.status()

Pour attribuer des privilèges via MySQL Shell, vous devez exécuter vos commandes en tant qu’utilisateur root. Pour cela, saisissez ce qui suit et donnez votre mot de passe d’utilisateur root MySQL lorsque vous y êtes invité :

mysql -u root -p

Ici, le -u indique que le paramètre suivant est un nom d’utilisateur, qui dans ce cas est root. Au lieu d’afficher le mot de passe en texte clair, nous utilisons -p. Cela indique que le mot de passe n’est pas fourni et que vous devrez le saisir lorsque vous y serez invité. L’utilisation de ces paramètres peut vous aider à sécuriser votre compte root.

2. Gérez votre base de données depuis phpMyAdmin

Si vous préférez utiliser une interface utilisateur graphique (GUI), vous pouvez aussi gérer la base de données MySQL via phpMyAdmin. Cette interface vous permet de créer de nouveaux comptes, d’afficher et de modifier les permissions, et de supprimer les comptes dont vous n’avez plus besoin. Vous devrez être connecté en tant que root pour effectuer ces actions.

Malgré cela, il est bon de noter que phpMyAdmin ne gère pas la gestion des utilisateurs. En coulisse, il transmet simplement le nom d’utilisateur et le mot de passe à MySQL. La base de données détermine ensuite si cet utilisateur peut accéder aux données spécifiées ou effectuer une action particulière.

Vous pouvez télécharger cet outil gratuitement sur le site web de phpMyAdmin. Sinon, si vous êtes un client Kinsta, nous offrons un accès facile à phpMyAdmin dans le cadre de nos plans d’hébergement.

Pour accéder à phpMyAdmin, connectez-vous à votre tableau de bord MyKinsta. Dans le menu de gauche, sélectionnez Sites.

Sélectionnez « Sites » dans le tableau de bord MyKinsta
Sélectionnez « Sites » dans le tableau de bord MyKinsta

Ensuite, choisissez le site sur lequel vous voulez modifier votre base de données MySQL. Sur l’écran suivant, faites défiler la page jusqu’à la section Accès base de données.

Trouvez la section Accès base de données
Trouvez la section Accès base de données

Dans la section Accès base de données, vous trouverez le nom de votre base de données, votre nom d’utilisateur et votre mot de passe. Vous pouvez ensuite cliquer sur Ouvrir phpMyAdmin, ce qui lance cet outil dans un nouvel onglet. Lorsque vous y êtes invité, saisissez le nom d’utilisateur et le mot de passe de la section Accès base de données de MyKinsta.

Saisissez le nom d'utilisateur et le mot de passe
Saisissez le nom d’utilisateur et le mot de passe

Maintenant, connectez-vous à votre compte phpMyAdmin et sélectionnez le lien Utilisateurs. De là, vous pouvez gérer tous vos comptes utilisateurs MySQL.

Comment créer et gérer un utilisateur MySQL (4 processus clés)

Une fois que vous êtes connecté à votre base de données, vous pouvez effectuer de nombreuses actions différentes. Voici quatre façons clés de gérer vos comptes d’utilisateur MySQL.

1. Créer un nouvel utilisateur dans le serveur de base de données

Dans phpMyAdmin, vous pouvez créer un compte en utilisant le lien Ajouter un nouvel utilisateur. Vous pouvez ensuite utiliser les champs de texte et les listes déroulantes pour configurer ce compte :

À ce stade, vous avez la possibilité d’attribuer des privilèges globaux. Cela accorde à l’utilisateur un accès illimité à toutes vos bases de données et tables. Cela peut représenter un risque pour la sécurité, alors vous ne devriez donner ces privilèges élevés que lorsqu’ils sont nécessaires. Vous pouvez attribuer des privilèges spécifiques aux bases de données après avoir créé ce compte.

Pour créer un nouveau compte via le shell MySQL, saisissez la commande CREATE USER. Vous devrez également fournir un nom d’utilisateur et le nom d’hôte. Ce dernier est le nom de l’hôte à partir duquel l’utilisateur se connecte au serveur MySQL :

CREATE USER ‘exampleuser’@’localhost’ IDENTIFIED BY ‘password’ ;

En saisissant cette commande, assurez-vous de remplacer exampleuser et password par les valeurs que vous voulez attribuer à ce compte. L’utilisateur peut toujours changer son mot de passe MySQL ultérieurement.

Dans l’exemple ci-dessus, nous définissons le nom d’hôte sur « localhost ». Par conséquent, l’utilisateur ne pourra se connecter au serveur MySQL qu’à partir du système où le serveur MySQL est exécuté.

Vous pouvez remplacer le mot localhost par l’adresse de votre serveur. Par exemple, si cet utilisateur a besoin d’accéder à MySQL depuis une machine avec l’adresse de protocole Internet (IP) 11.0.0.0, vous exécuterez ce qui suit :

CREATE USER ‘newuser’@’11.0.0.0’ IDENTIFIED BY ‘user_password’ ;

Si vous voulez créer un utilisateur qui peut se connecter depuis n’importe quel hôte, vous pouvez inclure le caractère générique % dans votre commande. Par exemple :

CREATE USER ‘newuser’@’%’ IDENTIFIED BY ‘user_password’ ;

Vous pouvez aussi omettre complètement la valeur du nom d’hôte. Cela aura le même résultat.

2. Attribuer des autorisations MySQL via phpMyAdmin

Par défaut, un nouvel utilisateur MySQL n’a pas l’autorisation d’effectuer des actions. Même s’il se connecte à son compte, il ne pourra créer aucune table ni sélectionner aucune donnée.

Après avoir créé un nouvel utilisateur, vous voudrez généralement commencer à lui attribuer des autorisations. Pour que votre base de données reste sécurisée, il est bon de donner à chaque utilisateur les privilèges minimums nécessaires pour effectuer son travail. Il est également judicieux de revoir régulièrement leurs autorisations et de révoquer celles qui sont inutiles.

Les clients de Kinsta peuvent modifier les privilèges d’un utilisateur depuis le tableau de bord Utilisateurs de phpMyAdmin.

Le tableau de bord Utilisateurs de phpMyAdmin
Le tableau de bord Utilisateurs de phpMyAdmin

Là, trouvez le compte que vous voulez modifier et cliquez sur l’icône en forme de crayon à côté de celui-ci. Vous pouvez maintenant modifier toutes les permissions auxquelles cet utilisateur a accès.

Accorder un accès illimité peut sembler être l’option la plus facile, mais cela peut mettre votre base de données en danger. À moins que vous n’ayez une raison particulière, vous voudrez généralement éviter de donner à quelqu’un un accès illimité à toute votre base de données.

3. Modifier les permissions des utilisateurs depuis MySQL Shell

Si vous utilisez le Shell MySQL, vous pouvez afficher tous les privilèges accordés à un compte spécifique avec la commande SHOW GRANTS. Vous devrez remplacer « username » et « localhost » par les informations du compte que vous voulez examiner :

SHOW GRANTS FOR ‘username’@’localhost’ ;

Lorsque vous créerez un compte, cette liste sera vide. Vous pouvez commencer à attribuer l’accès à différentes parties de votre base de données à l’aide de la commande GRANT :

GRANT type_de_permission ON database_name.table_name TO ‘username’@’localhost’ ;

Dans cette commande, nous indiquons les privilèges que nous attribuons, suivis de la base de données et des tables auxquelles ces modifications doivent s’appliquer. Enfin, nous fournissons le nom d’utilisateur et le serveur qui recevront les privilèges nommés. Vous trouverez une liste complète de tous les privilèges disponibles dans la documentation officielle de MySQL.

Documentation MySQL
Documentation MySQL

Si vous voulez accorder l’accès à n’importe quelle base de données ou table, vous pouvez utiliser un astérisque (*) à la place du nom de la base de données ou de la table. Par exemple :

GRANT ALL PRIVILEGES ON *. * TO ‘exampleuser’@’localhost’ ;

Ici, nous accordons à exampleuser la permission de lire, modifier, exécuter et effectuer toutes les tâches sur toutes les bases de données et tables. Vous voudrez généralement réserver ces privilèges élevés aux administrateurs.

Parfois, vous pouvez avoir besoin de retirer une permission. Par exemple, vous avez peut-être accordé un privilège par erreur, ou l’utilisateur n’en a plus besoin. Pour révoquer l’accès, exécutez ce qui suit :

REVOKE type_of_permission ON database_name.table_name FROM ‘username’@’localhost’ ;

Si vous attribuez des privilèges à l’aide de la commande GRANT, MySQL devrait remarquer ces changements et les appliquer automatiquement. Cependant, il est toujours judicieux de rafraîchir les privilèges d’un utilisateur en exécutant la commande FLUSH PRIVILEGES ; .

4. Supprimer un utilisateur de MySQL

Parfois, vous pouvez avoir besoin de supprimer un utilisateur de votre base de données MySQL. Par exemple, peut-être que cette personne quitte votre organisation ou qu’elle est transférée dans un autre département. Vous pouvez aussi essayer activement de limiter le nombre de personnes qui peuvent accéder à votre base de données, afin de renforcer ta sécurité.

Si vous travaillez avec MySQL Shell, vous pouvez supprimer un compte à l’aide de l’instruction DROP USER. Cette commande supprimera également tous leurs privilèges :

DROP USER ‘username’@’localhost’ ;

Sinon, si vous êtes un client Kinsta, vous pouvez facilement supprimer des utilisateurs à partir de la page Utilisateurs de phpMyAdmim. Sur cet écran, trouvez la personne que vous voulez supprimer. Vous pouvez ensuite cocher la case correspondante et choisir si vous voulez aussi supprimer toute base de données portant le même nom :

Lorsque vous êtes satisfait de la procédure, cliquez sur Go. Cette personne sera maintenant supprimée de MySQL.

Prêt à ajouter un nouvel utilisateur à votre base de données MySQL ? 💪 Apprenez ici-même à créer des comptes et à les gérer pour une sécurité maximale 🔒Click to Tweet

Résumé

MySQL crée automatiquement un compte super-utilisateur ‘root’@’localhost’, mais ce n’est jamais une bonne idée de l’utiliser pour tout. En créant plusieurs utilisateurs MySQL, vous pouvez attribuer différents privilèges pour assurer la sécurité de vos données.

De plus, vous pouvez vous assurer que vous ne perdez pas l’accès à votre base de données parce que vous avez des problèmes avec ‘root’@’localhost’.

En tant que propriétaire de site web, votre base de données est souvent votre atout le plus précieux. Chez Kinsta, notre équipe d’experts WordPress expérimentés peut vous aider à garder votre base de données en pleine forme.

Tous nos plans d’hébergement incluent un support24/7 ! En vous associant à Kinsta, vous aurez toujours des vétérans de WordPress à portée de main pour vous aider à résoudre tout problème avec votre base de données MySQL.


Économisez du temps et de l’argent et optimisez les performances de votre site avec :

  • Aide instantanée des experts en hébergement WordPress, 24/7.
  • Intégration de Cloudflare Enterprise.
  • Une audience mondiale avec 29 centres de données dans le monde entier.
  • Optimisation avec notre surveillance intégrée de performance d’applications (APM).

Tout cela et bien plus encore, dans un seul plan sans contrat à long terme, avec des migrations assistées et une garantie de remboursement de 30 jours. Pour trouver le plan qui vous convient, Découvrez nos plans ou contactez nous.