GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un nouvel utilisateur MySQL et accorder des privilèges

Présentation

MySQL est une application de base de données pour Linux et fait partie de la célèbre pile LAMP (Linux, Apache, MySQL, PHP). Une installation MySQL inclut des options de gestion via un utilisateur root ou des comptes d'utilisateurs spécifiques.

Pour des raisons de sécurité, il est généralement préférable de créer et de gérer les données en tant qu'utilisateurs spécifiques.

Dans ce didacticiel, apprenez à créer des comptes utilisateur MySQL et à gérer leurs autorisations et privilèges.

Prérequis

  • Un serveur Linux avec MySQL ou MariaDB installé et en cours d'exécution
  • Accès aux informations d'identification de l'utilisateur racine MySQL
  • Accès à une fenêtre de terminal/ligne de commande (Ctrl-Alt-T / Ctrl-Alt-F2)

Comment créer un nouvel utilisateur MySQL

1. Avant de pouvoir créer un nouvel utilisateur MySQL, vous devez ouvrir une fenêtre de terminal et lancer le shell MySQL en tant qu'utilisateur root. Pour cela, saisissez la commande suivante :

sudo mysql –u root –p

2. Tapez le mot de passe root pour ce compte et appuyez sur Entrée.

L'invite devrait changer pour indiquer que vous êtes dans mysql> coque.

3. Ensuite, créez un nouvel utilisateur MySQL avec :

CREATE USER 'username' IDENTIFIED BY 'password';

Remplacer nom d'utilisateur et mot de passe avec un nom d'utilisateur et un mot de passe de votre choix.

Vous pouvez également configurer un utilisateur en spécifiant la machine hébergeant la base de données.

  • Si vous travaillez sur la machine avec MySQL, utilisez [email protected] pour définir l'utilisateur.
  • Si vous vous connectez à distance, utilisez [email protected]_address , et remplacez ip_address avec l'adresse réelle du système distant hébergeant MySQL.

Par conséquent, la commande sera :

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

ou

CREATE USER 'username'@'ip_address' IDENTIFIED BY 'password';

Vous pouvez également créer un utilisateur pouvant se connecter depuis n'importe quelle machine avec la commande :

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

Comment accorder des autorisations dans MySQL

Avant de vous connecter avec un nouveau compte, assurez-vous d'avoir défini les autorisations pour l'utilisateur.

Les autorisations sont des actions que l'utilisateur est autorisé à effectuer dans la base de données. Selon le niveau d'autorité que vous souhaitez accorder à votre utilisateur, vous pouvez lui accorder un, plusieurs ou tous les privilèges suivants :

  • Tous les privilèges : Le compte utilisateur a un accès complet à la base de données
  • Insérer : L'utilisateur peut insérer des lignes dans les tableaux
  • Supprimer : L'utilisateur peut supprimer des lignes des tableaux
  • Créer : L'utilisateur peut créer des tables et des bases de données entièrement nouvelles
  • Déposer : L'utilisateur peut déposer (supprimer) des tables et des bases de données entières
  • Sélectionnez : L'utilisateur a accès à la commande select, pour lire les informations dans les bases de données
  • Mise à jour : L'utilisateur peut mettre à jour les lignes du tableau
  • Option de subvention : L'utilisateur peut modifier d'autres privilèges de compte utilisateur

La syntaxe de base utilisée pour accorder des privilèges à un compte utilisateur est :

GRANT permission_type ON database.table TO 'username'@'localhost';

Par exemple, pour accorder des privilèges d'insertion à un utilisateur MySQL vous exécuteriez la commande :

GRANT INSERT ON *.* TO 'username'@'localhost';

Vous pouvez remplacer le niveau de privilège selon vos besoins. Exécutez la commande pour chaque privilège que vous souhaitez accorder.

Si vous souhaitez limiter l'accès de l'utilisateur à une base de données spécifique, nommez cette base de données avant le point. De même, vous pouvez restreindre l'accès d'un utilisateur à une table particulière en la nommant après le point, comme dans la commande ci-dessous :

GRANT INSERT *database_name.table_name* TO 'username'@'localhost';

Gestion des utilisateurs MySQL

Cette section vous aidera à répertorier les privilèges détenus par un compte d'utilisateur, à retirer des privilèges à un utilisateur et à supprimer complètement un compte d'utilisateur. Il vous montrera également comment vous déconnecter du compte utilisateur root MySQL et vous reconnecter sous le compte que vous venez de créer.

Comment répertorier les privilèges de compte utilisateur MySQL

Pour afficher tous les privilèges actuels détenus par un utilisateur :

SHOW GRANTS FOR username;

Comment accorder tous les privilèges sur une base de données dans MySQL

Pour accorder tous les privilèges à l'utilisateur MySQL sur toutes les bases de données utilisez la commande :

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

Cependant, vous pouvez également accorder tous les privilèges à un compte d'utilisateur sur un compte spécifique base de données avec la commande suivante :

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Pour accorder tous les privilèges à un compte utilisateur sur une table spécifique à partir d'un type de base de données :

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

Révoquer les privilèges du compte utilisateur MySQL

Pour reprendre les privilèges d'un utilisateur spécifique, utilisez le REVOKE commande. Elle fonctionne de manière similaire à la commande GRANT, sa syntaxe de base étant :

REVOKE permission_type ON database.table TO 'username'@'localhost';

Supprimer un compte utilisateur entier

Pour supprimer un compte utilisateur MySQL, utilisez la commande :

DROP USER 'username'@'localhost';

Linux
  1. Comment ajouter un nouvel utilisateur MySQL et accorder des privilèges d'accès

  2. Comment créer et supprimer un groupe d'utilisateurs sous Linux

  3. Créer une nouvelle base de données et l'utiliser dans MySQL/MariaDB

  4. Howto MySQL :Créer un utilisateur et accorder une autorisation à une base de données

  5. Créer un nouvel utilisateur et accorder des autorisations dans MySQL

Comment créer un nouvel utilisateur et accorder des autorisations dans MySQL

Comment créer une base de données et un utilisateur MySQL dans cPanel ?

Comment créer une nouvelle base de données et un utilisateur MySQL ?

Comment puis-je créer une nouvelle base de données MySQL dans cPanel ?

Comment créer un utilisateur Sudo sur Ubuntu et Debian

Comment créer et gérer de nouveaux utilisateurs sous Linux