Créer un utilisateur et gérer les droits d'accès dans MySQL

Comment créer des utilisateurs MySQL et gérer leurs privilèges.

Lorsque vous travaillez avec un serveur dédié ou un VPS, l'organisation du stockage et de la gestion des données est l'une des tâches essentielles. MySQL est un système de gestion de bases de données qui permet de structurer efficacement les informations et de contrôler les accès des utilisateurs. Il convient aussi bien aux petits projets qu'aux applications plus importantes, en offrant sécurité, fiabilité et facilité d'utilisation.

MySQL s'appuie sur un système d'utilisateurs pour contrôler l'accès aux bases de données. Un administrateur ou un utilisateur autorisé peut accorder à d'autres utilisateurs un accès complet ou restreint à des bases de données et des tables spécifiques.

Privilèges MySQL

Privilèges au niveau de la base de données et des tables :

  • CREATE — créer des bases de données et des tables.
  • DROP — supprimer des bases de données et des tables.
  • INSERT — ajouter des lignes aux tables.
  • UPDATE — modifier le contenu des lignes. À ne pas confondre avec ALTER, qui modifie la structure des tables.
  • DELETE — supprimer des lignes des tables.
  • ALTER — modifier la structure des tables ; nécessite les privilèges CREATE et INSERT.
  • SELECT — lire des données depuis les tables.
  • GRANT OPTION — accorder ou révoquer des privilèges pour d'autres utilisateurs (limité aux privilèges que l'utilisateur possède déjà).
  • LOCK TABLES — verrouiller des tables lors d'opérations d'écriture.
  • REFERENCES — créer des relations de clés étrangères entre tables.
  • EVENT — créer, modifier et supprimer des événements du planificateur.
  • TRIGGER — créer, modifier et supprimer des déclencheurs pour les opérations DELETE, UPDATE et INSERT.
  • INDEX — créer et supprimer des index.
  • CREATE TEMPORARY TABLES — créer des tables temporaires pour la durée d'une session.
  • CREATE VIEW — créer des vues qui agrègent des données d'autres tables.
  • SHOW VIEW — consulter la requête SQL à la base d'une définition de vue.
  • CREATE ROUTINE — créer des procédures stockées.
  • ALTER ROUTINE — modifier des procédures stockées.
  • EXECUTE — exécuter des procédures stockées.
  • FILE — accéder aux fichiers du serveur disponibles pour MySQL et créer des fichiers dans les répertoires accessibles en écriture par MySQL.

Privilèges administratifs :

  • CREATE TABLESPACE — créer, modifier et supprimer des espaces de tables.
  • CREATE USER — créer, modifier et supprimer des utilisateurs MySQL.
  • PROCESS — afficher des informations sur les threads actifs du serveur.
  • PROXY — se connecter en tant qu'un autre utilisateur pour vérifier les droits d'accès.
  • RELOAD — exécuter la commande FLUSH pour vider le cache MySQL.
  • REPLICATION CLIENT — exécuter SHOW MASTER STATUS, SHOW SLAVE STATUS et SHOW BINARY LOG.
  • REPLICATION SLAVE — permettre aux serveurs réplicas de recevoir les mises à jour du serveur principal.
  • SHOW DATABASES — lister toutes les bases de données du serveur.
  • SHUTDOWN — arrêter le serveur MySQL.
  • SUPER — droits administratifs étendus : terminer les processus d'autres utilisateurs, modifier les variables système globales, gérer la journalisation et la réplication.
  • ALL — tous les privilèges disponibles, à l'exception de GRANT OPTION.

Nos produits et services

Hébergement webFonctionne sur des disques NVMe ultra-rapides. Convient aux sites de toute complexité.
Commande
VPSInfrastructure cloud flexible avec accès root complet.
Commande
Serveurs dédiésServeurs physiques pour une performance maximale.
Commande

Créer un utilisateur

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Par défaut, le nouvel utilisateur ne dispose d'aucun privilège sur les bases de données.

Accorder des privilèges

Accorder tous les privilèges sur toutes les bases de données et tables :

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';

Accorder des privilèges spécifiques sur une base de données ou une table précise :

GRANT [privilege type] ON [database].[table] TO '[username]'@'localhost';

Utilisez * à la place d'un nom de base de données ou de table pour appliquer les privilèges à tous.

Après toute modification, rechargez les tables de privilèges :

FLUSH PRIVILEGES;

Révoquer des privilèges

REVOKE [privilege type] ON [database].[table] FROM '[username]'@'localhost';

Supprimer un utilisateur

DROP USER 'demo'@'localhost';

Vérifier le compte

Quitter MySQL :

quit

Puis se reconnecter en tant que nouvel utilisateur :

mysql -u [username] -p

Aide

Une question ou besoin d'un coup de main ? Écrivez-nous via le système de tickets — nous sommes toujours là pour vous aider !

Besoin d’aide?Nos ingénieurs vous aideront gratuitement pour n’importe quelle question en quelques minutesNous contacter