GNU/Linux >> Tutoriels Linux >  >> Linux

Comment vérifier les privilèges utilisateur MySQL sous Linux

La première/nouvelle installation d'un MySQL sur n'importe quel système d'exploitation considère uniquement l'utilisateur root comme l'utilisateur de la base de données par défaut. Les premières transactions/activités de base de données sont effectuées par l'utilisateur root uniquement.

Par conséquent, il n'est pas idéal pour tout utilisateur ayant besoin d'accéder à la base de données MySQL d'y accéder via les informations d'identification de l'utilisateur racine. L'accès utilisateur racine doit être réservé à l'administrateur de la base de données qui utilisera ensuite les informations d'identification de l'utilisateur racine pour créer des utilisateurs de base de données et accorder des privilèges pour exécuter différentes requêtes de base de données.

Il est également idéal pour l'administrateur de la base de données d'éviter d'utiliser l'utilisateur root pour accéder à MySQL base de données mais créez à la place un autre utilisateur et accordez à cet utilisateur les mêmes privilèges d'accès et d'exécution que l'utilisateur root.

Ce guide d'articles est idéal pour MariaDB , MySQL Enterprise Edition , et MySQL Community Edition utilisateurs. Pour montrer comment vérifier les privilèges des utilisateurs MySQL, nous allons d'abord créer différents utilisateurs de test avec différents privilèges MySQL.

Créer un nouvel utilisateur MySQL

Tout d'abord, obtenez un accès root à votre MySQL base de données depuis votre terminal Linux en utilisant la commande :

$ mysql -u root -p

La syntaxe de commande pour créer un utilisateur MySQL est la suivante :

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

Le cas d'utilisation ci-dessus s'applique à un MySQL installé sur une machine locale. Si vous utilisiez une machine/un serveur distant, vous devriez alors remplacer ‘username’@’localhost’ avec ‘username’@’remote_machine_ip_address’ .

Si vous souhaitez qu'un utilisateur puisse se connecter à n'importe quel système MySQL installé sans spécifier le nom d'hôte ou l'adresse IP, respectez la syntaxe de la commande :

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

Créons maintenant plusieurs utilisateurs de base de données MySQL.

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';  
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';  
CREATE USER 'user3'@'%' IDENTIFIED BY 'password3';  

Notez que ces utilisateurs sont à des fins de démonstration et envisagez donc de créer des mots de passe d'utilisateur de base de données plus forts pour votre environnement de production.

Accorder des privilèges au nouvel utilisateur MySQL

L'étape suivante consiste à attribuer à ces utilisateurs de base de données créés différents rôles (privilèges d'utilisateur). Ces privilèges d'utilisateur concernent les actions de base de données que les différents utilisateurs de la base de données sont autorisés à effectuer.

Nous pouvons décomposer ces autorisations en :

  • Tous les privilèges  :L'utilisateur auquel cette autorisation a été attribuée peut exécuter tous les rôles de base de données.
  • Insérer  :L'utilisateur auquel cette autorisation a été attribuée peut insérer des données de ligne de table de base de données.
  • Supprimer  :L'utilisateur auquel cette autorisation a été attribuée peut supprimer les données des lignes de la table de la base de données.
  • Créer  :L'utilisateur auquel cette autorisation a été attribuée peut créer des bases de données et des tables inexistantes.
  • Déposer  :L'utilisateur auquel ce rôle a été attribué peut supprimer des bases de données et des tables existantes.
  • Sélectionner  :L'utilisateur auquel cette autorisation a été attribuée peut lire les informations des bases de données.
  • Mettre à jour  :L'utilisateur auquel cette autorisation a été attribuée peut modifier les données des lignes de la table de la base de données.
  • Option de subvention  :L'utilisateur auquel cette autorisation a été attribuée peut modifier les privilèges d'autres comptes d'utilisateurs de la base de données.

Par exemple, si nous devions accorder à user1 tous les privilèges sur toutes les bases de données et tables pour être comme l'utilisateur root, nous exécuterions la commande :

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

Si nous devions accorder à user2 tous les privilèges sur toutes les tables de base de données d'une base de données spécifique (par exemple mysql ), nous exécuterions la commande :

GRANT ALL PRIVILEGES ON mysql.* TO 'user2'@'localhost';

Si nous devions accorder à user3 le privilège de ne créer que de nouveaux utilisateurs MySQL, nous exécuterions la commande :

GRANT INSERT ON mysql.user TO 'user3'@'%';

Vérification des privilèges utilisateur dans MySQL

Pour vérifier les privilèges de base de données d'un utilisateur, référencez la syntaxe de la commande :

SHOW GRANTS FOR username;

Pour vérifier les privilèges de ces trois utilisateurs :

SHOW GRANTS FOR user1@localhost;
SHOW GRANTS FOR user2@localhost;
SHOW GRANTS FOR user3;

Pour révoquer les privilèges attribués à l'utilisateur, référencez la syntaxe de la commande :

REVOKE permission_type ON database.table FROM 'username'@'hostname'; 

Par exemple ;

REVOKE INSERT ON mysql.user FROM user3;

[ Vous pourriez également aimer :Feuille de triche des commandes de base de données MySQL pour Linux ]

Avec cet article, vous comprenez maintenant tout ce qu'il y a à savoir sur les privilèges des utilisateurs de MySQL.


Linux
  1. Comment vérifier la version de MySQL sous Linux

  2. Comment réparer la base de données MySQL

  3. Comment configurer les privilèges Sudo pour l'utilisateur sous Linux

  4. Comment vérifier la version de MySQL sur Linux

  5. Comment vérifier la version de MySQL sous Linux

Comment créer un nouvel utilisateur MySQL via phpMyAdmin

Comment autoriser l'accès à distance au serveur de base de données MySQL

Comment renommer le nom de la base de données MySQL sous Linux

Comment changer d'utilisateur sous Linux

Comment ajouter une base de données MySQL dans SolidCP ?

Comment ajouter une base de données MySQL dans WebsitePanel 2.1 ?