Agitez votre trafic avec Oseox, Plus de 400 cours gratuits.
Profitez de nos meilleurs conseils, Recevez notre newsletter pro !
C'est très sympa de manipuler les données mais si jamais elles disparaissent toutes d'un coup, que peut-on faire ? C'est un cas envisageable qui mérite notre plus grande attention.
Effectivement, si plusieurs personnes travaillent simultanément sur une base de données, rien ne nous assure que les utilisateurs exécutent la même requête.
Une personne peut supprimer une table pendant qu'une autre personne insère des données dans la table. Ce qui nous amène à se soucier aussi de la sécurisation des données. Le mode contrôle des données de SQL nous permet de gérer tout cela facilement.
Il est possible de protéger la base de données en offrant un accès par mot de passe à la base de données. On définit alors des permissions ou privilèges pour chaque personne avec leur mot de passe correspondant.
Les privilèges peuvent alors être :
Le super utilisateur qu'on appelle souvent root, possède toutes les permissions (INSERT, DELETE, SELECT, UPDATE, ETC). Il revient après à l'administrateur de définir les permissions selon les besoins de chacun : modification de données, consultation de données, etc.
Seule la personne créatrice d'un élément (table, index, etc.) peut accorder ou retirer des droits sur celui-ci. Toutefois, elle a la possibilité de transmettre ce droit (accorder/retirer des droits) à une autre personne.
Deux clauses principales du langage SQL nous permettent d'effectuer toutes ces manipulations. La clause GRANT permet d'accorder des droits à un ou plusieurs utilisateurs. A l'inverse, on se sert de la clause REVOKE pour retirer les droits à un ou plusieurs utilisateurs.
Pour donner la permission à la secrétaire de modifier les colonnes nom, prénom et domicile de notre table etudiant on a :
GRANT UPDATE(nom,prenom,domicile) ON etudiant
TO secretaire WITH GRANT OPTION;
Pour lui retirer ces droits, il suffit de faire un REVOKE :
REVOKE [GRANT OPTION FOR] UPDATE(nom,prenom,domicile) ON etudiant FROM PUBLIC
Une question ? Venez la poser sur notre forum développement web !