Chapitre 9 : GRANT, REVOKE (pour aller plus loin, cours seul)
DCL : contrôler les droits d'accès
Dans un vrai système, tout le monde ne doit pas tout pouvoir faire : le stagiaire lit les dossiers, le commissaire les modifie, et seul l'administrateur peut supprimer une table. Le DCL, le langage de contrôle des données, règle qui a le droit de faire quoi.
Pourquoi contrôler les accès ?
Une base contient souvent des informations sensibles (salaires, dossiers médicaux, enquêtes en cours). Le DCL (Data Control Language, « langage de contrôle de données ») permet au SGBD de protéger ces données :
- limiter la lecture : un utilisateur ne voit que les tables qui le concernent ;
- limiter la modification : seuls certains profils peuvent écrire ou supprimer ;
- limiter les accidents : un compte qui ne peut pas faire
DROP TABLEne pourra jamais en faire une par erreur.
Utilisateurs et privilèges
Le SGBD connaît des utilisateurs (un par personne ou par application). À chacun on accorde des privilèges : le droit d'effectuer une action précise sur un objet précis, comme une table.
| Privilège | Autorise |
|---|---|
| SELECT | lire les lignes de la table |
| INSERT | ajouter des lignes |
| UPDATE | modifier des lignes |
| DELETE | supprimer des lignes |
| ALL PRIVILEGES | tout ce qui précède, et plus encore |
GRANT et REVOKE
-- le stagiaire peut lire la table affaires
GRANT SELECT ON affaires TO stagiaire;
-- il peut aussi y ajouter des lignes
GRANT INSERT ON affaires TO stagiaire;
-- on lui retire ensuite le droit de lecture
REVOKE SELECT ON affaires FROM stagiaire;- GRANT accorde un privilège sur un objet à un utilisateur ;
- REVOKE retire un privilège accordé.
Les rôles : des droits par profil
Accorder les mêmes droits à chaque utilisateur, un par un, devient vite fastidieux. Un rôle regroupe un ensemble de privilèges que l'on attribue ensuite à plusieurs personnes. Quand les droits d'un profil changent, on ne modifie que le rôle.
CREATE ROLE enqueteur;
GRANT SELECT, INSERT, UPDATE ON affaires TO enqueteur;
-- Vasseur et Dubois reçoivent le rôle
GRANT enqueteur TO vasseur;
GRANT enqueteur TO dubois;Le principe du moindre privilège
Règle d'or de la sécurité : chaque utilisateur, chaque application, ne reçoit que les droits strictement nécessaires à son travail, et pas un de plus.