banière
Accueil Le Club JUIN 2004 Filière Informatique Services Contact


Introduction

L M D

L D D

L C D
Langages de contrôles de données

   Sommaire





   Gestion d'utilisateur

    Intérêt des permissions

Plusieurs personnes peuvent travailler simultanément sur une base de données, toutefois ces personnes n'ont pas forcément les mêmes besoins: certaines peuvent par exemple nécessiter de modifier des données dans la table, tandis que les autres ne l'utiliseront que pour la consulter. Ainsi, il est possible de définir des permissions pour chaque personne en leur octroyant un mot de passe. Cette tâche incombe à l'administrateur de la base de données (en anglais DBA, DataBase Administrator). Il doit dans un premier temps définir les besoins de chacuns, puis les appliquer à la base de donnée sous forme de permissions. Le langage SQL permet d'effectuer ce opérations grâce à deux clauses:

  • GRANT permet d'accorder des droits à un (parfois plusieurs sur certains SGBD) utilisateur
  • REVOKE permet de retirer des droits à un (ou plusieurs sur certains SGBD) utilisateur

Les permissions (appelées aussi droits ou privilèges) peuvent être définies pour chaque (un grand nombre) clause.
D'autre part il est aussi possible de définir des rôles c'est-à-dire de permettre à d'autre utilisateurs d'accorder des permissions.

    Les privilèges

Les privilèges sont les clauses qui peuvent être autorisées/retirées à un utilisateur. Les principales sont:

  • DELETE: privilège de supprimer les données d'une table
  • INSERT: privilège d'ajouter des données à une table
  • SELECT: privilège d'accèder aux données d'une table
  • UPDATE: privilège de mettre à jour les données d'une table

    Qui peut accorder/retirer des permissions?

L'unique personne pouvant accorder ou retirer des droits sur un élément (table, vue ou index) est la personne qui l'a créée. Toutefois, il lui est possible de transmettre ce droit d'accorder/retirer des droits, auquel cas la personne recevant cet "honneur" aura le droit de transmettre ce "pouvoir" sur ces éléments



   Accorder des droits

    L'attribution de permissions

La clause GRANT permet d'attribuer des permissions à un ou plusieurs utilisateurs sur un ou plusieurs éléments de la base de données. La syntaxe de cette clause est la suivante:

GRANT Liste_de_permissions ON Liste_d_objets TO Liste_d_utilisateurs 
[WITH GRANT OPTION];

L'option WITH GRANT OPTION permet de définir si l'utilisateur peut lui-même accorder à un autre utilisateur les permissions qu'on lui accorde sur les éléments

Afin d'éviter à avoir à saisir l'ensemble des utilisateurs dans le cas d'une autorisation collective ou bien de citer l'ensemble des permissions il est possible d'utiliser des mots clés:

  • Le mot clé PUBLIC en lieu et place de la liste d'utilisateurs permet d'accorder les privilèges sur le ou les objets à l'ensemble des utilisateurs
  • Le mot clé ALL en lieu et place de la liste de permissions permet d'accorder tous les privilèges aux utilisateurs présents dans la liste

En précisant entre parenthèses un nom de colonne pour un privilège, il est possible de limiter le privilège à la colonne (ou la liste de colonnes) entre parenthèses, par exemple:

GRANT UPDATE(Nom,Prenom) 
ON Etudiants 
TO Jerome,Francois,Georges 
WITH GRANT OPTION;

L'option WITH GRANT OPTION autorise donc plusieurs utilisateurs à accorder des permissions à un même utilisateur, il y a donc des règles à respecter lors du retraits des permissions à un utilisateur...



   Retirer des droits

    La révocation de permissions

La clause REVOKE permet de retirer des permissions à un ou plusieurs utilisateurs sur un ou plusieurs éléments de la base de données. La syntaxe de cette clause est la suivante:

REVOKE 
[GRANT OPTION FOR] Liste_de_permissions 
ON Liste_d_objets 
FROM Liste_d_utilisateurs;

L'option GRANT OPTION FOR permet de supprimer le droit d'un utilisateur à accorder des permissions à un autre utilisateur.

Afin d'éviter à avoir à saisir l'ensemble des utilisateurs dans le cas d'une autorisation collective ou bien de citer l'ensemble des permissions il est possible d'utiliser des mots clés:

  • Le mot clé PUBLIC en lieu et place de la liste d'utilisateurs permet de retirer les privilèges sur le ou les objets à l'ensemble des utilisateurs
  • Le mot clé ALL en lieu et place de la liste de permissions permet de retirer tous les privilèges aux utilisateurs présents dans la liste

En précisant entre parenthèses un nom de colonne pour un privilège, il est possible de limiter la restriction de privilège à la colonne (ou la liste de colonnes) entre parenthèses, par exemple:

REVOKE 
[GRANT OPTION FOR] UPDATE(Nom,Prenom) 
ON Etudiants
FROM PUBLIC

L'attribution et la révocation de droits pose deux problème:

  • lorsque l'on retire un droit à un utilisateur, il faut que ce droit soit retiré aux utilisateurs auxquels il a accordé le droit
  • un utilisateur peut avoir reçu un droit de plusieurs utilisateurs
Il s'agit donc de retirer les droits des utilisateurs l'ayant obtenu de quelqu'un qui ne l'a plus en prenant en compte le fait qu'il peut l'avoir de plusieurs personnes simultanément...

La clause REVOKE étant implé:mentée différemment selon les SGBDR, il s'agit de consulter la documentation de celui-ci...


Retour au sommaire



Source : www.commentcamarche.net

© Copyright 2003 Computer Science Association
ce site est un produit des étudiants en Informatique de l'université de Yaoundé I, et à pour but de permettre au COMSAS d'accomplir sa tâche qui n'est autre que la vulgarisation de l'informatique et l'instauration d'un esprit de partage et de solidarité entre les étudiants.
1
Hosted by www.Geocities.ws