15/11/2024

Base de données

La gestion des droits avec la console SQL

I. Présentation

La gestion des droits est incontournable en matière de sécurité et pour définir les actions que l’utilisateur a le droit de faire et de ne pas faire. En SQL, il y a 4 droits/privilèges principaux que l’on peut attribuer à un utilisateur. Il peut avoir le droit de sélectionner des données dans des tables grâce au « SELECT », d’ajouter des valeurs dans les tables grâce à « INSERT » , de supprimer des données grâce à la commande « DELETE » et d’en mettre à jour en utilisant « UPDATE ».

Il est possible de gérer ces droits via l’interface PHPMyAdmin mais aussi à partir de la console MySQL, c’est ce que nous allons dans ce tutoriel.

II. Informations sur le serveur et la base de données utilisée

Serveur : localhost (127.0.0.1)
Serveur web : WAMP
Base de données : neoflow_bdd
Table : table1
Utilisateurs : root et invite

III. Exécutez la console

Avec une Invite de commandes, se positionner dans le répertoire contenant « mysql.exe » :

cd "c:\wamp\bin\mysql\mysql5.1.36\bin"
  •  Exécutez “mysql.exe” en utilisant des paramètres d’authentification SANS mot de passe :
mysql.exe –u root
  •  Exécutez “mysql.exe” en utilisant des paramètres d’authentification AVEC mot de passe :
mysql.exe –u root –p mot_de_passe

 

IV. Connexion au serveur et à la base de données

mysql>connect nom_bdd ip_serveur
mysql>connect neoflow_bdd 127.0.0.1
  •  Utiliser une base de données :
mysql>use nom_bdd
mysql>use neoflow_bdd

 

VI. Syntaxe pour la gestion des droits

Il y a deux commandes principales pour gérer les droits/les privilèges en SQL :

  •  GRANT : permet d’attribuer un ou plusieurs droits/privilèges à un utilisateur sur une ou des tables. Par exemple : donner le droit à l’utilisateur NEOFLOW d’effectuer un INSERT sur la table INFORMATIQUE.
  •  Syntaxe du GRANT :
GRANT nom_action ON nom_table TO nom_utilisateur;
  •  REVOKE : permet de retirer un ou plusieurs droits/privilèges à un utilisateur sur une ou des tables. Par exemple : retirer le droit à l’utilisateur NEOFLOW d’effectuer un DELETE sur la table INFORMATIQUE.
  •  Syntaxe du REVOKE :
REVOKE nom_action ON nom_table FROM nom_utilisateur;

 

VI. Quelques exemples

Ajouter le droit de faire un INSERT sur toutes les tables de la BDD utilisée pour l’utilisateur « invite » :

mysql>GRANT INSERT ON * TO invite;
  •  Ajouter le droit de faire un INSERT sur la table « table1 » pour l’utilisateur “invite” :
mysql>GRANT INSERT ON table1 TO invite;
  •  Attribuer tous les droits à l’utilisateur “invite” sur la base de données utilisée :
mysql>GRANT ALL ON * TO invite;
  •  Retirer le droit de faire un INSERT sur toutes les tables de la BDD utilisée pour l’utilisateur « invite » :
mysql> REVOKE INSERT ON * FROM invite;
  •  Retirer le droit de faire un INSERT sur la table « table1 » pour l’utilisateur “invite” :
mysql> REVOKE INSERT ON table1 FROM invite;
  •  Retirer tous les droits à l’utilisateur “invite” sur toutes les tables de la BDD utilisée :
mysql> REVOKE ALL PRIVILEGES ON * FROM invite;

 

VI. Oubli dans la syntaxe

Si vous saisissez une commande et que vous obtenez le prompt « -> » c’est que vous n’avez pas saisie la commande entièrement cela peut être dû notamment au fait que vous avez oublié de mettre un « ; » à la fin de la commande.

Si c’est le cas, saisissez « ; » au prompt « -> » pour terminer votre commande :

droitsql

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.