La gestion des droits avec la console SQL
Sommaire
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
- Se connecter à 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 :