Créer un utilisateur MySQL et lui attribuer une base de données

tuto mysql créer base de données avec utilisateur dédié

Ce tutoriel explique comment créer un nouvel utilisateur MySQL ainsi qu’une nouvelle base de données, et accorder à cet utilisateur les permissions nécessaires pour lui attribuer la base de données.

Cette manipulation est à connaître pour avoir un utilisateur MySQL dédié et associé à une application, qui dispose uniquement de permissions sur une seule base de données. En production, l’utilisateur « root » de MySQL ne doit pas être associé directement à une application, pour des raisons de sécurité.

Nous utiliserons une base de données nommée db_tutobox et un utilisateur nommé user_tutobox comme exemples pratiques.

Besoin d’aide pour installer MySQL sur Debian ? Suivez ce tutoriel :

1. Création d’une nouvelle base de données MySQL

Pour commencer, il est nécessaire de créer une nouvelle base de données MySQL qui sera par la suite associé à une nouvelle application ou un nouveau site web (WordPress, GLPI, Nextcloud, Matomo, etc.). L’instruction « CREATE DATABASE » sera utilisée.

Mais, avant cela, il convient de se connecter à l’instance MySQL :

mysql -u root -p

Saisissez le mot de passe et un prompt MySQL apparaîtra à l’écran. La commande suivante permet de créer une nouvelle base de données :

CREATE DATABASE db_tutobox;

Voici le résultat :

Pour vérifier la présence de la base de données, vous pouvez lister celles présentes sur votre instance avec cette commande :

SHOW DATABASES;

La base de données « db_tutobox » est bien visible, aux côtés d’autres bases de données telles que « mysql » et « information_schema« .

2. Création d’un utilisateur MySQL et lui associer les droits

Après avoir créé la base de données, nous devons créer un nouvel utilisateur et lui associer directement les permissions sur la nouvelle base de données.

La commande ci-dessous crée l’utilisateur « user_tutobox » et lui associe le mot de passe « VotreMotDePasse« . Il aura tous les droits sur les tables de la base de données « db_tutobox« . Cet utilisateur pourra se connecter uniquement en local (d’où le localhost). Si votre base de données et votre serveur web ne sont pas sur la même machine, une configuration additionnelle est nécessaire.

GRANT ALL PRIVILEGES ON db_tutobox.* TO user_tutobox@localhost IDENTIFIED BY "VotreMotDePasse";

Après avoir accordé ces permissions, il est nécessaire de recharger les privilèges pour s’assurer qu’ils prennent effet immédiatement :

FLUSH PRIVILEGES;

Voilà, votre base de données est prête et cet utilisateur dispose des permissions indispensables pour gérer cette base de données : créer des tables, ajouter/supprimer/modifier des enregistrements, etc.

3. Visualisation des utilisateurs et de leurs permissions

Pour administrer efficacement les utilisateurs MySQL, il est souvent utile de lister les utilisateurs existants et de voir leurs permissions (connexion locale / distante).

Pour lister tous les utilisateurs de la base de données MySQL, exécutez cette commande :

SELECT User, Host FROM mysql.user;

Cette commande retourne une liste de tous les utilisateurs enregistrés, ainsi que les hôtes à partir desquels ils sont autorisés à se connecter.

Pour voir les permissions associées à un utilisateur spécifique, vous pouvez utiliser la commande suivante :

SHOW GRANTS FOR 'user_tutobox'@'localhost';

Voici un exemple :

4. Conclusion

Grâce à la lecture de cet article de la boîte à tutoriels informatique, vous avez appris à créer un utilisateur MySQL, à lui attribuer des permissions sur une base de données fraîchement créée. Il s’agit d’une action d’administration très fréquente lorsque l’on souhaite déployer une nouvelle application qui nécessite une base de données MySQL.

Les étapes décrites dans cet article s’appliquent à MySQL Server et MariaDB Server.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *