Gestion des Droits des utilisateurs et applications

Introduction

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 :

  • d'enregistrer et d'authentifier
    les utilisateurs ;
  • de définir des autorisations de manipulation des objets de la
    base par les utilisateurs.

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 :

  • les administrateurs de la BD possèdent tous les droits ;
  • les utilisateurs privilégiés peuvent créer des relations. Ils en sont alors propriétaires et responsables ; 
  • les utilisateurs finaux peuvent manipuler les relations.

Le système de droits des SGBD distingue 4 droits sur les relations :

  • le droit d'interrogation (SELECT) ;
  • le droit d'insertion (INSERT) ;
  • le droit de suppression (DELETE) ;
  • le droit de mise à jour (UPDAT).

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 :

  • déclaration de CIs ;
  • définition d'index ;
  • modification/suppression de schéma ;
  • définition d'index ;
  • modification et suppression de schéma ;
  • transmission des droits.

 Droits sous Oracle

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.

Expression des droits en SQL

Attribution de droits

La syntaxe SQL pour donner un droit est la suivante :

GRANT <droit>

ON <relation>

TO <usager>

[WITH GRANT OPTION]

La clause WITH GRANT OPTION, optionnelle, donne le droit de transmettre le droit.

Exemples

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 ;

 Revocation des droits (SQL2)

La syntaxe SQL pour révoquer un droit est la suivante :

REVOKE <droits>

ON <relation>

TO <usager>

Exemples

REVOKE SELECT ON vins TO defude ; 

Droits et Vues 

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.