Académique Documents
Professionnel Documents
Culture Documents
Université de Sousse
Séance de Cours
Chapitre 7 :
Contrôle des données
2021-2022
I. Introduction
Dans tout système multi-utilisateur, l’usager d’un SGBD doit être identifié avant
de pouvoir utiliser des ressources.
L’accès aux informations et à la base de données doit être contrôlé à des fins de
sécurité et de cohérence.
La figure suivante illustre un groupe d’utilisateurs dans lequel existe une classification
entre ceux qui peuvent consulter, mettre à jour, supprimer, voire les tables, …
2
I. Introduction
Nous verrons dans ce chapitre les aspects du langage SQL qui concernent le contrôle
des données et des accès. Nous étudierons :
● la gestion des utilisateurs
● la gestion des privilèges qui permettent de donner des droits sur la base de données
● la gestion des rôles qui regroupent des privilèges système ou objets.
Un utilisateur est identifié au niveau de la base par son nom et peut se connecter puis
accéder aux objets de la base sous réserve d’avoir reçu un certain nombre de privilèges.
Un schéma est une collection nommée (du nom de l’utilisateur qui en est propriétaire)
d’objets (tables, vues, séquences, index, procédures, etc.).
3
II. Gestion des utilisateurs
II.1 Création d’un utilisateur (CREATE USER)
Syntaxe :
CREATE USER utilisateur IDENTIFIED BY motdePasse
[ DEFAULT TABLESPACE nomTablespace
[QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace ] ]
[TEMPORARY TABLESPACE nomTablespace
[QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace ].]
[PROFILE nomProfil ] [PASSWORD EXPIRE ] [ ACCOUNT { LOCK |
UNLOCK } ] ;
IDENTIFIED BY motdePasse : permet d’affecter un mot de passe à un utilisateur
local .
DEFAULT TABLESPACE nomTablespace : associe un espace disque de travail
à l’utilisateur.
TEMPORARY TABLESPACE nomTablespace : associe un espace disque temporaire
(dans lequel certaines opérations se dérouleront) à l’utilisateur.
4
II. Gestion des utilisateurs
II.1 Création d’un utilisateur (CREATE USER) : suite
QUOTA : permet de limiter ou pas chaque espace alloué.
5
II. Gestion des utilisateurs
Tablespace
Un tablespace Oracle est une structure logique qui regroupe des fichiers du
système d'exploitation.
C'est dans les tablespaces que se trouvent les différents objets d'une base de
données : tables, indexes, undo segments, segments de tri, dictionnaire de données.
6
II. Gestion des utilisateurs
II.1 Création d’un utilisateur (CREATE USER) : Exemple
Oracle ne supprime pas par défaut un utilisateur s’il possède des objets (tables,
séquences, index, déclencheurs, etc.).
L’option CASCADE force la suppression et détruit tous les objets du schéma de
l’utilisateur.
7
II. Gestion des utilisateurs
II.3 Privilèges d'accès à une base de donnée
Les utilisateurs, une fois créés n’ont aucun droit (Privilèges )sur la base de données
sur laquelle ils sont connectés.
Un privilège est un droit d’exécuter une certaine instruction SQL (on parle de
privilège système), ou un droit d’accéder à un certain objet d’un autre schéma (on
parle de privilège objet). Les privilèges qui peuvent être donnés sont les suivants :
SELECT droit de lecture
INSERT droit d'insertion de lignes
UPDATE droit de modification de lignes
UPDATE (col1, col2, ...) droit de modification de lignes limité à certaines colonnes
DELETE droit de suppression de lignes
ALTER droit de modification de la définition de la table
INDEX droit de création d'index
ALL tous les droits ci-dessus 8
II. Gestion des utilisateurs
II.4 Attribution de privilèges système (GRANT)
Syntaxe :
GRANT privilège ON table /vue TO utilisateur [WITH GRANT OPTION]
10
III. Les Rôles
III.1 Présentation
• Un rôle est un ensemble nommé de privilèges.
La chronologie des actions à entreprendre pour travailler avec des rôles est la suivante :
IDENTIFIED : indique que l’utilisateur doit être autorisé par une méthode (locale
par un mot de passe) avant que le rôle soit activé par SET ROLE.
12
III. Rôles
III.2 Création d’un rôle (CREATE ROLE)
Exemple :
16
III. Rôles
III.4 Modification d’un rôle (ALTER ROLE)
ALTER ROLE nomRôle
Syntaxe :
[ NOT IDENTIFIED | IDENTIFIED { BY motdePasse | USING
[schéma.]paquetage | EXTERNALLY |GLOBALLY } ] ;
Il s'agit de la modification d’un rôle au niveau de l’identification
Exemple :
ALTER ROLE Supprime_Pilotes
IDENTIFIED BY Ouille;
III.4 Suppression d’un rôle (DROP ROLE)
Syntaxe :
DROP ROLE nomRôle;
17
IV. Administration
Activation de l'affichage :
-- pour que la commande DBMS_OUTPUT fonctionne il faut activer le serveroutput
-- comme suit
-- sql> set serveroutput on
19
IV. Administration
Information sur les contraintes
Le dictionnaire de données conserve les informations sur les contraintes définies sur
la base. On peut les retrouver dans les vues:
20
IV. Administration
Information sur les contraintes
21
IV. Administration
Information sur les contraintes
Le dictionnaire de données conserve les informations sur les contraintes définies sur
la base. On peut les retrouver dans les vues:
CONSTRAINT_DEFS, USER_CONSTRAINTS,
USERS_CONS_COLUMNS, USER_CROSS_REFS,
Exemple:
Select constraint_name, constraint_type, table_name, r_constraint_name
from user_constraints;
23
V. Transaction
Information sur les contraintes
On peut désigner des points de reprise dans une transaction :
savepoint nomPoint
On peut ensuite annuler toutes les modifications effectuées depuis un
point de reprise s'il y a eu des problèmes :
rollback to nomPoint
On évite ainsi d'annuler toute la transaction et on peut essayer de
pallier le problème au lieu d'annuler la transaction globale.
24
V. Transaction
Information sur les contraintes
On peut désigner des points de reprise dans une transaction :
savepoint nomPoint
On peut ensuite annuler toutes les modifications effectuées depuis un
point de reprise s'il y a eu des problèmes :
rollback to nomPoint
On évite ainsi d'annuler toute la transaction et on peut essayer de
pallier le problème au lieu d'annuler la transaction globale.
25
V. Transaction
Information sur les contraintes
On peut désigner des points de reprise dans une transaction :
savepoint nomPoint
On peut ensuite annuler toutes les modifications effectuées depuis un
point de reprise s'il y a eu des problèmes :
rollback to nomPoint
On évite ainsi d'annuler toute la transaction et on peut essayer de
pallier le problème au lieu d'annuler la transaction globale.
26
V. Transaction
Sauvegarde de la session de travails
On SPOOL fichier
enregistre dans le fichier les commandes tapées ensuite par
l'utilisateur, et les réponses d'Oracle.
SPOOL OFF
arrête cette sauvegarde.
27