WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Gestion d'informations. Mutation vers les bases de données relationnelles et le langage SQL.


par Jacques MUDUMBI
Université de Yaoundé 1 - Master 2017
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

IV.4. Le langage de contrôle des données (LDC)

Le langage de protections d'accès (ou Data Control Language, soit DCL en anglais) s'occupe de gérer les droits d'accès aux tables [25].

Les instructions du DCL sont : GRANT, REVOKE.

La protection des données consiste à identifier les utilisateurs et gérer les autorisations d'accès. Pour cela, une mesure fondamentale est de ne fournir aux utilisateurs qu'un accès aux tables ou aux parties de tables nécessaires à leur travail, ce que l'on appelle des vues. Grâce à elles, chaque utilisateur pourra avoir sa vision propre des données. Une vue

73

est définie en SQL grâce à la commande CREATE VIEW comme résultat d'une requête d'interrogation SELECT:

CREATE VIEW nom_vue AS SELECT ...

Cas pratique: Créer une vue constituant une restriction de la table Employés aux noms et salaire des employés du département 10 :

CREATE VIEW emp10 AS SELECT nom, salaire FROM employes WHERE _num_dep = 10;

Avec ce cas pratique, il n'y a pas de duplication des informations, mais le stockage de la définition de la vue. Une fois créée, la vue peut être interrogée exactement comme une table. Les utilisateurs pourront consulter la base à travers elle, c'est-à-dire manipuler la table résultat du SELECT comme s'il s'agissait d'une table réelle.

En revanche, il existe deux restrictions à la manipulation d'une vue par un INSERT ou un UPDATE :

Le SELECT définissant la vue ne doit pas comporter de jointure ;

Les colonnes résultats du SELECT doivent être des colonnes réelles et non pas des expressions.

Cas pratique: Augmentation de 10% des salaires du département10 à travers la vue Emp10 :

UPDATE emp10 SET salaire=salaire*1.1;

Une vue peut être supprimée ou renommée par les commandes :

DROP VIEW nom_vue ouRENAME ancien_nom TO nouveau_nom

Une protection efficace des données nécessite en outre d'autoriser ou d'interdire certaines opérations, sur les tables ou les vues, aux différentes catégories d'utilisateurs. Les commandes correspondantes sont :

GRANT type_privilege1, type_privilege2,... ON {table|vue|*} TO utilisateur; REVOKE type_privilege1, type_privilege2,... ON {table|vue|*}FROM utilisateur;

Les types de privilèges correspondent aux commandes SQL (SELECT pour la possibilité d'interroger, UPDATE pour celle de mise à jour, etc.) et les utilisateurs concernés sont désignés par leur identifiant de connexion au serveur, ou par le mot-clé PUBLIC pour désigner tous les utilisateurs.

Cas pratique: Autoriser la suppression de la vue Emp10 au seul représentant du personnel identifié par ID7788:

GRANT DELETE ON emp10 TO ID7788;

Gestion des transactions. Une transaction est un ensemble de modifications de la base qui forment un tout indivisible, qu'il faut effectuer entièrement ou pas du tout, sous peine de laisser la base dans un état incohérent. SQL permet aux utilisateurs de gérer leurs transactions:

74

la commande COMMIT permet de valider une transaction. Les modifications deviennent définitives et visibles à tous les utilisateurs [23];

la commande ROLLBACK permet à tout moment d'annuler la transaction en cours. Toutes les modifications effectuées depuis le début de la transaction sont alors défaites [23].

Enfin, pour assurer ainsi l'intégrité de la base en cas d'interruption anormale d'une tâche utilisateur, les SGBD dits transactionnels utilisent un mécanisme de verrouillage qui empêche deux utilisateurs d'effectuer des transactions incompatibles.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il faudrait pour le bonheur des états que les philosophes fussent roi ou que les rois fussent philosophes"   Platon