L'objectif de la gestion des droits est de protéger les données de la base contre les accès non autorisés. La solution adoptée par les SGBD est :
Les objets de la base sont les relations, les vues, les contraintes d'intégrité, les index ...
Plusieurs catégories d'utlisateurs doivent être distinguées :
Le système de droits des SGBD distingue 4 droits sur les relations :
Combien existe t-il de droits dans le système de gestion de fichier sous Unix par exemple ?
Le créateur d'une relation est est le propriétaire. A ce titre il administre sa relation. Ceci lui doone les droits de :
Oracle ne gère qu'une seule BD physique. Chaque utilisateur créateur de relations correspond à une BD logique. Le nom de cette base est le nom de l'usager. Chaque usager est enregistré avec un nom d'utlisateur et un mot de passe. Il lui est associé des droits de création et/ou de manipulation des données.
Un (ou un ensemble d') administrateur possède(nt) tous les droits.
La syntaxe SQL pour donner un droit est la suivante :
La clause WITH GRANT OPTION, optionnelle, donne le droit de transmettre le droit.GRANT <droit>
ON <relation>
TO <usager>
[WITH GRANT OPTION]
GRANT SELECT ON vins TO defude ;
GRANT INSERT ON viticulteurs TO bouzeghoub ;
GRANT UPDATE (deg) ON vins TO tata ;
GRANT ALL ON commandes TO lecocq WITH GRANT OPTION ;
La syntaxe SQL pour révoquer un droit est la suivante :
REVOKE <droits>
ON <relation>
TO <usager>
REVOKE SELECT ON vins TO defude ;
La création d'une vue est autorisée à tout usager ayant au moins le droit SELECT sur toutes les relations intervenant dans la définition de la vue. Le propriétaire de la vue a toujours le droit SELECT sur celle-ci et le droit UPDATE uniquement si la mise à jour au travers de la vue est possible et s'il possède le droit de mise à jjour sur toutes les relations intervenant dans la vue.
L'association des droits et des vues permet de protéger efficacement les données : les vues délimitent des frontières de données et les droits spécifient finement le type de manipulations autorisées sur celles-ci.