0% ont trouvé ce document utile (0 vote)
17 vues303 pages

Data Base Avanc EPI Chap1

Transféré par

Nawress Jedidi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues303 pages

Data Base Avanc EPI Chap1

Transféré par

Nawress Jedidi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Gestion des utilisateurs

Gestion des privilèges


Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Bases de données avancées


4ème année ingénieur en informatique

Chapitre 1: Admininstration des bases de données

Dr. Bochra RABBOUCH


(E-mail: [email protected])

EPI Digital School


Université de Sousse
AU:2022/2023

1 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Administration des bases de données


Prérequis
Modèle relationnel (structure, contraintes, SQL, PL/SQL)

Objectifs
Contrôle de l’accès à la base de données
Autorisation d’accès aux objets de la base
La gestion des rôles qui regroupent des privilèges système ou
objets affectés aux utilisateurs
La gestion des synonymes et des profils utilisateurs
La gestion des vues
Utilisation du dictionnaire des données Oracle
2 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Administration des bases de données


Prérequis
Modèle relationnel (structure, contraintes, SQL, PL/SQL)

Objectifs
Contrôle de l’accès à la base de données
Autorisation d’accès aux objets de la base
La gestion des rôles qui regroupent des privilèges système ou
objets affectés aux utilisateurs
La gestion des synonymes et des profils utilisateurs
La gestion des vues
Utilisation du dictionnaire des données Oracle
2 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Administration des bases de données

Motivation
Dans un environnement multi-utilisateur, on souhaite gérer la
sécurité d’accès et d’utilisation de la base de données.
La sécurité d’une BD est un ensemble de mécanismes de
protection de la BD contre les menaces accidentelles ou
intentionnelles qui risquent de porter atteinte au système (Vol,
fraude,Perte de la confidentialité, Les atteintes à la vie
privée,La perte d’intégrité, la perte de disponibilité)

3 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Administration des bases de données

Motivation
Dans un environnement multi-utilisateur, on souhaite gérer la
sécurité d’accès et d’utilisation de la base de données.
La sécurité d’une BD est un ensemble de mécanismes de
protection de la BD contre les menaces accidentelles ou
intentionnelles qui risquent de porter atteinte au système (Vol,
fraude,Perte de la confidentialité, Les atteintes à la vie
privée,La perte d’intégrité, la perte de disponibilité)

3 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Motivation
L’administration de données consiste à :
La gestion des utilisateurs : à qui on associe des espaces de
stockage (tablespaces) dans lesquels se trouveront leurs objets
(tables, index, séquences, etc.) ;
La gestion des privilèges : donner des droits sur la base de
données (privilèges système) et sur les données de la base
(privilèges objets) ;
La gestion des rôles : regroupent des privilèges système ou
objets affectés par la suite à un ou plusieurs utilisateurs ;
La gestion des vues ;
L’utilisation du dictionnaire des données.
DESC dictionary;
select * from dictionary;
4 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction
Objets manipulés par Oracle
Les tables
Les vues: une vue est une table virtuelle contenant une partie
d’une ou plusieurs tables. Elles permettent un accès simplifié aux
données et assurent la confidentialité des données puisque elles
restreignent les droits d’accès.
User: Utilisateurs du système Oracle .
Les séquences: générateurs de numéros uniques.
Les synonymes: autre désignation pour les objets de la base de
données et est utilisé pour faciliter l’accès à un objet
Les procédures: programme PL/SQL prêt à être exécuté
Les déclencheurs: procédure déclenchée (TRIGGER)
5 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction

Tablespace
Un tablespace est un espace logique qui contient les objets
stockés dans la base de données comme les vues, tables,
séquences..).
En absence de la clause des tablespace lors de la création de
l’utilisateur (le schéma), le tablespace USERS est associé à
l’utilisateur en tant qu’espace de travail et d’espace
temporaire.

6 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction

Tablespace
Un tablespace est un espace logique qui contient les objets
stockés dans la base de données comme les vues, tables,
séquences..).
En absence de la clause des tablespace lors de la création de
l’utilisateur (le schéma), le tablespace USERS est associé à
l’utilisateur en tant qu’espace de travail et d’espace
temporaire.

6 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction

Tablespace
Il existe d’autres tablespaces créés par Oracle:
le tablesapace USERS généralement utilisé comme espace par défaut
le tablespace TEMP pour l’espace temporaire
le tablespace UNDO (réservé exclusivement à l’annulation des
commandes (UPDATE, INSERT, etc.). Lorsqu’on exécute l’ordre
DELETE par exemple, Oracle commence par copier les lignes à
supprimer dans le tablespace UNDO et ensuite indique que les blocs
contenant les données dans le tablespace d’origine sont libres. Un
ROLLBACK permettre de revenir en arrière alors que le COMMIT
supprimera les lignes du tablespace UNDO.

7 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction

Tablespace
Il existe d’autres tablespaces créés par Oracle:
le tablesapace USERS généralement utilisé comme espace par défaut
le tablespace TEMP pour l’espace temporaire
le tablespace UNDO (réservé exclusivement à l’annulation des
commandes (UPDATE, INSERT, etc.). Lorsqu’on exécute l’ordre
DELETE par exemple, Oracle commence par copier les lignes à
supprimer dans le tablespace UNDO et ensuite indique que les blocs
contenant les données dans le tablespace d’origine sont libres. Un
ROLLBACK permettre de revenir en arrière alors que le COMMIT
supprimera les lignes du tablespace UNDO.

7 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Introduction

Tablespace
Il existe d’autres tablespaces créés par Oracle:
le tablesapace USERS généralement utilisé comme espace par défaut
le tablespace TEMP pour l’espace temporaire
le tablespace UNDO (réservé exclusivement à l’annulation des
commandes (UPDATE, INSERT, etc.). Lorsqu’on exécute l’ordre
DELETE par exemple, Oracle commence par copier les lignes à
supprimer dans le tablespace UNDO et ensuite indique que les blocs
contenant les données dans le tablespace d’origine sont libres. Un
ROLLBACK permettre de revenir en arrière alors que le COMMIT
supprimera les lignes du tablespace UNDO.

7 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Plan

1 Gestion des utilisateurs


2 Gestion des privilèges
3 Gestion des synonymes
4 Gestion des profils
5 Gestion des vues
6 Gestion des transactions
7 Le dictionnaire de données

8 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

La notion de USER
Un utilisateur (user) 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.

9 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

La notion de USER
Un utilisateur (user) 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.

9 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

DBA (DataBase Administrator)


Il en existe au moins un. Une petite base peut n’avoir qu’un
seul administrateur. Une base importante peut en regrouper
plusieurs qui se partagent les tâches suivantes :
Installation du SGBD ;
Définition du schéma conceptuel des données;
Création de la base de données et contrôle de son évolution;
Assurer la correspondance entre le schéma conceptuel et les
fonctionnalités du SGBD de façon à en tirer les meilleurs
profits en terme de performance, d’intégrité et de sécurité;
Gestion des utilisateurs et des objets ;
Contact avec le support technique d’Oracle;

10 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

DBA (DataBase Administrator)


Il en existe au moins un. Une petite base peut n’avoir qu’un
seul administrateur. Une base importante peut en regrouper
plusieurs qui se partagent les tâches suivantes :
Installation du SGBD ;
Définition du schéma conceptuel des données;
Création de la base de données et contrôle de son évolution;
Assurer la correspondance entre le schéma conceptuel et les
fonctionnalités du SGBD de façon à en tirer les meilleurs
profits en terme de performance, d’intégrité et de sécurité;
Gestion des utilisateurs et des objets ;
Contact avec le support technique d’Oracle;

10 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

DBA (DataBase Administrator)


Il en existe au moins un. Une petite base peut n’avoir qu’un
seul administrateur. Une base importante peut en regrouper
plusieurs qui se partagent les tâches suivantes :
Installation du SGBD ;
Définition du schéma conceptuel des données;
Création de la base de données et contrôle de son évolution;
Assurer la correspondance entre le schéma conceptuel et les
fonctionnalités du SGBD de façon à en tirer les meilleurs
profits en terme de performance, d’intégrité et de sécurité;
Gestion des utilisateurs et des objets ;
Contact avec le support technique d’Oracle;

10 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

DBA (DataBase Administrator)


Il en existe au moins un. Une petite base peut n’avoir qu’un
seul administrateur. Une base importante peut en regrouper
plusieurs qui se partagent les tâches suivantes :
Installation du SGBD ;
Définition du schéma conceptuel des données;
Création de la base de données et contrôle de son évolution;
Assurer la correspondance entre le schéma conceptuel et les
fonctionnalités du SGBD de façon à en tirer les meilleurs
profits en terme de performance, d’intégrité et de sécurité;
Gestion des utilisateurs et des objets ;
Contact avec le support technique d’Oracle;

10 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

DBA (DataBase Administrator)


Il en existe au moins un. Une petite base peut n’avoir qu’un
seul administrateur. Une base importante peut en regrouper
plusieurs qui se partagent les tâches suivantes :
Installation du SGBD ;
Définition du schéma conceptuel des données;
Création de la base de données et contrôle de son évolution;
Assurer la correspondance entre le schéma conceptuel et les
fonctionnalités du SGBD de façon à en tirer les meilleurs
profits en terme de performance, d’intégrité et de sécurité;
Gestion des utilisateurs et des objets ;
Contact avec le support technique d’Oracle;

10 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

DBA (DataBase Administrator)


Il en existe au moins un. Une petite base peut n’avoir qu’un
seul administrateur. Une base importante peut en regrouper
plusieurs qui se partagent les tâches suivantes :
Installation du SGBD ;
Définition du schéma conceptuel des données;
Création de la base de données et contrôle de son évolution;
Assurer la correspondance entre le schéma conceptuel et les
fonctionnalités du SGBD de façon à en tirer les meilleurs
profits en terme de performance, d’intégrité et de sécurité;
Gestion des utilisateurs et des objets ;
Contact avec le support technique d’Oracle;

10 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

DBA (DataBase Administrator)


Il en existe au moins un. Une petite base peut n’avoir qu’un
seul administrateur. Une base importante peut en regrouper
plusieurs qui se partagent les tâches suivantes :
Installation du SGBD ;
Définition du schéma conceptuel des données;
Création de la base de données et contrôle de son évolution;
Assurer la correspondance entre le schéma conceptuel et les
fonctionnalités du SGBD de façon à en tirer les meilleurs
profits en terme de performance, d’intégrité et de sécurité;
Gestion des utilisateurs et des objets ;
Contact avec le support technique d’Oracle;

10 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

Les développeurs d’application


Ceux qui développent les programme selon une logique
déterminée et agissent ainsi sur les objets de la base de
données (tables, index, séquences, etc.).

Les administrateurs d’applications


gèrent les données manipulées par l’application. Pour les
petites et les moyennes bases, le DBA joue ce rôle.

11 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

Les développeurs d’application


Ceux qui développent les programme selon une logique
déterminée et agissent ainsi sur les objets de la base de
données (tables, index, séquences, etc.).

Les administrateurs d’applications


gèrent les données manipulées par l’application. Pour les
petites et les moyennes bases, le DBA joue ce rôle.

11 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

Les développeurs d’application


Ceux qui développent les programme selon une logique
déterminée et agissent ainsi sur les objets de la base de
données (tables, index, séquences, etc.).

Les administrateurs d’applications


gèrent les données manipulées par l’application. Pour les
petites et les moyennes bases, le DBA joue ce rôle.

11 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

Les utilisateurs
Ceux qui se connectent et interagissent avec la base à travers
les applications ou à l’aide d’outils (interrogations pour la
génération de rapports, ajouts, modifications ou suppressions
d’enregistrements).

Remarque
Tous seront des utilisateurs (USERS au sens Oracle) avec des
privilèges différents.

12 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

Les utilisateurs
Ceux qui se connectent et interagissent avec la base à travers
les applications ou à l’aide d’outils (interrogations pour la
génération de rapports, ajouts, modifications ou suppressions
d’enregistrements).

Remarque
Tous seront des utilisateurs (USERS au sens Oracle) avec des
privilèges différents.

12 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Types des utilisateurs

Les utilisateurs
Ceux qui se connectent et interagissent avec la base à travers
les applications ou à l’aide d’outils (interrogations pour la
génération de rapports, ajouts, modifications ou suppressions
d’enregistrements).

Remarque
Tous seront des utilisateurs (USERS au sens Oracle) avec des
privilèges différents.

12 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur
Pour pouvoir créer un utilisateur vous devez posséder le privilège
CREATE USER
Syntaxe
CREATE USER utilisateur IDENTIFIED
{ BY motdePasse | EXTERNALLY | GLOBALLY AS ’nomExterne’
}
[ 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 } ] ;
13 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur
Pour pouvoir créer un utilisateur vous devez posséder le privilège
CREATE USER
Syntaxe
CREATE USER utilisateur IDENTIFIED
{ BY motdePasse | EXTERNALLY | GLOBALLY AS ’nomExterne’
}
[ 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 } ] ;
13 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur

Options
IDENTIFIED BY motdePasse: permet d’affecter un mot de
passe à un utilisateur .
Exemple : CREATE USER ahmed
IDENTIFIED BY ahmed;
IDENTIFIED EXTERNALLY : permet de se servir de
l’authenticité du système d’exploitation pour s’identifier à
Oracle. le password de la BD est celui qui a été utilisé pour
accéder au système. Inconvénient: dans le cas de piratage du
système, la BD est aussi dans le risque.
Exemple : CREATE USER ahmed
IDENTIFIED EXTERNALLY;

14 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur

Options
IDENTIFIED BY motdePasse: permet d’affecter un mot de
passe à un utilisateur .
Exemple : CREATE USER ahmed
IDENTIFIED BY ahmed;
IDENTIFIED EXTERNALLY : permet de se servir de
l’authenticité du système d’exploitation pour s’identifier à
Oracle. le password de la BD est celui qui a été utilisé pour
accéder au système. Inconvénient: dans le cas de piratage du
système, la BD est aussi dans le risque.
Exemple : CREATE USER ahmed
IDENTIFIED EXTERNALLY;

14 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur

Options
IDENTIFIED BY motdePasse: permet d’affecter un mot de
passe à un utilisateur .
Exemple : CREATE USER ahmed
IDENTIFIED BY ahmed;
IDENTIFIED EXTERNALLY : permet de se servir de
l’authenticité du système d’exploitation pour s’identifier à
Oracle. le password de la BD est celui qui a été utilisé pour
accéder au système. Inconvénient: dans le cas de piratage du
système, la BD est aussi dans le risque.
Exemple : CREATE USER ahmed
IDENTIFIED EXTERNALLY;

14 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur
Options
IDENTIFIED GLOBALLY AS ’nomExterne’: des utilisateurs
globaux dont l’accès à la base de données se fait à partir des
rôles globaux autorisés par la direction d’une entreprise par
exemple. Généralement les ’nomExterne’ sont générés par des
SSL (Secure Sockets Layer)
Exemple : CREATE USER ahmed IDENTIFIED GLOBALLY
AS ’CN=manager,OU=division1,O=oracle,C=US’;
DEFAULT TABLESPACE nomTablespace: associe un
tablespace à l’utilisateur.
TEMPORARY TABLESPACE nomTablespace: associe un
tablespace temporaire (dans lequel certaines opérations se
dérouleront) à l’utilisateur.
15 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur
Options
IDENTIFIED GLOBALLY AS ’nomExterne’: des utilisateurs
globaux dont l’accès à la base de données se fait à partir des
rôles globaux autorisés par la direction d’une entreprise par
exemple. Généralement les ’nomExterne’ sont générés par des
SSL (Secure Sockets Layer)
Exemple : CREATE USER ahmed IDENTIFIED GLOBALLY
AS ’CN=manager,OU=division1,O=oracle,C=US’;
DEFAULT TABLESPACE nomTablespace: associe un
tablespace à l’utilisateur.
TEMPORARY TABLESPACE nomTablespace: associe un
tablespace temporaire (dans lequel certaines opérations se
dérouleront) à l’utilisateur.
15 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur
Options
IDENTIFIED GLOBALLY AS ’nomExterne’: des utilisateurs
globaux dont l’accès à la base de données se fait à partir des
rôles globaux autorisés par la direction d’une entreprise par
exemple. Généralement les ’nomExterne’ sont générés par des
SSL (Secure Sockets Layer)
Exemple : CREATE USER ahmed IDENTIFIED GLOBALLY
AS ’CN=manager,OU=division1,O=oracle,C=US’;
DEFAULT TABLESPACE nomTablespace: associe un
tablespace à l’utilisateur.
TEMPORARY TABLESPACE nomTablespace: associe un
tablespace temporaire (dans lequel certaines opérations se
dérouleront) à l’utilisateur.
15 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur
Options
IDENTIFIED GLOBALLY AS ’nomExterne’: des utilisateurs
globaux dont l’accès à la base de données se fait à partir des
rôles globaux autorisés par la direction d’une entreprise par
exemple. Généralement les ’nomExterne’ sont générés par des
SSL (Secure Sockets Layer)
Exemple : CREATE USER ahmed IDENTIFIED GLOBALLY
AS ’CN=manager,OU=division1,O=oracle,C=US’;
DEFAULT TABLESPACE nomTablespace: associe un
tablespace à l’utilisateur.
TEMPORARY TABLESPACE nomTablespace: associe un
tablespace temporaire (dans lequel certaines opérations se
dérouleront) à l’utilisateur.
15 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur

Options
QUOTA: permet de limiter ou pas chaque espace alloué.
PROFILE : nomProfil affecte un profil (caractéristiques
système relatives au CPU et aux connexions) à l’utilisateur.
En absence de profil, le profil DEFAULT est affecté à
l’utilisateur.
PASSWORD EXPIRE : pour obliger l’utilisateur à changer son
mot de passe à la première connexion (par défaut il est libre).
ACCOUNT : pour verrouiller ou libérer l’accès à la base (par
défaut UNLOCK)

16 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur

Options
QUOTA: permet de limiter ou pas chaque espace alloué.
PROFILE : nomProfil affecte un profil (caractéristiques
système relatives au CPU et aux connexions) à l’utilisateur.
En absence de profil, le profil DEFAULT est affecté à
l’utilisateur.
PASSWORD EXPIRE : pour obliger l’utilisateur à changer son
mot de passe à la première connexion (par défaut il est libre).
ACCOUNT : pour verrouiller ou libérer l’accès à la base (par
défaut UNLOCK)

16 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur

Options
QUOTA: permet de limiter ou pas chaque espace alloué.
PROFILE : nomProfil affecte un profil (caractéristiques
système relatives au CPU et aux connexions) à l’utilisateur.
En absence de profil, le profil DEFAULT est affecté à
l’utilisateur.
PASSWORD EXPIRE : pour obliger l’utilisateur à changer son
mot de passe à la première connexion (par défaut il est libre).
ACCOUNT : pour verrouiller ou libérer l’accès à la base (par
défaut UNLOCK)

16 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Création d’utilisateur

Options
QUOTA: permet de limiter ou pas chaque espace alloué.
PROFILE : nomProfil affecte un profil (caractéristiques
système relatives au CPU et aux connexions) à l’utilisateur.
En absence de profil, le profil DEFAULT est affecté à
l’utilisateur.
PASSWORD EXPIRE : pour obliger l’utilisateur à changer son
mot de passe à la première connexion (par défaut il est libre).
ACCOUNT : pour verrouiller ou libérer l’accès à la base (par
défaut UNLOCK)

16 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Table: Création d’utilisateur: Exemple

Instructions SQL Explications


CREATE USER Ahmed
IDENTIFIED BY Etudiant Le mot de passe.
DEFAULT TABLESPACE USERS Les objets sont stockés dans le tablsespace
USERS
QUOTA 10M ON USERS Ses objets dans USERS ne dépassent pas les
10 mégaoctets .
TEMPORARY TABLESPACE TEMP certaines de ses opérations nécessiteront de
ranger des données dans TEMP.
QUOTA 5M ON TEMP pas plus de 5 mégaoctets.
PASSWORD EXPIRE; Il devra changer son mot de passe à la première
connexion. 17 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Table: Création d’utilisateur: Exemple


Instructions SQL Explications
CREATE USER Ahmed
IDENTIFIED BY Etudiant Le mot de passe.
DEFAULT TABLESPACE USERS Les objets sont stockés dans le tablsespace
USERS
ACCOUNT LOCK; Le compte est pour l’instant bloqué.

18 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Quelques utilisateurs connus

Lors de l’installation d’Oracle, on note deux utilisateurs connus


SYS : Le premier est le propriétaire des tables du dictionnaire
de données.
SYSTEM (mot de passe par défaut : MANAGER ou
SYSTEM). cet utilisateur est le DBA offert par Oracle (peut
retransmettre ses privilèges). Il peut effectuer des tâches
administratives comme la création des autres utilisateurs ainsi
que les accorder le rôle DBA ( qui contient tous les privilèges
système)

19 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Quelques utilisateurs connus

Lors de l’installation d’Oracle, on note deux utilisateurs connus


SYS : Le premier est le propriétaire des tables du dictionnaire
de données.
SYSTEM (mot de passe par défaut : MANAGER ou
SYSTEM). cet utilisateur est le DBA offert par Oracle (peut
retransmettre ses privilèges). Il peut effectuer des tâches
administratives comme la création des autres utilisateurs ainsi
que les accorder le rôle DBA ( qui contient tous les privilèges
système)

19 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Quelques utilisateurs connus

Lors de l’installation d’Oracle, on note deux utilisateurs connus


SYS : Le premier est le propriétaire des tables du dictionnaire
de données.
SYSTEM (mot de passe par défaut : MANAGER ou
SYSTEM). cet utilisateur est le DBA offert par Oracle (peut
retransmettre ses privilèges). Il peut effectuer des tâches
administratives comme la création des autres utilisateurs ainsi
que les accorder le rôle DBA ( qui contient tous les privilèges
système)

19 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Modification d’un utilisateur

L’administrateur de base de données crée le compte


d’utilisateur et initialise son mot de passe qui peut être
modifié par la suite grâce à l’instruction ALTER USER.
ALTER USER est aussi utilisée pour modifier les
caractéristiques d’un utilisateur

Changement de mot de passe


ALTER USER nomUser
IDENTIFIED BY nouveaupassword;

20 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Modification d’un utilisateur

L’administrateur de base de données crée le compte


d’utilisateur et initialise son mot de passe qui peut être
modifié par la suite grâce à l’instruction ALTER USER.
ALTER USER est aussi utilisée pour modifier les
caractéristiques d’un utilisateur

Changement de mot de passe


ALTER USER nomUser
IDENTIFIED BY nouveaupassword;

20 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Modification d’un utilisateur

L’administrateur de base de données crée le compte


d’utilisateur et initialise son mot de passe qui peut être
modifié par la suite grâce à l’instruction ALTER USER.
ALTER USER est aussi utilisée pour modifier les
caractéristiques d’un utilisateur

Changement de mot de passe


ALTER USER nomUser
IDENTIFIED BY nouveaupassword;

20 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Modification d’un utilisateur


Syntaxe
ALTER USER utilisateur IDENTIFIED
{ BY motdePasse | EXTERNALLY | GLOBALLY AS ’nomExterne’
}
[ DEFAULT TABLESPACE nomTablespace
[QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace] ]
[TEMPORARY TABLESPACE nomTablespace
[QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace ].]
[PROFILE nomProfil ]
[ DEFAULT ROLE { rôle1 [,rôle2].. | ALL [EXCEPT rôle1
[,rôle2]..] | NONE } [PASSWORD EXPIRE ] [ ACCOUNT { LOCK
| UNLOCK } ] ;
21 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Modification d’un utilisateur

Options
DEFAULT ROLE : affecte à l’utilisateur des rôles qui sont en
fait des ensembles de privilèges.

Remarque
Les changements seront opérationnels aux prochaines sessions de
l’utilisateur

22 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Modification d’un utilisateur

Options
DEFAULT ROLE : affecte à l’utilisateur des rôles qui sont en
fait des ensembles de privilèges.

Remarque
Les changements seront opérationnels aux prochaines sessions de
l’utilisateur

22 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur

Syntaxe
DROP USER utilisateur [CASCADE];

Oracle ne supprime pas par défaut un utilisateur s’il possède


des objets (tables, séquences, etc.).
L’option CASCADE force la suppression et détruit tous les
objets du schéma de l’utilisateur

23 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur

Syntaxe
DROP USER utilisateur [CASCADE];

Oracle ne supprime pas par défaut un utilisateur s’il possède


des objets (tables, séquences, etc.).
L’option CASCADE force la suppression et détruit tous les
objets du schéma de l’utilisateur

23 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur

Syntaxe
DROP USER utilisateur [CASCADE];

Oracle ne supprime pas par défaut un utilisateur s’il possède


des objets (tables, séquences, etc.).
L’option CASCADE force la suppression et détruit tous les
objets du schéma de l’utilisateur

23 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur


Remarques
La suppression d’un utilisateur se fait à l’aide de la commande
DROP USER et sous réserve d’avoir le privilège de
suppression DROP USER.
Un utilisateur connecté ne peut pas être supprimé en direct
avec cette commande.
Pour forcer cette suppression, il faut arrêter ses sessions par la
commande ALTER SYSTEM et l’option KILL SESSION.
Les contraintes d’intégrité d’autres schémas qui référençaient
des tables du schéma à détruire sont aussi supprimées.
Les rôles définis par l’utilisateur à supprimer ne sont pas
détruits par l’instruction DROP USER.
24 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur


Remarques
La suppression d’un utilisateur se fait à l’aide de la commande
DROP USER et sous réserve d’avoir le privilège de
suppression DROP USER.
Un utilisateur connecté ne peut pas être supprimé en direct
avec cette commande.
Pour forcer cette suppression, il faut arrêter ses sessions par la
commande ALTER SYSTEM et l’option KILL SESSION.
Les contraintes d’intégrité d’autres schémas qui référençaient
des tables du schéma à détruire sont aussi supprimées.
Les rôles définis par l’utilisateur à supprimer ne sont pas
détruits par l’instruction DROP USER.
24 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur


Remarques
La suppression d’un utilisateur se fait à l’aide de la commande
DROP USER et sous réserve d’avoir le privilège de
suppression DROP USER.
Un utilisateur connecté ne peut pas être supprimé en direct
avec cette commande.
Pour forcer cette suppression, il faut arrêter ses sessions par la
commande ALTER SYSTEM et l’option KILL SESSION.
Les contraintes d’intégrité d’autres schémas qui référençaient
des tables du schéma à détruire sont aussi supprimées.
Les rôles définis par l’utilisateur à supprimer ne sont pas
détruits par l’instruction DROP USER.
24 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur


Remarques
La suppression d’un utilisateur se fait à l’aide de la commande
DROP USER et sous réserve d’avoir le privilège de
suppression DROP USER.
Un utilisateur connecté ne peut pas être supprimé en direct
avec cette commande.
Pour forcer cette suppression, il faut arrêter ses sessions par la
commande ALTER SYSTEM et l’option KILL SESSION.
Les contraintes d’intégrité d’autres schémas qui référençaient
des tables du schéma à détruire sont aussi supprimées.
Les rôles définis par l’utilisateur à supprimer ne sont pas
détruits par l’instruction DROP USER.
24 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Types des utilisateurs
Gestion des vues Création d’utilisateur
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un utilisateur


Remarques
La suppression d’un utilisateur se fait à l’aide de la commande
DROP USER et sous réserve d’avoir le privilège de
suppression DROP USER.
Un utilisateur connecté ne peut pas être supprimé en direct
avec cette commande.
Pour forcer cette suppression, il faut arrêter ses sessions par la
commande ALTER SYSTEM et l’option KILL SESSION.
Les contraintes d’intégrité d’autres schémas qui référençaient
des tables du schéma à détruire sont aussi supprimées.
Les rôles définis par l’utilisateur à supprimer ne sont pas
détruits par l’instruction DROP USER.
24 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Plan

1 Gestion des utilisateurs


2 Gestion des privilèges
3 Gestion des synonymes
4 Gestion des profils
5 Gestion des vues
6 Gestion des transactions
7 Le dictionnaire de données

25 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des Privilèges

Privilèges
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).
Un utilisateur doit disposer de privilège système pour accéder
à la base de données et de privilège objet pour manipuler le
contenu des objets de la base.
Il peut également disposer de privilèges qui lui permet
d’accorder d’autres privilèges à d’autres utilisateurs ou à des
rôles.
26 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des Privilèges

Privilèges
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).
Un utilisateur doit disposer de privilège système pour accéder
à la base de données et de privilège objet pour manipuler le
contenu des objets de la base.
Il peut également disposer de privilèges qui lui permet
d’accorder d’autres privilèges à d’autres utilisateurs ou à des
rôles.
26 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des Privilèges

Privilèges
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).
Un utilisateur doit disposer de privilège système pour accéder
à la base de données et de privilège objet pour manipuler le
contenu des objets de la base.
Il peut également disposer de privilèges qui lui permet
d’accorder d’autres privilèges à d’autres utilisateurs ou à des
rôles.
26 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Privilèges système

Figure: Quelques privilèges système [1]

27 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Privilèges système

La mention ANY
Les privilèges assortis de la mention ANY donnent la possibilité au
bénéficiaire de s’en servir dans tout schéma.
Exemple: le privilège CREATE ANY TABLE permet de créer des
tables dans tout schéma alors que le privilège CREATE TABLE
ne permet de créer des tables que dans son propre schéma.

28 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Privilèges système

La mention ANY
Les privilèges assortis de la mention ANY donnent la possibilité au
bénéficiaire de s’en servir dans tout schéma.
Exemple: le privilège CREATE ANY TABLE permet de créer des
tables dans tout schéma alors que le privilège CREATE TABLE
ne permet de créer des tables que dans son propre schéma.

28 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges système (GRANT)

Syntaxe
GRANT { privilègeSystème | nomRôle | ALL PRIVILEGES }
[, { privilègeSystème | nomRôle | ALL PRIVILEGES }]..
TO { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle |
PUBLIC } ]..
[ IDENTIFIED BY motdePasse ]
[ WITH ADMIN OPTION ] ;

29 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges système (GRANT)

privilègeSystème : description du privilège système (exemple


CREATE TABLE, CREATE VIEW, etc.).
ALL PRIVILEGES : tous les privilèges système.
PUBLIC : pour attribuer le(s) privilège(s) à tous les
utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant dans
la base. Cette option n’est pas valide si le bénéficiaire est un
rôle ou est PUBLIC.
WITH ADMIN OPTION : permet d’attribuer aux bénéficiaires
le droit de retransmettre le(s) privilège(s) reçu(s) à une tierce
personne (utilisateur(s) ou rôle(s)).
30 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges système (GRANT)

privilègeSystème : description du privilège système (exemple


CREATE TABLE, CREATE VIEW, etc.).
ALL PRIVILEGES : tous les privilèges système.
PUBLIC : pour attribuer le(s) privilège(s) à tous les
utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant dans
la base. Cette option n’est pas valide si le bénéficiaire est un
rôle ou est PUBLIC.
WITH ADMIN OPTION : permet d’attribuer aux bénéficiaires
le droit de retransmettre le(s) privilège(s) reçu(s) à une tierce
personne (utilisateur(s) ou rôle(s)).
30 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges système (GRANT)

privilègeSystème : description du privilège système (exemple


CREATE TABLE, CREATE VIEW, etc.).
ALL PRIVILEGES : tous les privilèges système.
PUBLIC : pour attribuer le(s) privilège(s) à tous les
utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant dans
la base. Cette option n’est pas valide si le bénéficiaire est un
rôle ou est PUBLIC.
WITH ADMIN OPTION : permet d’attribuer aux bénéficiaires
le droit de retransmettre le(s) privilège(s) reçu(s) à une tierce
personne (utilisateur(s) ou rôle(s)).
30 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges système (GRANT)

privilègeSystème : description du privilège système (exemple


CREATE TABLE, CREATE VIEW, etc.).
ALL PRIVILEGES : tous les privilèges système.
PUBLIC : pour attribuer le(s) privilège(s) à tous les
utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant dans
la base. Cette option n’est pas valide si le bénéficiaire est un
rôle ou est PUBLIC.
WITH ADMIN OPTION : permet d’attribuer aux bénéficiaires
le droit de retransmettre le(s) privilège(s) reçu(s) à une tierce
personne (utilisateur(s) ou rôle(s)).
30 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges système (GRANT)

privilègeSystème : description du privilège système (exemple


CREATE TABLE, CREATE VIEW, etc.).
ALL PRIVILEGES : tous les privilèges système.
PUBLIC : pour attribuer le(s) privilège(s) à tous les
utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant dans
la base. Cette option n’est pas valide si le bénéficiaire est un
rôle ou est PUBLIC.
WITH ADMIN OPTION : permet d’attribuer aux bénéficiaires
le droit de retransmettre le(s) privilège(s) reçu(s) à une tierce
personne (utilisateur(s) ou rôle(s)).
30 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges système (GRANT)

privilègeSystème : description du privilège système (exemple


CREATE TABLE, CREATE VIEW, etc.).
ALL PRIVILEGES : tous les privilèges système.
PUBLIC : pour attribuer le(s) privilège(s) à tous les
utilisateurs.
IDENTIFIED BY désigne un utilisateur encore inexistant dans
la base. Cette option n’est pas valide si le bénéficiaire est un
rôle ou est PUBLIC.
WITH ADMIN OPTION : permet d’attribuer aux bénéficiaires
le droit de retransmettre le(s) privilège(s) reçu(s) à une tierce
personne (utilisateur(s) ou rôle(s)).
30 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation de privilèges système (REVOKE)

La révocation d’un ou de plusieurs privilèges est réalisée par


l’instruction REVOKE.
Cette commande (opérationnelle pour les privilèges objets)
permet d’annuler un privilège système ou un rôle d’un
utilisateur ou d’un rôle.
Pour pouvoir révoquer un privilège ou un rôle, vous devez être
administrateur de la base de données ou de détenir au
préalable ce privilège avec l’option WITH ADMIN OPTION.

31 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation de privilèges système (REVOKE)

La révocation d’un ou de plusieurs privilèges est réalisée par


l’instruction REVOKE.
Cette commande (opérationnelle pour les privilèges objets)
permet d’annuler un privilège système ou un rôle d’un
utilisateur ou d’un rôle.
Pour pouvoir révoquer un privilège ou un rôle, vous devez être
administrateur de la base de données ou de détenir au
préalable ce privilège avec l’option WITH ADMIN OPTION.

31 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation de privilèges système (REVOKE)

La révocation d’un ou de plusieurs privilèges est réalisée par


l’instruction REVOKE.
Cette commande (opérationnelle pour les privilèges objets)
permet d’annuler un privilège système ou un rôle d’un
utilisateur ou d’un rôle.
Pour pouvoir révoquer un privilège ou un rôle, vous devez être
administrateur de la base de données ou de détenir au
préalable ce privilège avec l’option WITH ADMIN OPTION.

31 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation de privilèges système (REVOKE)

Syntaxe
REVOKE
{ privilègeSystème | nomRôle | ALL PRIVILEGES } [,{
privilègeSystème | nomRôle }]..
FROM { utilisateur | nomRôle | PUBLIC } [,{ utilisateur |
nomRôle } ].. ;

ALL PRIVILEGES (valable si l’utilisateur ou le rôle ont tous


les privilèges système).
PUBLIC pour annuler le(s) privilège(s) à chaque utilisateur
ayant reçu ce(s) privilège(s) par l’option PUBLIC.

32 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation de privilèges système (REVOKE)

Syntaxe
REVOKE
{ privilègeSystème | nomRôle | ALL PRIVILEGES } [,{
privilègeSystème | nomRôle }]..
FROM { utilisateur | nomRôle | PUBLIC } [,{ utilisateur |
nomRôle } ].. ;

ALL PRIVILEGES (valable si l’utilisateur ou le rôle ont tous


les privilèges système).
PUBLIC pour annuler le(s) privilège(s) à chaque utilisateur
ayant reçu ce(s) privilège(s) par l’option PUBLIC.

32 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Privilèges objet

Figure: Quelques privilèges objet [1]

33 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges objets (GRANT)

Syntaxe
GRANT
{ privilègeObjet | nomRôle | ALL PRIVILEGES } [(colonne1
[,colonne2]..)] [, { privilègeObjet | nomRôle | ALL PRIVILEGES }]
[(colonne1 [,colonne2]..)]..
ON { [schéma.]nomObjet, [schéma.]nomObjet } }
TO { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle |
PUBLIC } ]..
WITH GRANT OPTION;

34 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges objets (GRANT)


Syntaxe
privilègeObjet : description du privilège objet (ex : SELECT,
DELETE, etc.).
colonne : précise la ou les colonnes sur lesquelles se porte le
privilège INSERT, REFERENCES, ou UPDATE (exemple :
UPDATE(typeAvion) pour n’autoriser que la modification de la
colonne typeAvion).
ALL PRIVILEGES: donne tous les privilèges avec l’option (GRANT
OPTION) pour l’objet en question.
PUBLIC : pour attribuer le(s) privilège(s) à tous les utilisateurs.
WITH GRANT OPTION : permet de donner aux bénéficiaires le
droit de retransmettre les privilèges reçus à une tierce personne
(utilisateur(s) ou rôle(s)).
35 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges objets (GRANT)


Syntaxe
privilègeObjet : description du privilège objet (ex : SELECT,
DELETE, etc.).
colonne : précise la ou les colonnes sur lesquelles se porte le
privilège INSERT, REFERENCES, ou UPDATE (exemple :
UPDATE(typeAvion) pour n’autoriser que la modification de la
colonne typeAvion).
ALL PRIVILEGES: donne tous les privilèges avec l’option (GRANT
OPTION) pour l’objet en question.
PUBLIC : pour attribuer le(s) privilège(s) à tous les utilisateurs.
WITH GRANT OPTION : permet de donner aux bénéficiaires le
droit de retransmettre les privilèges reçus à une tierce personne
(utilisateur(s) ou rôle(s)).
35 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges objets (GRANT)


Syntaxe
privilègeObjet : description du privilège objet (ex : SELECT,
DELETE, etc.).
colonne : précise la ou les colonnes sur lesquelles se porte le
privilège INSERT, REFERENCES, ou UPDATE (exemple :
UPDATE(typeAvion) pour n’autoriser que la modification de la
colonne typeAvion).
ALL PRIVILEGES: donne tous les privilèges avec l’option (GRANT
OPTION) pour l’objet en question.
PUBLIC : pour attribuer le(s) privilège(s) à tous les utilisateurs.
WITH GRANT OPTION : permet de donner aux bénéficiaires le
droit de retransmettre les privilèges reçus à une tierce personne
(utilisateur(s) ou rôle(s)).
35 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges objets (GRANT)


Syntaxe
privilègeObjet : description du privilège objet (ex : SELECT,
DELETE, etc.).
colonne : précise la ou les colonnes sur lesquelles se porte le
privilège INSERT, REFERENCES, ou UPDATE (exemple :
UPDATE(typeAvion) pour n’autoriser que la modification de la
colonne typeAvion).
ALL PRIVILEGES: donne tous les privilèges avec l’option (GRANT
OPTION) pour l’objet en question.
PUBLIC : pour attribuer le(s) privilège(s) à tous les utilisateurs.
WITH GRANT OPTION : permet de donner aux bénéficiaires le
droit de retransmettre les privilèges reçus à une tierce personne
(utilisateur(s) ou rôle(s)).
35 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Attribution de privilèges objets (GRANT)


Syntaxe
privilègeObjet : description du privilège objet (ex : SELECT,
DELETE, etc.).
colonne : précise la ou les colonnes sur lesquelles se porte le
privilège INSERT, REFERENCES, ou UPDATE (exemple :
UPDATE(typeAvion) pour n’autoriser que la modification de la
colonne typeAvion).
ALL PRIVILEGES: donne tous les privilèges avec l’option (GRANT
OPTION) pour l’objet en question.
PUBLIC : pour attribuer le(s) privilège(s) à tous les utilisateurs.
WITH GRANT OPTION : permet de donner aux bénéficiaires le
droit de retransmettre les privilèges reçus à une tierce personne
(utilisateur(s) ou rôle(s)).
35 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation de privilèges objets

Syntaxe
REVOKE
{ privilègeObjet | ALL PRIVILEGES } [(colonne1 [,colonne2]..)] [,
{ privilègeObjet | ALL PRIVILEGES }] [(colonne1 [,colonne2]..)]..
ON { [schéma.]nomObjet [schéma.]nomObjet } } FROM {
utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle |
PUBLIC } ]..

36 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Les rôles
Rôles
Un rôle (role) est un ensemble nommé de privilèges (système
ou objets). Un rôle est accordé à un ou plusieurs utilisateurs,
voire à tous (utilisation de PUBLIC).
Ce mécanisme facilite la gestion des privilèges.

37 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Les rôles
Rôles
Un rôle (role) est un ensemble nommé de privilèges (système
ou objets). Un rôle est accordé à un ou plusieurs utilisateurs,
voire à tous (utilisation de PUBLIC).
Ce mécanisme facilite la gestion des privilèges.

37 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Les rôles
Rôles
Un rôle (role) est un ensemble nommé de privilèges (système
ou objets). Un rôle est accordé à un ou plusieurs utilisateurs,
voire à tous (utilisation de PUBLIC).
Ce mécanisme facilite la gestion des privilèges.

37 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des rôles

Syntaxe
1 Création d’un rôle
CREATE ROLE manager;
2 Privilèges
GRANT CREATE TABLE TO manager;
3 Attribuer le rôle à des utilisateurs
GRANT manager to mohamed, ali;

38 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des rôles

Syntaxe
1 Création d’un rôle
CREATE ROLE manager;
2 Privilèges
GRANT CREATE TABLE TO manager;
3 Attribuer le rôle à des utilisateurs
GRANT manager to mohamed, ali;

38 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des rôles

Syntaxe
1 Création d’un rôle
CREATE ROLE manager;
2 Privilèges
GRANT CREATE TABLE TO manager;
3 Attribuer le rôle à des utilisateurs
GRANT manager to mohamed, ali;

38 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des rôles

Table: Quelques rôles prédéfinis

Rôle Privilège
CONNECT ALTER SESSION, CREATE CLUSTER,
CREATE SEQUENCE, CREATE SESSION, CREATE
SYNONYM, CREATE TABLE, CREATE VIEW
RESOURCE CREATE CLUSTER, CREATE INDEXTYPE,
CREATE PROCEDURE, CREATE SEQUENCE, CREATE
TABLE, CREATE TRIGGER, CREATE TYPE.
DBA Tous les privilèges système avec WITH ADMIN OPTION
EXECUTE CATALOG ROLE EXECUTE sur les objets du dictionnaire des données.

39 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation d’un rôle

La révocation de privilèges d’un rôle existant se réalise à l’aide


de la commande REVOKE.
Pour pouvoir annuler un rôle, on doit détenir ce rôle avec
l’option ADMIN OPTION ou avoir reçu le privilège système
GRANT ANY ROLE.
Syntaxe
REVOKE {privilège | nomRôle [, privilège | nomRôle..]
FROM {utilisateur | nomRôle | PUBLIC} [,{utilisateur | nomRôle |
PUBLIC}].. ;

40 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation d’un rôle

La révocation de privilèges d’un rôle existant se réalise à l’aide


de la commande REVOKE.
Pour pouvoir annuler un rôle, on doit détenir ce rôle avec
l’option ADMIN OPTION ou avoir reçu le privilège système
GRANT ANY ROLE.
Syntaxe
REVOKE {privilège | nomRôle [, privilège | nomRôle..]
FROM {utilisateur | nomRôle | PUBLIC} [,{utilisateur | nomRôle |
PUBLIC}].. ;

40 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Révocation d’un rôle

La révocation de privilèges d’un rôle existant se réalise à l’aide


de la commande REVOKE.
Pour pouvoir annuler un rôle, on doit détenir ce rôle avec
l’option ADMIN OPTION ou avoir reçu le privilège système
GRANT ANY ROLE.
Syntaxe
REVOKE {privilège | nomRôle [, privilège | nomRôle..]
FROM {utilisateur | nomRôle | PUBLIC} [,{utilisateur | nomRôle |
PUBLIC}].. ;

40 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des rôles

Modification du contenu d’un rôle


La modification du contenu d’un rôle (ajout ou retrait de
privilèges) se programme à l’aide des commandes
GRANT pour ajouter un privilège
REVOKE pour enlever un privilège.

41 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des rôles

Modification du contenu d’un rôle


La modification du contenu d’un rôle (ajout ou retrait de
privilèges) se programme à l’aide des commandes
GRANT pour ajouter un privilège
REVOKE pour enlever un privilège.

41 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Gestion des rôles

Modification du contenu d’un rôle


La modification du contenu d’un rôle (ajout ou retrait de
privilèges) se programme à l’aide des commandes
GRANT pour ajouter un privilège
REVOKE pour enlever un privilège.

41 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un rôle


Pour pouvoir supprimer un rôle,
on doit être le propriétaire de ce rôle
Bénéficier de ce rôle via l’option WITH ADMIN OPTION.
Le privilège DROP ANY ROLE donne le droit de supprimer un
rôle dans tout schéma.
La commande DROP ROLE supprime le rôle et le désaffecte
en cascade aux bénéficiaires.
Les utilisateurs des sessions en cours ne sont pas affectés par
cette suppression qui sera active dès une nouvelle session

Syntaxe
DROP ROLE nomRôle;
42 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un rôle


Pour pouvoir supprimer un rôle,
on doit être le propriétaire de ce rôle
Bénéficier de ce rôle via l’option WITH ADMIN OPTION.
Le privilège DROP ANY ROLE donne le droit de supprimer un
rôle dans tout schéma.
La commande DROP ROLE supprime le rôle et le désaffecte
en cascade aux bénéficiaires.
Les utilisateurs des sessions en cours ne sont pas affectés par
cette suppression qui sera active dès une nouvelle session

Syntaxe
DROP ROLE nomRôle;
42 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un rôle


Pour pouvoir supprimer un rôle,
on doit être le propriétaire de ce rôle
Bénéficier de ce rôle via l’option WITH ADMIN OPTION.
Le privilège DROP ANY ROLE donne le droit de supprimer un
rôle dans tout schéma.
La commande DROP ROLE supprime le rôle et le désaffecte
en cascade aux bénéficiaires.
Les utilisateurs des sessions en cours ne sont pas affectés par
cette suppression qui sera active dès une nouvelle session

Syntaxe
DROP ROLE nomRôle;
42 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un rôle


Pour pouvoir supprimer un rôle,
on doit être le propriétaire de ce rôle
Bénéficier de ce rôle via l’option WITH ADMIN OPTION.
Le privilège DROP ANY ROLE donne le droit de supprimer un
rôle dans tout schéma.
La commande DROP ROLE supprime le rôle et le désaffecte
en cascade aux bénéficiaires.
Les utilisateurs des sessions en cours ne sont pas affectés par
cette suppression qui sera active dès une nouvelle session

Syntaxe
DROP ROLE nomRôle;
42 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un rôle


Pour pouvoir supprimer un rôle,
on doit être le propriétaire de ce rôle
Bénéficier de ce rôle via l’option WITH ADMIN OPTION.
Le privilège DROP ANY ROLE donne le droit de supprimer un
rôle dans tout schéma.
La commande DROP ROLE supprime le rôle et le désaffecte
en cascade aux bénéficiaires.
Les utilisateurs des sessions en cours ne sont pas affectés par
cette suppression qui sera active dès une nouvelle session

Syntaxe
DROP ROLE nomRôle;
42 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un rôle


Pour pouvoir supprimer un rôle,
on doit être le propriétaire de ce rôle
Bénéficier de ce rôle via l’option WITH ADMIN OPTION.
Le privilège DROP ANY ROLE donne le droit de supprimer un
rôle dans tout schéma.
La commande DROP ROLE supprime le rôle et le désaffecte
en cascade aux bénéficiaires.
Les utilisateurs des sessions en cours ne sont pas affectés par
cette suppression qui sera active dès une nouvelle session

Syntaxe
DROP ROLE nomRôle;
42 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes Privilèges système
Gestion des profils Privilèges objet
Gestion des vues Les rôles
Gestion des transactions
Le dictionnaire de données
References

Suppression d’un rôle


Pour pouvoir supprimer un rôle,
on doit être le propriétaire de ce rôle
Bénéficier de ce rôle via l’option WITH ADMIN OPTION.
Le privilège DROP ANY ROLE donne le droit de supprimer un
rôle dans tout schéma.
La commande DROP ROLE supprime le rôle et le désaffecte
en cascade aux bénéficiaires.
Les utilisateurs des sessions en cours ne sont pas affectés par
cette suppression qui sera active dès une nouvelle session

Syntaxe
DROP ROLE nomRôle;
42 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Plan

1 Gestion des utilisateurs


2 Gestion des privilèges
3 Gestion des synonymes
4 Gestion des profils
5 Gestion des vues
6 Gestion des transactions
7 Le dictionnaire de données

43 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Schéma de données
Un schéma est un ensemble comprenant des structures de données
et des données. Il appartient à un utilisateur de la base et porte le
nom de ce dernier. Chaque utilisateur possède ainsi son propre
schéma. Leurs objets sont créés et modifiés par des ordres SQL.
Un schéma est une collection nommée (du nom de l’utilisateur qui
en est propriétaire)et d’objets (tables, vues, séquences, index,
procédures, etc.).
Le schéma d’une table AVION d’un utilisateur AHMED est
AHMED.AVION
Quand un utilisateur de base de données est crée, son schéma est
automatiquement crée.
Un utilisateur ne pourra alors être associé qu’à un seul schéma et
réciproquement. 44 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Schéma de données
Un schéma est un ensemble comprenant des structures de données
et des données. Il appartient à un utilisateur de la base et porte le
nom de ce dernier. Chaque utilisateur possède ainsi son propre
schéma. Leurs objets sont créés et modifiés par des ordres SQL.
Un schéma est une collection nommée (du nom de l’utilisateur qui
en est propriétaire)et d’objets (tables, vues, séquences, index,
procédures, etc.).
Le schéma d’une table AVION d’un utilisateur AHMED est
AHMED.AVION
Quand un utilisateur de base de données est crée, son schéma est
automatiquement crée.
Un utilisateur ne pourra alors être associé qu’à un seul schéma et
réciproquement. 44 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Schéma de données
Un schéma est un ensemble comprenant des structures de données
et des données. Il appartient à un utilisateur de la base et porte le
nom de ce dernier. Chaque utilisateur possède ainsi son propre
schéma. Leurs objets sont créés et modifiés par des ordres SQL.
Un schéma est une collection nommée (du nom de l’utilisateur qui
en est propriétaire)et d’objets (tables, vues, séquences, index,
procédures, etc.).
Le schéma d’une table AVION d’un utilisateur AHMED est
AHMED.AVION
Quand un utilisateur de base de données est crée, son schéma est
automatiquement crée.
Un utilisateur ne pourra alors être associé qu’à un seul schéma et
réciproquement. 44 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Schéma de données
Un schéma est un ensemble comprenant des structures de données
et des données. Il appartient à un utilisateur de la base et porte le
nom de ce dernier. Chaque utilisateur possède ainsi son propre
schéma. Leurs objets sont créés et modifiés par des ordres SQL.
Un schéma est une collection nommée (du nom de l’utilisateur qui
en est propriétaire)et d’objets (tables, vues, séquences, index,
procédures, etc.).
Le schéma d’une table AVION d’un utilisateur AHMED est
AHMED.AVION
Quand un utilisateur de base de données est crée, son schéma est
automatiquement crée.
Un utilisateur ne pourra alors être associé qu’à un seul schéma et
réciproquement. 44 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Schéma de données
Un schéma est un ensemble comprenant des structures de données
et des données. Il appartient à un utilisateur de la base et porte le
nom de ce dernier. Chaque utilisateur possède ainsi son propre
schéma. Leurs objets sont créés et modifiés par des ordres SQL.
Un schéma est une collection nommée (du nom de l’utilisateur qui
en est propriétaire)et d’objets (tables, vues, séquences, index,
procédures, etc.).
Le schéma d’une table AVION d’un utilisateur AHMED est
AHMED.AVION
Quand un utilisateur de base de données est crée, son schéma est
automatiquement crée.
Un utilisateur ne pourra alors être associé qu’à un seul schéma et
réciproquement. 44 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Un synonyme est une autre désignation pour les objets de la
base de données et est utilisé pour faciliter l’accès à un objet.
Masquer le vrai nom des objets ou la localisation des objets
distants Par exemple, au lieu d’accéder à une table via son
schéma, on utilise un synonyme
Création d’un synonyme
Syntaxe: CREATE [PUBLIC] SYNONYM (nomdesynonym)
FOR (nomobjet);
PUBLIC crée un synonyme public, accessible par tous, sous
réserve que les utilisateurs aient les privilèges adéquats sur les
objets concernés par le synonyme.
Exemple: CREATE PUBLIC SYNONYM SYav FOR
AHMED.AVION; 45 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Un synonyme est une autre désignation pour les objets de la
base de données et est utilisé pour faciliter l’accès à un objet.
Masquer le vrai nom des objets ou la localisation des objets
distants Par exemple, au lieu d’accéder à une table via son
schéma, on utilise un synonyme
Création d’un synonyme
Syntaxe: CREATE [PUBLIC] SYNONYM (nomdesynonym)
FOR (nomobjet);
PUBLIC crée un synonyme public, accessible par tous, sous
réserve que les utilisateurs aient les privilèges adéquats sur les
objets concernés par le synonyme.
Exemple: CREATE PUBLIC SYNONYM SYav FOR
AHMED.AVION; 45 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Un synonyme est une autre désignation pour les objets de la
base de données et est utilisé pour faciliter l’accès à un objet.
Masquer le vrai nom des objets ou la localisation des objets
distants Par exemple, au lieu d’accéder à une table via son
schéma, on utilise un synonyme
Création d’un synonyme
Syntaxe: CREATE [PUBLIC] SYNONYM (nomdesynonym)
FOR (nomobjet);
PUBLIC crée un synonyme public, accessible par tous, sous
réserve que les utilisateurs aient les privilèges adéquats sur les
objets concernés par le synonyme.
Exemple: CREATE PUBLIC SYNONYM SYav FOR
AHMED.AVION; 45 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes


Un synonyme est une autre désignation pour les objets de la
base de données et est utilisé pour faciliter l’accès à un objet.
Masquer le vrai nom des objets ou la localisation des objets
distants Par exemple, au lieu d’accéder à une table via son
schéma, on utilise un synonyme
Création d’un synonyme
Syntaxe: CREATE [PUBLIC] SYNONYM (nomdesynonym)
FOR (nomobjet);
PUBLIC crée un synonyme public, accessible par tous, sous
réserve que les utilisateurs aient les privilèges adéquats sur les
objets concernés par le synonyme.
Exemple: CREATE PUBLIC SYNONYM SYav FOR
AHMED.AVION; 45 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes

Transmission des droits


La transmission et la révocation des privilèges objets
(SELECT, INSERT, UPDATE, DELETE) s’appliquent
également aux synonymes.
Exemple: GRANT INSERT,SELECT ON syAV TO Ali;

Suppression d’un synonyme


Syntaxe: DROP [PUBLIC] SYNONYM nomSynonyme;

46 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes

Transmission des droits


La transmission et la révocation des privilèges objets
(SELECT, INSERT, UPDATE, DELETE) s’appliquent
également aux synonymes.
Exemple: GRANT INSERT,SELECT ON syAV TO Ali;

Suppression d’un synonyme


Syntaxe: DROP [PUBLIC] SYNONYM nomSynonyme;

46 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des synonymes

Transmission des droits


La transmission et la révocation des privilèges objets
(SELECT, INSERT, UPDATE, DELETE) s’appliquent
également aux synonymes.
Exemple: GRANT INSERT,SELECT ON syAV TO Ali;

Suppression d’un synonyme


Syntaxe: DROP [PUBLIC] SYNONYM nomSynonyme;

46 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Plan

1 Gestion des utilisateurs


2 Gestion des privilèges
3 Gestion des synonymes
4 Gestion des profils
5 Gestion des vues
6 Gestion des transactions
7 Le dictionnaire de données

47 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des profils

Un profil
Un profil regroupe des caractéristiques système (ressources)
qu’il est possible d’affecter à un ou plusieurs utilisateurs.
Un profil est identifié par son nom et est créé par CREATE
PROFILE, modifié par ALTER PROFILE et supprimé par
DROP PROFILE.
Un profil est affecté à un utilisateur lors de sa création par
CREATE USER ou après que l’utilisateur est créé par ALTER
USER.
Le profil DEFAULT est affecté par défaut à chaque utilisateur
si aucun profil défini n’est précisé.
48 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des profils

Un profil
Un profil regroupe des caractéristiques système (ressources)
qu’il est possible d’affecter à un ou plusieurs utilisateurs.
Un profil est identifié par son nom et est créé par CREATE
PROFILE, modifié par ALTER PROFILE et supprimé par
DROP PROFILE.
Un profil est affecté à un utilisateur lors de sa création par
CREATE USER ou après que l’utilisateur est créé par ALTER
USER.
Le profil DEFAULT est affecté par défaut à chaque utilisateur
si aucun profil défini n’est précisé.
48 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des profils

Un profil
Un profil regroupe des caractéristiques système (ressources)
qu’il est possible d’affecter à un ou plusieurs utilisateurs.
Un profil est identifié par son nom et est créé par CREATE
PROFILE, modifié par ALTER PROFILE et supprimé par
DROP PROFILE.
Un profil est affecté à un utilisateur lors de sa création par
CREATE USER ou après que l’utilisateur est créé par ALTER
USER.
Le profil DEFAULT est affecté par défaut à chaque utilisateur
si aucun profil défini n’est précisé.
48 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des profils

Un profil
Un profil regroupe des caractéristiques système (ressources)
qu’il est possible d’affecter à un ou plusieurs utilisateurs.
Un profil est identifié par son nom et est créé par CREATE
PROFILE, modifié par ALTER PROFILE et supprimé par
DROP PROFILE.
Un profil est affecté à un utilisateur lors de sa création par
CREATE USER ou après que l’utilisateur est créé par ALTER
USER.
Le profil DEFAULT est affecté par défaut à chaque utilisateur
si aucun profil défini n’est précisé.
48 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des Profils

Création d’un profil


CREATE PROFILE nomProfil LIMIT
{ ParamètreRessource | ParamètreMotdePasse }
ParamètreRessource | ParamètreMotdePasse ..;

49 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des Profils

ParamètreRessource
SESSIONS PER USER: nombre de sessions concurrentes autorisées.
CPU PER SESSION: temps CPU maximal pour une session en
centièmes de secondes.
CPU PER CALL: temps CPU autorisé pour un appel noyau en
centièmes de secondes.
CONNECT TIME: temps total autorisé pour une session en minutes.
IDLE TIME: temps d’inactivité autorisé, en minutes, au sein d’une
même session.
PRIVATE SGA: espace mémoire privé alloué dans le System Global
Area.

50 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des Profils


ParamètreMotdePasse
FAILED LOGIN ATTEMPTS: nombre de tentatives de connexion avant de
bloquer l’utilisateur.
PASSWORD LIFE TIME: nombre de jours de validité du mot de passe (il expire
après cette période).
PASSWORD REUSE TIME: nombre de jours avant que le mot de passe puisse
être utilisé à nouveau.
PASSWORD REUSE MAX: nombre de modifications de mot de passe avant de
pouvoir réutiliser le mot de passe courant.
PASSWORD LOCK TIME: nombre de jours d’interdiction d’accès à un compte
si le nombre de tentatives de connexions a été atteint.
PASSWORD GRACE TIME: nombre de jours d’une période de grâce qui
prolonge l’utilisation du mot de passe avant son changement.(un message
d’avertissement s’affiche lors des connexions). Après cette période le mot de
passe expire.

51 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Table: Création de profil: Exemple

CREATE PROFILE Etudiants LIMIT


SESSIONS PER USER 3 3 sessions simultanées autorisées.
CPU PER CALL 3000 Un appel système consomme au maximum
30 secondes de CPU.
CONNECT TIME 55 Chaque session ne peut excéder 55 minutes.
LOGICAL READS PER CALL 1000 Un appel système lit au plus
1000 blocs de données en mémoire.
PRIVATE SGA 15K Chaque session alloue 15 ko maximum de
mémoire en SGA.
IDLE TIME 40 Pour chaque session, 40 minutes d’inactivité
maximum sont autorisées.

52 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

FAILED LOGIN ATTEMPTS 5 tentatives de connexion avant blocage du compte.


PASSWORD LIFE TIME 70 Le mot de passe est valable pendant 70 jours
PASSWORD REUSE TIME 60 il faudra attendre 60 jours avant que mot de passe
puisse être utilisé à nouveau.
PASSWORD REUSE MAX pas de limitations sur nombre de
UNLIMITED modifications de mot de passe
PASSWORD LOCK TIME 1/24 1 seul jour d’interdiction d’accès après
que les 5 tentatives de connexion ont été atteintes.
PASSWORD GRACE TIME 10; La période de grâce qui prolonge l’utilisation
du mot de passe avant son changement est de 10 jours

53 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des Profils

Modification d’un profil


ALTER PROFILE nomProfil LIMIT
{ ParamètreRessource | ParamètreMotdePasse }
ParamètreRessource | ParamètreMotdePasse ..;

54 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des Profils

Suppression d’un profil


DROP PROFILE nomProfil [CASCADE] ;

CASCADE permet de supprimer le profil même si des utilisateurs


en sont pourvus (option obligatoire dans ce cas) et affecte le profil
DEFAULT à ces derniers.

55 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Plan

1 Gestion des utilisateurs


2 Gestion des privilèges
3 Gestion des synonymes
4 Gestion des profils
5 Gestion des vues
6 Gestion des transactions
7 Le dictionnaire de données

56 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Motivation
Les vues masquant la structure des tables interrogées et
n’affichent que les données autorisés.
L’utilisation de vues (views) assure la confidentialité qui est
un aspect important d’un SGBD relationnel.
Les vues correspondent au niveau externe qui reflète la partie
visible de la base de données pour chaque utilisateur.
Les vues peuvent également servir pour renforcer la
confidentialité, simplifier des requêtes complexes et
programmer une partie de l’intégrité référentielle.

57 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Motivation
Les vues masquant la structure des tables interrogées et
n’affichent que les données autorisés.
L’utilisation de vues (views) assure la confidentialité qui est
un aspect important d’un SGBD relationnel.
Les vues correspondent au niveau externe qui reflète la partie
visible de la base de données pour chaque utilisateur.
Les vues peuvent également servir pour renforcer la
confidentialité, simplifier des requêtes complexes et
programmer une partie de l’intégrité référentielle.

57 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Motivation
Les vues masquant la structure des tables interrogées et
n’affichent que les données autorisés.
L’utilisation de vues (views) assure la confidentialité qui est
un aspect important d’un SGBD relationnel.
Les vues correspondent au niveau externe qui reflète la partie
visible de la base de données pour chaque utilisateur.
Les vues peuvent également servir pour renforcer la
confidentialité, simplifier des requêtes complexes et
programmer une partie de l’intégrité référentielle.

57 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Motivation
Les vues masquant la structure des tables interrogées et
n’affichent que les données autorisés.
L’utilisation de vues (views) assure la confidentialité qui est
un aspect important d’un SGBD relationnel.
Les vues correspondent au niveau externe qui reflète la partie
visible de la base de données pour chaque utilisateur.
Les vues peuvent également servir pour renforcer la
confidentialité, simplifier des requêtes complexes et
programmer une partie de l’intégrité référentielle.

57 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Définition
Une vue est considérée comme une table virtuelle car elle ne
nécessite aucune allocation en mémoire pour contenir les
données. Elle n’a pas d’existence propre car seule sa structure
est stockée dans le dictionnaire de données.
Seules les tables contiennent des données et pourtant, pour
l’utilisateur, une vue apparaı̂t comme une table.
Une vue est créée à l’aide d’une instruction SELECT
(requête).
Cette requête interroge une ou plusieurs table(s) ou vue(s).
Une vue se recharge chaque fois qu’elle est interrogée.
58 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Définition
Une vue est considérée comme une table virtuelle car elle ne
nécessite aucune allocation en mémoire pour contenir les
données. Elle n’a pas d’existence propre car seule sa structure
est stockée dans le dictionnaire de données.
Seules les tables contiennent des données et pourtant, pour
l’utilisateur, une vue apparaı̂t comme une table.
Une vue est créée à l’aide d’une instruction SELECT
(requête).
Cette requête interroge une ou plusieurs table(s) ou vue(s).
Une vue se recharge chaque fois qu’elle est interrogée.
58 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Définition
Une vue est considérée comme une table virtuelle car elle ne
nécessite aucune allocation en mémoire pour contenir les
données. Elle n’a pas d’existence propre car seule sa structure
est stockée dans le dictionnaire de données.
Seules les tables contiennent des données et pourtant, pour
l’utilisateur, une vue apparaı̂t comme une table.
Une vue est créée à l’aide d’une instruction SELECT
(requête).
Cette requête interroge une ou plusieurs table(s) ou vue(s).
Une vue se recharge chaque fois qu’elle est interrogée.
58 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Définition
Une vue est considérée comme une table virtuelle car elle ne
nécessite aucune allocation en mémoire pour contenir les
données. Elle n’a pas d’existence propre car seule sa structure
est stockée dans le dictionnaire de données.
Seules les tables contiennent des données et pourtant, pour
l’utilisateur, une vue apparaı̂t comme une table.
Une vue est créée à l’aide d’une instruction SELECT
(requête).
Cette requête interroge une ou plusieurs table(s) ou vue(s).
Une vue se recharge chaque fois qu’elle est interrogée.
58 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Définition
Une vue est considérée comme une table virtuelle car elle ne
nécessite aucune allocation en mémoire pour contenir les
données. Elle n’a pas d’existence propre car seule sa structure
est stockée dans le dictionnaire de données.
Seules les tables contiennent des données et pourtant, pour
l’utilisateur, une vue apparaı̂t comme une table.
Une vue est créée à l’aide d’une instruction SELECT
(requête).
Cette requête interroge une ou plusieurs table(s) ou vue(s).
Une vue se recharge chaque fois qu’elle est interrogée.
58 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Création d’une vue
CREATE [OR REPLACE] VIEW [schéma.]nomVue
AS requêteSELECT [WITH { READ ONLY | CHECK OPTION
[CONSTRAINT nomContrainte] } ];

OR REPLACE: remplace la vue par la nouvelle définition


même si elle existait déjà (ça évite de détruire la vue avant de
la recréer).
requêteSELECT: requête de définition interrogeant une (ou
des) table(s), vue(s), cliché(s) pouvant contenir jusqu’à mille
expressions dans la clause SELECT.
WITH READ ONLY: déclare la vue non modifiable par
INSERT, UPDATE, ou DELETE.
59 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Création d’une vue
CREATE [OR REPLACE] VIEW [schéma.]nomVue
AS requêteSELECT [WITH { READ ONLY | CHECK OPTION
[CONSTRAINT nomContrainte] } ];

OR REPLACE: remplace la vue par la nouvelle définition


même si elle existait déjà (ça évite de détruire la vue avant de
la recréer).
requêteSELECT: requête de définition interrogeant une (ou
des) table(s), vue(s), cliché(s) pouvant contenir jusqu’à mille
expressions dans la clause SELECT.
WITH READ ONLY: déclare la vue non modifiable par
INSERT, UPDATE, ou DELETE.
59 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Création d’une vue
CREATE [OR REPLACE] VIEW [schéma.]nomVue
AS requêteSELECT [WITH { READ ONLY | CHECK OPTION
[CONSTRAINT nomContrainte] } ];

OR REPLACE: remplace la vue par la nouvelle définition


même si elle existait déjà (ça évite de détruire la vue avant de
la recréer).
requêteSELECT: requête de définition interrogeant une (ou
des) table(s), vue(s), cliché(s) pouvant contenir jusqu’à mille
expressions dans la clause SELECT.
WITH READ ONLY: déclare la vue non modifiable par
INSERT, UPDATE, ou DELETE.
59 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

WITH CHECK OPTION: garantit que toute mise à jour de la


vue par INSERT ou UPDATE s’effectuera conformément dans
la requête de définition.
CONSTRAINT nomContrainte: nomme la clause CHECK
OPTION sous la forme d’un nom de contrainte. En l’absence
de cette option, la clause porte un nom unique généré par
Oracle au niveau du dictionnaire des données (SYS Cnnnn, n
entier).

60 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

WITH CHECK OPTION: garantit que toute mise à jour de la


vue par INSERT ou UPDATE s’effectuera conformément dans
la requête de définition.
CONSTRAINT nomContrainte: nomme la clause CHECK
OPTION sous la forme d’un nom de contrainte. En l’absence
de cette option, la clause porte un nom unique généré par
Oracle au niveau du dictionnaire des données (SYS Cnnnn, n
entier).

60 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues mono-table
Une vue mono-table est une vue issue d’une requête
interrogeant une seule table.
Une fois créée, une vue s’interroge comme une table par tout
utilisateur, sous réserve qu’il ait obtenu le privilège en lecture
directement (GRANT SELECT ON nomVue TO..) ou via un
rôle.

61 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues mono-table
Une vue mono-table est une vue issue d’une requête
interrogeant une seule table.
Une fois créée, une vue s’interroge comme une table par tout
utilisateur, sous réserve qu’il ait obtenu le privilège en lecture
directement (GRANT SELECT ON nomVue TO..) ou via un
rôle.

61 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Table: Table pilote


plnum plnom ville salaire dateEmbauche compa
130 Ben Younes O. Tunis 3000 23/06/2017 TUNISAIR
131 Ben Salah A. Sousse 2900 14/11/2018 TUNISAIR
132 Hammadi L. Nabeul 2700 06/01/2019 NOVELAIR
133 Ben Abdalah R. Tunis 2900 15/04/2018 TUNISAIR
134 Ketata H. Sfax 2900 19/05/2015 Syfax Air

Vues mono-tables: Exemples


CREATE VIEW tair CREATE VIEW etat civil
AS SELECT * FROM pilote AS SELECT plnom, ville
WHERE compa=’TUNISAIR’; FROM pilote;

62 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Interrogation de vues
Une fois créée, une vue s’interroge comme une table par tout
utilisateur, sous réserve qu’il ait obtenu le privilège en lecture
directement ou via un rôle (GRANT SELECT ON nomVue TO..)
La moyenne des salaires des pilotes de la compagnie
TUNISAIR
→ SELECT AVG(salaire) FROM tair;
Nombre de pilotes
→ SELECT COUNT(*) FROM Etat civil;

63 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Interrogation de vues
Une fois créée, une vue s’interroge comme une table par tout
utilisateur, sous réserve qu’il ait obtenu le privilège en lecture
directement ou via un rôle (GRANT SELECT ON nomVue TO..)
La moyenne des salaires des pilotes de la compagnie
TUNISAIR
→ SELECT AVG(salaire) FROM tair;
Nombre de pilotes
→ SELECT COUNT(*) FROM Etat civil;

63 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Interrogation de vues
Une fois créée, une vue s’interroge comme une table par tout
utilisateur, sous réserve qu’il ait obtenu le privilège en lecture
directement ou via un rôle (GRANT SELECT ON nomVue TO..)
La moyenne des salaires des pilotes de la compagnie
TUNISAIR
→ SELECT AVG(salaire) FROM tair;
Nombre de pilotes
→ SELECT COUNT(*) FROM Etat civil;

63 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Interrogation de vues
Une fois créée, une vue s’interroge comme une table par tout
utilisateur, sous réserve qu’il ait obtenu le privilège en lecture
directement ou via un rôle (GRANT SELECT ON nomVue TO..)
La moyenne des salaires des pilotes de la compagnie
TUNISAIR
→ SELECT AVG(salaire) FROM tair;
Nombre de pilotes
→ SELECT COUNT(*) FROM Etat civil;

63 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Alias
Les alias, s’ils sont utilisés, désignent le nom de chaque
colonne de la vue.
Ce mécanisme permet de mieux contrôler les noms de
colonnes.
Quand un alias n’est pas présent la colonne prend le nom de
l’expression renvoyée par la requête de définition.
Ce mécanisme sert à masquer les noms des colonnes de l’objet
source.

64 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Alias
Les alias, s’ils sont utilisés, désignent le nom de chaque
colonne de la vue.
Ce mécanisme permet de mieux contrôler les noms de
colonnes.
Quand un alias n’est pas présent la colonne prend le nom de
l’expression renvoyée par la requête de définition.
Ce mécanisme sert à masquer les noms des colonnes de l’objet
source.

64 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Alias
Les alias, s’ils sont utilisés, désignent le nom de chaque
colonne de la vue.
Ce mécanisme permet de mieux contrôler les noms de
colonnes.
Quand un alias n’est pas présent la colonne prend le nom de
l’expression renvoyée par la requête de définition.
Ce mécanisme sert à masquer les noms des colonnes de l’objet
source.

64 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Alias
Les alias, s’ils sont utilisés, désignent le nom de chaque
colonne de la vue.
Ce mécanisme permet de mieux contrôler les noms de
colonnes.
Quand un alias n’est pas présent la colonne prend le nom de
l’expression renvoyée par la requête de définition.
Ce mécanisme sert à masquer les noms des colonnes de l’objet
source.

64 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Alias
Les alias, s’ils sont utilisés, désignent le nom de chaque
colonne de la vue.
Ce mécanisme permet de mieux contrôler les noms de
colonnes.
Quand un alias n’est pas présent la colonne prend le nom de
l’expression renvoyée par la requête de définition.
Ce mécanisme sert à masquer les noms des colonnes de l’objet
source.

64 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues avec alias: Syntaxes


On veut créer une vue des pioltes qui ne font pas partie de la
compagnie TUNISAIR;
CREATE OR REPLACE VIEW notTair CREATE OR REPLACE VIEW notTair
(Code, Nom, Adresse, Salaire, AS SELECT plnum Code, plnom Nom,
Embauche, Compagnie ) ville Adresse, Salaire, dateEmbauche
Embauche, compa Comapagnie
AS SELECT * FROM pilote FROM pilote;
WHERE NOT (compa=’TUNISAIR’); WHERE NOT (compa=’TUNISAIR’);

65 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues avec alias: Syntaxes


On veut créer une vue des pioltes qui ne font pas partie de la
compagnie TUNISAIR;
CREATE OR REPLACE VIEW notTair CREATE OR REPLACE VIEW notTair
(Code, Nom, Adresse, Salaire, AS SELECT plnum Code, plnom Nom,
Embauche, Compagnie ) ville Adresse, Salaire, dateEmbauche
Embauche, compa Comapagnie
AS SELECT * FROM pilote FROM pilote;
WHERE NOT (compa=’TUNISAIR’); WHERE NOT (compa=’TUNISAIR’);

65 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues avec alias: Syntaxes


Ainsi, le contenu de la vue est:

Table: Vue notTair


CODE NOM ADRESSE SALAIRE EMBAUCHE COMPAGNIE
132 Hammadi L. Nabeul 2700 06/01/2019 NOVELAIR
134 Ketata H. Sfax 2900 19/05/2015 Syfax Air

66 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Vue d’une vue
L’objet source d’une vue est en général une table mais peut aussi être
une vue.
Exemple: La vue suivante est définie à partir de la vue notTair
précédemment créée.
CREATE OR REPLACE VIEW EtatcivilnotTair
AS SELECT nom, adresse from notTair;

Table: Contenu de la vue


NOM ADRESSE
Hammadi L. Nabeul
Ketata H. Sfax
67 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Vue d’une vue
L’objet source d’une vue est en général une table mais peut aussi être
une vue.
Exemple: La vue suivante est définie à partir de la vue notTair
précédemment créée.
CREATE OR REPLACE VIEW EtatcivilnotTair
AS SELECT nom, adresse from notTair;

Table: Contenu de la vue


NOM ADRESSE
Hammadi L. Nabeul
Ketata H. Sfax
67 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Vue d’une vue
L’objet source d’une vue est en général une table mais peut aussi être
une vue.
Exemple: La vue suivante est définie à partir de la vue notTair
précédemment créée.
CREATE OR REPLACE VIEW EtatcivilnotTair
AS SELECT nom, adresse from notTair;

Table: Contenu de la vue


NOM ADRESSE
Hammadi L. Nabeul
Ketata H. Sfax
67 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vue modifiable
L’option WITH READ ONLY déclare la vue non modifiable par
INSERT, UPDATE, ou DELETE.
Lorsqu’il est possible d’exécuter des instructions INSERT, UPDATE
ou DELETE sur une vue, cette dernière est dite modifiable
(updatable view).
Pour mettre à jour une vue, il doit exister une correspondance entre
les lignes de la vue et celles de l’objet source. De plus certaines
conditions doivent être remplies.

68 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vue modifiable
L’option WITH READ ONLY déclare la vue non modifiable par
INSERT, UPDATE, ou DELETE.
Lorsqu’il est possible d’exécuter des instructions INSERT, UPDATE
ou DELETE sur une vue, cette dernière est dite modifiable
(updatable view).
Pour mettre à jour une vue, il doit exister une correspondance entre
les lignes de la vue et celles de l’objet source. De plus certaines
conditions doivent être remplies.

68 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vue modifiable
L’option WITH READ ONLY déclare la vue non modifiable par
INSERT, UPDATE, ou DELETE.
Lorsqu’il est possible d’exécuter des instructions INSERT, UPDATE
ou DELETE sur une vue, cette dernière est dite modifiable
(updatable view).
Pour mettre à jour une vue, il doit exister une correspondance entre
les lignes de la vue et celles de l’objet source. De plus certaines
conditions doivent être remplies.

68 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Dans notre exemple, nous constatons qu’il ne sera pas possible


d’ajouter un pilote à la vue Etat civil, car la clé primaire de la table
source ne serait pas renseignée. Ceci est contradictoire avec la
condition de correspondance.
→ Toute mise à jour qui ne respecterait pas les contraintes de la
table mère sera rejetée.
Ajout d’un pilote :
INSERT INTO Etat civil VALUES(’Jilani’,’Tunis’);

ORA-01400: impossible d’insérer NULL dans


(”SYSTEM”.”PILOTE”.”PLNUM”)

69 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Dans notre exemple, nous constatons qu’il ne sera pas possible


d’ajouter un pilote à la vue Etat civil, car la clé primaire de la table
source ne serait pas renseignée. Ceci est contradictoire avec la
condition de correspondance.
→ Toute mise à jour qui ne respecterait pas les contraintes de la
table mère sera rejetée.
Ajout d’un pilote :
INSERT INTO Etat civil VALUES(’Jilani’,’Tunis’);

ORA-01400: impossible d’insérer NULL dans


(”SYSTEM”.”PILOTE”.”PLNUM”)

69 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Dans notre exemple, nous constatons qu’il ne sera pas possible


d’ajouter un pilote à la vue Etat civil, car la clé primaire de la table
source ne serait pas renseignée. Ceci est contradictoire avec la
condition de correspondance.
→ Toute mise à jour qui ne respecterait pas les contraintes de la
table mère sera rejetée.
Ajout d’un pilote :
INSERT INTO Etat civil VALUES(’Jilani’,’Tunis’);

ORA-01400: impossible d’insérer NULL dans


(”SYSTEM”.”PILOTE”.”PLNUM”)

69 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vue modifiable
Pour qu’une vue simple soit modifiable, sa requête de définition doit
respecter les critères suivants :
pas de directive DISTINCT, de fonction (AVG, COUNT, MAX,
MIN, STDDEV, SUM, ou VARIANCE), d’expression dans le
SELECT.
pas de GROUP BY, ORDER BY, HAVING.
Respecte les contraintes de la table mère.

70 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vue modifiable
Pour qu’une vue simple soit modifiable, sa requête de définition doit
respecter les critères suivants :
pas de directive DISTINCT, de fonction (AVG, COUNT, MAX,
MIN, STDDEV, SUM, ou VARIANCE), d’expression dans le
SELECT.
pas de GROUP BY, ORDER BY, HAVING.
Respecte les contraintes de la table mère.

70 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vue modifiable
Pour qu’une vue simple soit modifiable, sa requête de définition doit
respecter les critères suivants :
pas de directive DISTINCT, de fonction (AVG, COUNT, MAX,
MIN, STDDEV, SUM, ou VARIANCE), d’expression dans le
SELECT.
pas de GROUP BY, ORDER BY, HAVING.
Respecte les contraintes de la table mère.

70 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vue modifiable
Pour qu’une vue simple soit modifiable, sa requête de définition doit
respecter les critères suivants :
pas de directive DISTINCT, de fonction (AVG, COUNT, MAX,
MIN, STDDEV, SUM, ou VARIANCE), d’expression dans le
SELECT.
pas de GROUP BY, ORDER BY, HAVING.
Respecte les contraintes de la table mère.

70 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes
Une vue complexe est caractérisée par le fait de contenir, dans
sa définition, plusieurs tables (jointures), et/ou une fonction
appliquée à des regroupements, ou des expressions.
La mise à jour de telles vues n’est pas toujours possible.
La figure suivante présente deux vues complexes qui ne sont
pas modifiables.
La vue multitable PLMonastir (le pilote du vol qui fera son
départ depuis monastir) est créée à partir d’une jointure entre
les tables Vol et Pilote.
La vue Moysal (la moyenne de salaire de chaque compagnie)
est créée à partir d’un regroupement de la table Pilote.
71 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes
Une vue complexe est caractérisée par le fait de contenir, dans
sa définition, plusieurs tables (jointures), et/ou une fonction
appliquée à des regroupements, ou des expressions.
La mise à jour de telles vues n’est pas toujours possible.
La figure suivante présente deux vues complexes qui ne sont
pas modifiables.
La vue multitable PLMonastir (le pilote du vol qui fera son
départ depuis monastir) est créée à partir d’une jointure entre
les tables Vol et Pilote.
La vue Moysal (la moyenne de salaire de chaque compagnie)
est créée à partir d’un regroupement de la table Pilote.
71 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes
Une vue complexe est caractérisée par le fait de contenir, dans
sa définition, plusieurs tables (jointures), et/ou une fonction
appliquée à des regroupements, ou des expressions.
La mise à jour de telles vues n’est pas toujours possible.
La figure suivante présente deux vues complexes qui ne sont
pas modifiables.
La vue multitable PLMonastir (le pilote du vol qui fera son
départ depuis monastir) est créée à partir d’une jointure entre
les tables Vol et Pilote.
La vue Moysal (la moyenne de salaire de chaque compagnie)
est créée à partir d’un regroupement de la table Pilote.
71 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes
Une vue complexe est caractérisée par le fait de contenir, dans
sa définition, plusieurs tables (jointures), et/ou une fonction
appliquée à des regroupements, ou des expressions.
La mise à jour de telles vues n’est pas toujours possible.
La figure suivante présente deux vues complexes qui ne sont
pas modifiables.
La vue multitable PLMonastir (le pilote du vol qui fera son
départ depuis monastir) est créée à partir d’une jointure entre
les tables Vol et Pilote.
La vue Moysal (la moyenne de salaire de chaque compagnie)
est créée à partir d’un regroupement de la table Pilote.
71 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

72 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes: Exemple


Il apparaı̂t clairement qu’on ne peut pas insérer dans les deux vues car il
manquerait les clés primaires . Les messages d’erreurs générés par Oracle
sont différents suivant la nature de la vue (monotable ou multitable).

INSERT INTO Moysal VALUES(5000,’AIRFRANCE’);


ORA-01732: les manipulations de données sont interdites sur cette vue

INSERT INTO PlMonastir VALUES(140,’test’,’TEST’,’20/10/19’);


ORA-01776: Impossible de modifier plus d’une table de base via une vue jointe

73 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes: Exemple


Il apparaı̂t clairement qu’on ne peut pas insérer dans les deux vues car il
manquerait les clés primaires . Les messages d’erreurs générés par Oracle
sont différents suivant la nature de la vue (monotable ou multitable).

INSERT INTO Moysal VALUES(5000,’AIRFRANCE’);


ORA-01732: les manipulations de données sont interdites sur cette vue

INSERT INTO PlMonastir VALUES(140,’test’,’TEST’,’20/10/19’);


ORA-01776: Impossible de modifier plus d’une table de base via une vue jointe

73 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes: Exemple


Il apparaı̂t clairement qu’on ne peut pas insérer dans les deux vues car il
manquerait les clés primaires . Les messages d’erreurs générés par Oracle
sont différents suivant la nature de la vue (monotable ou multitable).

INSERT INTO Moysal VALUES(5000,’AIRFRANCE’);


ORA-01732: les manipulations de données sont interdites sur cette vue

INSERT INTO PlMonastir VALUES(140,’test’,’TEST’,’20/10/19’);


ORA-01776: Impossible de modifier plus d’une table de base via une vue jointe

73 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes: Exemple


Alors que la vue monotable Moysal n’est pas modifiable, ni par
UPDATE ni par DELETE (message d’erreur ORA-01732), la vue
multitable Plmonastir est transformable dans une certaine mesure,
car la table Pilote (qui entre dans sa composition) est dite protégée
par clé(key preserved).
Seules les colonnes de la vue correspondant à la table protégée par
clé peuvent être modifiées (ici plnom peut être mise à jour, en
revanche, villearr et datevol ne peut pas l’être).
Les suppressions se répercutent sur les enregistrements de la table
protégée par clé (Pilote) (si on execute delete from ;), les lignes de
la table protégée par la clé seront supprimés.

74 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes: Exemple


Alors que la vue monotable Moysal n’est pas modifiable, ni par
UPDATE ni par DELETE (message d’erreur ORA-01732), la vue
multitable Plmonastir est transformable dans une certaine mesure,
car la table Pilote (qui entre dans sa composition) est dite protégée
par clé(key preserved).
Seules les colonnes de la vue correspondant à la table protégée par
clé peuvent être modifiées (ici plnom peut être mise à jour, en
revanche, villearr et datevol ne peut pas l’être).
Les suppressions se répercutent sur les enregistrements de la table
protégée par clé (Pilote) (si on execute delete from ;), les lignes de
la table protégée par la clé seront supprimés.

74 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Vues complexes: Exemple


Alors que la vue monotable Moysal n’est pas modifiable, ni par
UPDATE ni par DELETE (message d’erreur ORA-01732), la vue
multitable Plmonastir est transformable dans une certaine mesure,
car la table Pilote (qui entre dans sa composition) est dite protégée
par clé(key preserved).
Seules les colonnes de la vue correspondant à la table protégée par
clé peuvent être modifiées (ici plnom peut être mise à jour, en
revanche, villearr et datevol ne peut pas l’être).
Les suppressions se répercutent sur les enregistrements de la table
protégée par clé (Pilote) (si on execute delete from ;), les lignes de
la table protégée par la clé seront supprimés.

74 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Tables protégées (key preserved tables)


Une table est dite protégée par sa clé (key preserved) si sa clé
primaire est préservée dans la clause de jointure et se retrouve en
tant que colonne de la vue multitable.
En considérant les données initiales, pour la vue multitable
Plmonastir, la table préservée est la table Pilote, car la colonne
plnum identifie chaque enregistrement extrait de la vue.
Cela ne veut pas dire que cette vue est modifiable de toute manière.
Aucune insertion n’est permise, seules les modifications des colonnes
de la table Pilote sont autorisées. (Les suppressions de la table
Pilote sont permise seulement si la table pilote n’était pas la table
mère d’où se référencent les clés étrangères de la table vol.
75 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Tables protégées (key preserved tables)


Une table est dite protégée par sa clé (key preserved) si sa clé
primaire est préservée dans la clause de jointure et se retrouve en
tant que colonne de la vue multitable.
En considérant les données initiales, pour la vue multitable
Plmonastir, la table préservée est la table Pilote, car la colonne
plnum identifie chaque enregistrement extrait de la vue.
Cela ne veut pas dire que cette vue est modifiable de toute manière.
Aucune insertion n’est permise, seules les modifications des colonnes
de la table Pilote sont autorisées. (Les suppressions de la table
Pilote sont permise seulement si la table pilote n’était pas la table
mère d’où se référencent les clés étrangères de la table vol.
75 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Tables protégées (key preserved tables)


Une table est dite protégée par sa clé (key preserved) si sa clé
primaire est préservée dans la clause de jointure et se retrouve en
tant que colonne de la vue multitable.
En considérant les données initiales, pour la vue multitable
Plmonastir, la table préservée est la table Pilote, car la colonne
plnum identifie chaque enregistrement extrait de la vue.
Cela ne veut pas dire que cette vue est modifiable de toute manière.
Aucune insertion n’est permise, seules les modifications des colonnes
de la table Pilote sont autorisées. (Les suppressions de la table
Pilote sont permise seulement si la table pilote n’était pas la table
mère d’où se référencent les clés étrangères de la table vol.
75 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


vue multitable modifiable (updatable join view)
Afin de savoir dans quelle mesure les colonnes d’une vue sont
modifiables (en insertion ou suppression), il faut interroger la vue
USER UPDATABLE COLUMNS du dictionnaire des données
L’interrogation suivante illustre ce principe
SELECT COLUMN NAME, INSERTABLE, UPDATABLE,
DELETABLE FROM USER UPDATABLE COLUMNS WHERE
TABLE NAME = UPPER(vols);

76 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


vue multitable modifiable (updatable join view)
Afin de savoir dans quelle mesure les colonnes d’une vue sont
modifiables (en insertion ou suppression), il faut interroger la vue
USER UPDATABLE COLUMNS du dictionnaire des données
L’interrogation suivante illustre ce principe
SELECT COLUMN NAME, INSERTABLE, UPDATABLE,
DELETABLE FROM USER UPDATABLE COLUMNS WHERE
TABLE NAME = UPPER(vols);

76 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

vue multitable modifiable (updatable join view)


Pour qu’une vue multitable soit modifiable, sa requête de définition doit
respecter les critères suivants :
N’est pas définie avec l’option WITH READ ONLY.
La mise à jour (INSERT, UPDATE, DELETE) n’affecte qu’une
seule table.
Si la clause WITH CHECK OPTION est utilisée, aucune insertion
n’est possible (message d’erreur : ORA-01733: les colonnes
virtuelles ne sont pas autorisées ici).
Seuls les enregistrements de la table protégée peuvent être modifiés
ou supprimés
77 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

vue multitable modifiable (updatable join view)


Pour qu’une vue multitable soit modifiable, sa requête de définition doit
respecter les critères suivants :
N’est pas définie avec l’option WITH READ ONLY.
La mise à jour (INSERT, UPDATE, DELETE) n’affecte qu’une
seule table.
Si la clause WITH CHECK OPTION est utilisée, aucune insertion
n’est possible (message d’erreur : ORA-01733: les colonnes
virtuelles ne sont pas autorisées ici).
Seuls les enregistrements de la table protégée peuvent être modifiés
ou supprimés
77 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

vue multitable modifiable (updatable join view)


Pour qu’une vue multitable soit modifiable, sa requête de définition doit
respecter les critères suivants :
N’est pas définie avec l’option WITH READ ONLY.
La mise à jour (INSERT, UPDATE, DELETE) n’affecte qu’une
seule table.
Si la clause WITH CHECK OPTION est utilisée, aucune insertion
n’est possible (message d’erreur : ORA-01733: les colonnes
virtuelles ne sont pas autorisées ici).
Seuls les enregistrements de la table protégée peuvent être modifiés
ou supprimés
77 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

vue multitable modifiable (updatable join view)


Pour qu’une vue multitable soit modifiable, sa requête de définition doit
respecter les critères suivants :
N’est pas définie avec l’option WITH READ ONLY.
La mise à jour (INSERT, UPDATE, DELETE) n’affecte qu’une
seule table.
Si la clause WITH CHECK OPTION est utilisée, aucune insertion
n’est possible (message d’erreur : ORA-01733: les colonnes
virtuelles ne sont pas autorisées ici).
Seuls les enregistrements de la table protégée peuvent être modifiés
ou supprimés
77 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

vue multitable modifiable (updatable join view)


Pour qu’une vue multitable soit modifiable, sa requête de définition doit
respecter les critères suivants :
N’est pas définie avec l’option WITH READ ONLY.
La mise à jour (INSERT, UPDATE, DELETE) n’affecte qu’une
seule table.
Si la clause WITH CHECK OPTION est utilisée, aucune insertion
n’est possible (message d’erreur : ORA-01733: les colonnes
virtuelles ne sont pas autorisées ici).
Seuls les enregistrements de la table protégée peuvent être modifiés
ou supprimés
77 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Autres utilisation des vues
Les vues peuvent également servir pour renforcer la confidentialité.
Il est possible de restreindre l’accès à des tables en fonction de
moments.
Les vues suivantes limitent temporellement les accès en lecture et en
écriture à des tables.

Table: Vue pour restreindre l’accès à des jours précis


CREATE VIEW PIJoursFériés Restriction, en lecture de
AS SELECT * FROM Pilote la vue issue de la table Pilote,
WHERE TO CHAR(SYSDATE, ’DAY’) les samedi et dimanche. Mises à
IN (’SAMEDI’,’DIMANCHE’ ); jour possibles à tout moment.

78 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues


Autres utilisation des vues
Les vues peuvent également servir pour renforcer la confidentialité.
Il est possible de restreindre l’accès à des tables en fonction de
moments.
Les vues suivantes limitent temporellement les accès en lecture et en
écriture à des tables.

Table: Vue pour restreindre l’accès à des jours précis


CREATE VIEW PIJoursFériés Restriction, en lecture de
AS SELECT * FROM Pilote la vue issue de la table Pilote,
WHERE TO CHAR(SYSDATE, ’DAY’) les samedi et dimanche. Mises à
IN (’SAMEDI’,’DIMANCHE’ ); jour possibles à tout moment.

78 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Suppression d’une vue


Pour pouvoir supprimer une vue, vous devez en être propriétaire ou
posséder le privilège DROP ANY VIEW.
La suppression d’une vue n’entraı̂ne pas la perte des données qui
résident toujours dans les tables.
La syntaxe SQL est la suivante :
DROP VIEW [schéma.]nomVue ;
Les vues ou synonymes qui dépendent de la vue supprimée ne sont
pas détruits, ils sont seulement marqués comme invalides.

79 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Suppression d’une vue


Pour pouvoir supprimer une vue, vous devez en être propriétaire ou
posséder le privilège DROP ANY VIEW.
La suppression d’une vue n’entraı̂ne pas la perte des données qui
résident toujours dans les tables.
La syntaxe SQL est la suivante :
DROP VIEW [schéma.]nomVue ;
Les vues ou synonymes qui dépendent de la vue supprimée ne sont
pas détruits, ils sont seulement marqués comme invalides.

79 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Suppression d’une vue


Pour pouvoir supprimer une vue, vous devez en être propriétaire ou
posséder le privilège DROP ANY VIEW.
La suppression d’une vue n’entraı̂ne pas la perte des données qui
résident toujours dans les tables.
La syntaxe SQL est la suivante :
DROP VIEW [schéma.]nomVue ;
Les vues ou synonymes qui dépendent de la vue supprimée ne sont
pas détruits, ils sont seulement marqués comme invalides.

79 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils Vues simples
Gestion des vues Vues complexes
Gestion des transactions
Le dictionnaire de données
References

Gestion des vues

Suppression d’une vue


Pour pouvoir supprimer une vue, vous devez en être propriétaire ou
posséder le privilège DROP ANY VIEW.
La suppression d’une vue n’entraı̂ne pas la perte des données qui
résident toujours dans les tables.
La syntaxe SQL est la suivante :
DROP VIEW [schéma.]nomVue ;
Les vues ou synonymes qui dépendent de la vue supprimée ne sont
pas détruits, ils sont seulement marqués comme invalides.

79 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Plan

1 Gestion des utilisateurs


2 Gestion des privilèges
3 Gestion des synonymes
4 Gestion des profils
5 Gestion des vues
6 Gestion des transactions
7 Le dictionnaire de données

80 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Définition
Une transaction est une unité logique de traitement (séquence
d’opérations qui doit être exécutée dans son intégralité) qui
est : soit complètement exécutée soit complètement
abandonnée.
Une transaction fait passer la base de données d’un état
cohérent à un autre état cohérent.
Si une transaction ne va pas à son terme pour une raison ou
pour une autre (erreur de syntaxe, violation de contrainte, bug
SGBD, arrêt machine, etc), la base est restaurée dans l’état
où elle se trouvait avant que la transaction ne démarre.

81 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Définition
Une transaction est une unité logique de traitement (séquence
d’opérations qui doit être exécutée dans son intégralité) qui
est : soit complètement exécutée soit complètement
abandonnée.
Une transaction fait passer la base de données d’un état
cohérent à un autre état cohérent.
Si une transaction ne va pas à son terme pour une raison ou
pour une autre (erreur de syntaxe, violation de contrainte, bug
SGBD, arrêt machine, etc), la base est restaurée dans l’état
où elle se trouvait avant que la transaction ne démarre.

81 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Définition
Une transaction est une unité logique de traitement (séquence
d’opérations qui doit être exécutée dans son intégralité) qui
est : soit complètement exécutée soit complètement
abandonnée.
Une transaction fait passer la base de données d’un état
cohérent à un autre état cohérent.
Si une transaction ne va pas à son terme pour une raison ou
pour une autre (erreur de syntaxe, violation de contrainte, bug
SGBD, arrêt machine, etc), la base est restaurée dans l’état
où elle se trouvait avant que la transaction ne démarre.

81 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

État cohérent
Une base de données est cohérente (ou dans un état cohérent)
lorsque toutes les données qu’elle contient sont en accord avec les
contraintes d’intégrité du schéma conceptuel.

État correct
Une base de données est dans un état correct lorsqu’elle est dans
un état cohérent et que les valeurs des données reflètent
exactement le résultat attendu des modifications effectuées.

82 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

État cohérent
Une base de données est cohérente (ou dans un état cohérent)
lorsque toutes les données qu’elle contient sont en accord avec les
contraintes d’intégrité du schéma conceptuel.

État correct
Une base de données est dans un état correct lorsqu’elle est dans
un état cohérent et que les valeurs des données reflètent
exactement le résultat attendu des modifications effectuées.

82 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction
Propriétés
Un système de gestion de transactions doit garantir:
1 Atomicité (Tout ou rien): Une transaction doit effectuer
toutes ses mises à jour avec succès; sinon ne rien faire du tout.
2 Cohérence: une transaction doit laisser la base dans un état
cohérent.
3 Isolation: les modifications effectuées par une transaction ne
doivent être visibles aux autres transactions qu’une fois la
transaction validée.
4 Durabilité: Dès qu’une transaction valide ses modifications, le
système doit garantir que ces modifications seront conservées,
même en cas de panne.
83 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction
Propriétés
Un système de gestion de transactions doit garantir:
1 Atomicité (Tout ou rien): Une transaction doit effectuer
toutes ses mises à jour avec succès; sinon ne rien faire du tout.
2 Cohérence: une transaction doit laisser la base dans un état
cohérent.
3 Isolation: les modifications effectuées par une transaction ne
doivent être visibles aux autres transactions qu’une fois la
transaction validée.
4 Durabilité: Dès qu’une transaction valide ses modifications, le
système doit garantir que ces modifications seront conservées,
même en cas de panne.
83 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction
Propriétés
Un système de gestion de transactions doit garantir:
1 Atomicité (Tout ou rien): Une transaction doit effectuer
toutes ses mises à jour avec succès; sinon ne rien faire du tout.
2 Cohérence: une transaction doit laisser la base dans un état
cohérent.
3 Isolation: les modifications effectuées par une transaction ne
doivent être visibles aux autres transactions qu’une fois la
transaction validée.
4 Durabilité: Dès qu’une transaction valide ses modifications, le
système doit garantir que ces modifications seront conservées,
même en cas de panne.
83 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction
Propriétés
Un système de gestion de transactions doit garantir:
1 Atomicité (Tout ou rien): Une transaction doit effectuer
toutes ses mises à jour avec succès; sinon ne rien faire du tout.
2 Cohérence: une transaction doit laisser la base dans un état
cohérent.
3 Isolation: les modifications effectuées par une transaction ne
doivent être visibles aux autres transactions qu’une fois la
transaction validée.
4 Durabilité: Dès qu’une transaction valide ses modifications, le
système doit garantir que ces modifications seront conservées,
même en cas de panne.
83 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Transaction avec Oracle


Une transaction débute avec la première instruction SQL et se
termine :
lors de l’exécution de COMMIT ou ROLLBACK
lors de la déconnexion de l’utilisateur (EXIT de la BD)
(commit)
lors d’un arrêt anormal du processus utilisateur (ROLLBACK)

84 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Transaction avec Oracle


Une transaction débute avec la première instruction SQL et se
termine :
lors de l’exécution de COMMIT ou ROLLBACK
lors de la déconnexion de l’utilisateur (EXIT de la BD)
(commit)
lors d’un arrêt anormal du processus utilisateur (ROLLBACK)

84 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Transaction avec Oracle


Une transaction débute avec la première instruction SQL et se
termine :
lors de l’exécution de COMMIT ou ROLLBACK
lors de la déconnexion de l’utilisateur (EXIT de la BD)
(commit)
lors d’un arrêt anormal du processus utilisateur (ROLLBACK)

84 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction
Points de sauvegarde intermédiaires
il est possible d’annuler un sous ensemble d’opérations d une
transaction à partir d’un point de repère

85 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Points de sauvegarde intermédiaires


Création d’un point de reprise:
SAVEPOINT nom point de reprise;
Pour annuler les opérations à partir d’un point de repère, on
utilise la commande ROLLBACK en précisant le point de
repère
ROLLBACK TO [SAVEPOINT] nom point de reprise;

86 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Points de sauvegarde intermédiaires


Création d’un point de reprise:
SAVEPOINT nom point de reprise;
Pour annuler les opérations à partir d’un point de repère, on
utilise la commande ROLLBACK en précisant le point de
repère
ROLLBACK TO [SAVEPOINT] nom point de reprise;

86 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction
Points de sauvegarde intermédiaires: Exemple
Instructions SQL Résultats

SAVEPOINT P1; Premier point de reprise de la transaction


DELETE ..; Modification de la base.
SAVEPOINT P2; Deuxième point de reprise de la transaction
INSERT INTO ..; Modification de la base.
ROLLBACK TO P2; L’ordre INSERT est annulé
ROLLBACK TO P1; L’ordre DELETE est annulé
UPDATE.. Modification de la base.
COMMIT; Valide l’action effectuée par le UPDATE (dernière modif)
Les autres modifications ont été annulées avant le COMMIT.

87 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Points de sauvegarde intermédiaires: Exercice 1


Commenter et donner le résultat de l’exécution de la transaction
ci-dessous:
% Début de la transaction tran1;
CREATE TABLE T1 (A INTEGER) ;
CREATE TABLE T2 (A INTEGER) ;
CREATE TABLE T3 (A INTEGER) ;
INSERT INTO T1 VALUES (1) ;
INSERT INTO T2 VALUES (1) ;
INSERT INTO T3 VALUES (1) ;
ROLLBACK;

88 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction
Points de sauvegarde intermédiaires: Exercice 2
Commenter et donner le résultat de l’exécution de la transaction
ci-dessous:
% Début de la transaction Tr2 ;
CREATE TABLE T1 (A INTEGER) ;
CREATE TABLE T2 (A INTEGER) ;
INSERT INTO T1 VALUES (1);
SAVEPOINT P1 ;
CREATE TABLE T3 (A INTEGER) ;
INSERT INTO T2 VALUES (1) ;
INSERT INTO T3 VALUES (1) ;
ROLLBACK TO P1 ;
COMMIT; 89 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Points de sauvegarde intermédiaires: Exercice 3


Soit une table PIL (pilote) ayant initialement 0 tuples. Commenter
chaque action dans les deux transactions ci-dessous, et dire quel
sera le nombre final des tuples après leur exécution ?
% Début TRAN; % Début TRAN;
INSERT INTO PIL VALUES INSERT INTO PIL VALUES
(80,’Durand’,’16/01/1990’) ; (80,’Ali’,’16/01/1990’) ;
SELECT * FROM PIL; SELECT * FROM PIL;
ROLLBACK; COMMIT;
SELECT * FROM PIL; SELECT * FROM PIL;

90 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Points de sauvegarde intermédiaires: Exercice 3


Transaction 01 : 0 tuple, et transaction 02 : 01 tuple.

91 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Contrôle des accès concurrents


Les incidents liés aux données dans un SGBD proviennent
essentiellement de l’accès concurrent à ces dernières par
plusieurs utilisateurs
Les accès concurrents: plusieurs utilisateurs ou applications
peuvent accéder aux données en même temps (utilisateurs
simultanés).
Des transactions exécutées concurremment peuvent interférer
et mettre la base de données dans un état incohérent.

92 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Considérons deux transactions T1 et T2 qui s’intéressent à un
même objet A, Les opérations possibles sur A, sont : lire et écrire
Quatre possibilités :
1 Lecture - Lecture (Partage): Aucun conflit puisque un même
objet peut toujours être partagé en lecture
2 Ecriture - Ecriture (Pertes de données)
3 Ecriture - Lecture (Lecture impropre)
4 Lecture - Ecriture (Lecture non reproductible)

93 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Considérons deux transactions T1 et T2 qui s’intéressent à un
même objet A, Les opérations possibles sur A, sont : lire et écrire
Quatre possibilités :
1 Lecture - Lecture (Partage): Aucun conflit puisque un même
objet peut toujours être partagé en lecture
2 Ecriture - Ecriture (Pertes de données)
3 Ecriture - Lecture (Lecture impropre)
4 Lecture - Ecriture (Lecture non reproductible)

93 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Considérons deux transactions T1 et T2 qui s’intéressent à un
même objet A, Les opérations possibles sur A, sont : lire et écrire
Quatre possibilités :
1 Lecture - Lecture (Partage): Aucun conflit puisque un même
objet peut toujours être partagé en lecture
2 Ecriture - Ecriture (Pertes de données)
3 Ecriture - Lecture (Lecture impropre)
4 Lecture - Ecriture (Lecture non reproductible)

93 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Considérons deux transactions T1 et T2 qui s’intéressent à un
même objet A, Les opérations possibles sur A, sont : lire et écrire
Quatre possibilités :
1 Lecture - Lecture (Partage): Aucun conflit puisque un même
objet peut toujours être partagé en lecture
2 Ecriture - Ecriture (Pertes de données)
3 Ecriture - Lecture (Lecture impropre)
4 Lecture - Ecriture (Lecture non reproductible)

93 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Considérons deux transactions T1 et T2 qui s’intéressent à un
même objet A, Les opérations possibles sur A, sont : lire et écrire
Quatre possibilités :
1 Lecture - Lecture (Partage): Aucun conflit puisque un même
objet peut toujours être partagé en lecture
2 Ecriture - Ecriture (Pertes de données)
3 Ecriture - Lecture (Lecture impropre)
4 Lecture - Ecriture (Lecture non reproductible)

93 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Considérons deux transactions T1 et T2 qui s’intéressent à un
même objet A, Les opérations possibles sur A, sont : lire et écrire
Quatre possibilités :
1 Lecture - Lecture (Partage): Aucun conflit puisque un même
objet peut toujours être partagé en lecture
2 Ecriture - Ecriture (Pertes de données)
3 Ecriture - Lecture (Lecture impropre)
4 Lecture - Ecriture (Lecture non reproductible)

93 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Ecriture - Ecriture (Pertes de données) T2 peut écraser la valeur de A, par une autre
écriture, celle effectuée par T1

Temps Transaction T1 Transaction T2


t0 A=20 A=20
t1 Lire (A)
t2 Lire (A)
t3 A=A+50; A=A+10;
t4 Ecrire(A)
t5 Ecrire(A)

Résultat T1: A=70 et Résultat T2: A=30


Normalement Résultat correct :A=80

94 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Ecriture - Lecture (Lecture impropre) Une transaction lit des données écrites par une
transaction concurrente non validée. Ici T2 lit une valeur modifiée par T1 et ensuite
T1 est annulée.

Temps Transaction T1 Transaction T2


t0 A=20 A=20
t1 Lire (A)
t2 A=A+50;
t4 Ecrire (A) (A=70)
t5 Lire (A)
t6 Annulation

Résultat : A = 70, Résultat correct : A = 20

95 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Transaction

Exemple des transactions concurrentes


Lecture - Ecriture (Lecture non reproductible) T1 modifie la
valeur de A entre deux lectures de T2. T2 lit la même donnée A à
2 instants différents et n’obtient pas la même valeur

96 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention
De nombreuses solutions ont été proposées pour traiter le problème
des accès concurrents. Deux principales techniques :
Exécution en série: les transactions sont exécutées en série, il
n’y a plus de concurrence à l’exécution.
Verrouillage des données à manipuler.

97 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention
De nombreuses solutions ont été proposées pour traiter le problème
des accès concurrents. Deux principales techniques :
Exécution en série: les transactions sont exécutées en série, il
n’y a plus de concurrence à l’exécution.
Verrouillage des données à manipuler.

97 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Exécution en série


Une exécution simultanée de plusieurs transactions est sérialisable
si, quel que soit l’état cohérent initial de la BD, elle fournit un
résultat identique à celui produit par une exécution séquentielle des
transactions.
Il doit exister au moins un ordre d’exécution séquentielle des
transactions qui fournit le même résultat.
Les transactions vérifiant le concept de sérialisation sont dites
sérialisées.

98 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Exécution en série


Une exécution simultanée de plusieurs transactions est sérialisable
si, quel que soit l’état cohérent initial de la BD, elle fournit un
résultat identique à celui produit par une exécution séquentielle des
transactions.
Il doit exister au moins un ordre d’exécution séquentielle des
transactions qui fournit le même résultat.
Les transactions vérifiant le concept de sérialisation sont dites
sérialisées.

98 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Exécution en série


Une exécution simultanée de plusieurs transactions est sérialisable
si, quel que soit l’état cohérent initial de la BD, elle fournit un
résultat identique à celui produit par une exécution séquentielle des
transactions.
Il doit exister au moins un ordre d’exécution séquentielle des
transactions qui fournit le même résultat.
Les transactions vérifiant le concept de sérialisation sont dites
sérialisées.

98 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Figure: Une exécution en parallèle est une exécution en série des


transactions

99 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Verrouiller momentanément les données utilisées par une
transaction jusqu’à la fin de la mise à jour.
les autres transactions demandant ces données sont mises en
attente jusqu’à leur libération ( déverrouillage).
Le verrouillage s’applique d’une façon générale à une
ressource.
Objets créés par les utilisateurs ( tables, ou quelques lignes
d’une table)
objets système ( éléments du dictionnaire ou des zones de
données en mémoire centrale)

100 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Verrouiller momentanément les données utilisées par une
transaction jusqu’à la fin de la mise à jour.
les autres transactions demandant ces données sont mises en
attente jusqu’à leur libération ( déverrouillage).
Le verrouillage s’applique d’une façon générale à une
ressource.
Objets créés par les utilisateurs ( tables, ou quelques lignes
d’une table)
objets système ( éléments du dictionnaire ou des zones de
données en mémoire centrale)

100 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Verrouiller momentanément les données utilisées par une
transaction jusqu’à la fin de la mise à jour.
les autres transactions demandant ces données sont mises en
attente jusqu’à leur libération ( déverrouillage).
Le verrouillage s’applique d’une façon générale à une
ressource.
Objets créés par les utilisateurs ( tables, ou quelques lignes
d’une table)
objets système ( éléments du dictionnaire ou des zones de
données en mémoire centrale)

100 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Verrouiller momentanément les données utilisées par une
transaction jusqu’à la fin de la mise à jour.
les autres transactions demandant ces données sont mises en
attente jusqu’à leur libération ( déverrouillage).
Le verrouillage s’applique d’une façon générale à une
ressource.
Objets créés par les utilisateurs ( tables, ou quelques lignes
d’une table)
objets système ( éléments du dictionnaire ou des zones de
données en mémoire centrale)

100 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Verrouiller momentanément les données utilisées par une
transaction jusqu’à la fin de la mise à jour.
les autres transactions demandant ces données sont mises en
attente jusqu’à leur libération ( déverrouillage).
Le verrouillage s’applique d’une façon générale à une
ressource.
Objets créés par les utilisateurs ( tables, ou quelques lignes
d’une table)
objets système ( éléments du dictionnaire ou des zones de
données en mémoire centrale)

100 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Le verrouillage repose sur les deux actions :
Acquérir un verrou sur l’objet A : verrouiller (A)(lock(A))
Relâcher le verrou sur l’objet A : libérer (A)(unlock(A))
Pour garantir l’isolation des mises à jour, les verrous sont
généralement relâchés en fin de transaction.
Si une transaction demande un verrouillage d’un objet déjà
verrouillé, cette transaction est mise en attente du
relâchement de l’objet (WAIT).
A est un objet (un tuple ou bien une table) de la BD.

101 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Le verrouillage repose sur les deux actions :
Acquérir un verrou sur l’objet A : verrouiller (A)(lock(A))
Relâcher le verrou sur l’objet A : libérer (A)(unlock(A))
Pour garantir l’isolation des mises à jour, les verrous sont
généralement relâchés en fin de transaction.
Si une transaction demande un verrouillage d’un objet déjà
verrouillé, cette transaction est mise en attente du
relâchement de l’objet (WAIT).
A est un objet (un tuple ou bien une table) de la BD.

101 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Le verrouillage repose sur les deux actions :
Acquérir un verrou sur l’objet A : verrouiller (A)(lock(A))
Relâcher le verrou sur l’objet A : libérer (A)(unlock(A))
Pour garantir l’isolation des mises à jour, les verrous sont
généralement relâchés en fin de transaction.
Si une transaction demande un verrouillage d’un objet déjà
verrouillé, cette transaction est mise en attente du
relâchement de l’objet (WAIT).
A est un objet (un tuple ou bien une table) de la BD.

101 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Le verrouillage repose sur les deux actions :
Acquérir un verrou sur l’objet A : verrouiller (A)(lock(A))
Relâcher le verrou sur l’objet A : libérer (A)(unlock(A))
Pour garantir l’isolation des mises à jour, les verrous sont
généralement relâchés en fin de transaction.
Si une transaction demande un verrouillage d’un objet déjà
verrouillé, cette transaction est mise en attente du
relâchement de l’objet (WAIT).
A est un objet (un tuple ou bien une table) de la BD.

101 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Le verrouillage repose sur les deux actions :
Acquérir un verrou sur l’objet A : verrouiller (A)(lock(A))
Relâcher le verrou sur l’objet A : libérer (A)(unlock(A))
Pour garantir l’isolation des mises à jour, les verrous sont
généralement relâchés en fin de transaction.
Si une transaction demande un verrouillage d’un objet déjà
verrouillé, cette transaction est mise en attente du
relâchement de l’objet (WAIT).
A est un objet (un tuple ou bien une table) de la BD.

101 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

102 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Deux types de verrous :
Verrous exclusifs (X locks) ou verrous d’écriture
Verrous partagés (S locks) ou verrous de lecture

103 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Deux types de verrous :
Verrous exclusifs (X locks) ou verrous d’écriture
Verrous partagés (S locks) ou verrous de lecture

103 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Deux types de verrous :
Verrous exclusifs (X locks) ou verrous d’écriture
Verrous partagés (S locks) ou verrous de lecture

103 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Mécanismes de prévention: Verrouillage


Deux types de verrous :
Verrous exclusifs (X locks) ou verrous d’écriture
Verrous partagés (S locks) ou verrous de lecture

103 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Protocole d’accès aux données


1 Aucune transaction ne peut effectuer une lecture ou une mise à jour
d’un objet si elle n’a pas acquis au préalable un verrou S ou X sur
cet objet
2 Si une transaction a un verrou S sur un objet, elle peut demander le
verrou X (upgrade).
3 Si une transaction ne peut obtenir un verrou déjà détenu par une
autre transaction T2, alors elle doit attendre jusqu’à ce que le
verrou soit libéré par T2.
4 Les verrous X sont conservés jusqu’à la fin de la transaction
(COMMIT ou ROLLBACK)(En général les verrous S sont
également conservés jusqu’à cette date).
104 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Protocole d’accès aux données


1 Aucune transaction ne peut effectuer une lecture ou une mise à jour
d’un objet si elle n’a pas acquis au préalable un verrou S ou X sur
cet objet
2 Si une transaction a un verrou S sur un objet, elle peut demander le
verrou X (upgrade).
3 Si une transaction ne peut obtenir un verrou déjà détenu par une
autre transaction T2, alors elle doit attendre jusqu’à ce que le
verrou soit libéré par T2.
4 Les verrous X sont conservés jusqu’à la fin de la transaction
(COMMIT ou ROLLBACK)(En général les verrous S sont
également conservés jusqu’à cette date).
104 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Protocole d’accès aux données


1 Aucune transaction ne peut effectuer une lecture ou une mise à jour
d’un objet si elle n’a pas acquis au préalable un verrou S ou X sur
cet objet
2 Si une transaction a un verrou S sur un objet, elle peut demander le
verrou X (upgrade).
3 Si une transaction ne peut obtenir un verrou déjà détenu par une
autre transaction T2, alors elle doit attendre jusqu’à ce que le
verrou soit libéré par T2.
4 Les verrous X sont conservés jusqu’à la fin de la transaction
(COMMIT ou ROLLBACK)(En général les verrous S sont
également conservés jusqu’à cette date).
104 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Phénomènes indésirables: La privation


Une transaction risque d’attendre un objet indéfiniment si à
chaque fois que cet objet est libéré, il est pris par une autre
transaction.
Pour traiter ce problème, on peut organiser sur chaque verrou
une file d’attente avec une politique ”première arrivée”,
”première servie”.

105 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Phénomènes indésirables: La privation


Une transaction risque d’attendre un objet indéfiniment si à
chaque fois que cet objet est libéré, il est pris par une autre
transaction.
Pour traiter ce problème, on peut organiser sur chaque verrou
une file d’attente avec une politique ”première arrivée”,
”première servie”.

105 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Phénomènes indésirables: Inter-blocage(Deadlock)


L’emploi des verrous peut entraı̂ner des situations dans lesquelles 2
ou plusieurs transactions se trouvent bloquées parce qu’elles
utilisent les mêmes ressources; chacune se trouve en attente de la
libération de ressources utilisées par une autre transaction.

106 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Phénomènes indésirables: Inter-blocage(Deadlock)


Détection/résolution: Les inter-blocages sont détectés en
construisant le graphe ”qui attend quoi” et en y recherchant
les cycles. Lorsqu’un cycle est découvert l’une des
transactions est choisie comme victime, elle est annulée (tuée)
de manière à faire disparaı̂tre le cycle.

107 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Phénomènes indésirables: Inter-blocage(Deadlock)


Préventif : éviter les inter-blocages: Lorsqu’une demande
d’acquisition de verrou ne peut être satisfaite on fait passer un
test aux deux transactions impliquées, à savoir celle qui
demande le verrou, Ti, et celle qui le possède déjà, Tj.
Si Ti et Tj passent le test alors Ti est autorisée à attendre Tj,
sinon l’une des deux transactions est annulée pour être
relancée par la suite.

108 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Phénomènes indésirables: Inter-blocage(Deadlock)


Préventif : éviter les inter-blocages: Lorsqu’une demande
d’acquisition de verrou ne peut être satisfaite on fait passer un
test aux deux transactions impliquées, à savoir celle qui
demande le verrou, Ti, et celle qui le possède déjà, Tj.
Si Ti et Tj passent le test alors Ti est autorisée à attendre Tj,
sinon l’une des deux transactions est annulée pour être
relancée par la suite.

108 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Syntaxe: Verrou de table


LOCK TABLE table name IN lock mode MODE [WAIT | NOWAIT
];
table name: nom de la table.
Lock mode: mode de verrouillage de la table comme:
SHARE: Verrous partagé pour lecture (S-lock)
EXCLUSIVE: verrou exclusif pour écriture (X-lock)
Exemple: LOCK TABLE pilote IN EXCLUSIVE MODE NOWAIT;

109 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Syntaxe: Verrou de table


LOCK TABLE table name IN lock mode MODE [WAIT | NOWAIT
];
table name: nom de la table.
Lock mode: mode de verrouillage de la table comme:
SHARE: Verrous partagé pour lecture (S-lock)
EXCLUSIVE: verrou exclusif pour écriture (X-lock)
Exemple: LOCK TABLE pilote IN EXCLUSIVE MODE NOWAIT;

109 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Gestion des transactions concurrentes

Syntaxe: Verrou de table


LOCK TABLE table name IN lock mode MODE [WAIT | NOWAIT
];
table name: nom de la table.
Lock mode: mode de verrouillage de la table comme:
SHARE: Verrous partagé pour lecture (S-lock)
EXCLUSIVE: verrou exclusif pour écriture (X-lock)
Exemple: LOCK TABLE pilote IN EXCLUSIVE MODE NOWAIT;

109 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Plan

1 Gestion des utilisateurs


2 Gestion des privilèges
3 Gestion des synonymes
4 Gestion des profils
5 Gestion des vues
6 Gestion des transactions
7 Le dictionnaire de données

110 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Le dictionnaire des données contient:


La définition des tables, tablespaces, vues, index, synonymes,
séquences, procédures, fonctions, paquetages, déclencheurs, etc.
la description de l’espace disque alloué et occupé pour chaque objet
les valeurs par défaut des colonnes (DEFAULT) ainsi que la
description des contraintes de vérification et d’intégrité référentielle
le nom des utilisateurs de la base
les privilèges et rôles pour chaque utilisateur

111 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Le dictionnaire des données contient:


La définition des tables, tablespaces, vues, index, synonymes,
séquences, procédures, fonctions, paquetages, déclencheurs, etc.
la description de l’espace disque alloué et occupé pour chaque objet
les valeurs par défaut des colonnes (DEFAULT) ainsi que la
description des contraintes de vérification et d’intégrité référentielle
le nom des utilisateurs de la base
les privilèges et rôles pour chaque utilisateur

111 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Le dictionnaire des données contient:


La définition des tables, tablespaces, vues, index, synonymes,
séquences, procédures, fonctions, paquetages, déclencheurs, etc.
la description de l’espace disque alloué et occupé pour chaque objet
les valeurs par défaut des colonnes (DEFAULT) ainsi que la
description des contraintes de vérification et d’intégrité référentielle
le nom des utilisateurs de la base
les privilèges et rôles pour chaque utilisateur

111 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Le dictionnaire des données contient:


La définition des tables, tablespaces, vues, index, synonymes,
séquences, procédures, fonctions, paquetages, déclencheurs, etc.
la description de l’espace disque alloué et occupé pour chaque objet
les valeurs par défaut des colonnes (DEFAULT) ainsi que la
description des contraintes de vérification et d’intégrité référentielle
le nom des utilisateurs de la base
les privilèges et rôles pour chaque utilisateur

111 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Le dictionnaire des données contient:


La définition des tables, tablespaces, vues, index, synonymes,
séquences, procédures, fonctions, paquetages, déclencheurs, etc.
la description de l’espace disque alloué et occupé pour chaque objet
les valeurs par défaut des colonnes (DEFAULT) ainsi que la
description des contraintes de vérification et d’intégrité référentielle
le nom des utilisateurs de la base
les privilèges et rôles pour chaque utilisateur

111 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Remarques
Pour des raisons de sécurité, toutes les tables du dictionnaire
des données sont accessibles en lecture seulement par
l’intermédiaire des vues.
Elles appartiennent à l’utilisateur SYS et sont situées dans
l’espace de stockage (tablespace) SYSTEM.
L’interrogation du dictionnaire des données ne peut se faire
qu’au travers des requêtes SELECT.
Le dictionnaire des données est mis automatiquement à jour
après chaque instruction SQL du LMD (INSERT, UPDATE,
DELETE, LOCK TABLE).
112 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Remarques
Pour des raisons de sécurité, toutes les tables du dictionnaire
des données sont accessibles en lecture seulement par
l’intermédiaire des vues.
Elles appartiennent à l’utilisateur SYS et sont situées dans
l’espace de stockage (tablespace) SYSTEM.
L’interrogation du dictionnaire des données ne peut se faire
qu’au travers des requêtes SELECT.
Le dictionnaire des données est mis automatiquement à jour
après chaque instruction SQL du LMD (INSERT, UPDATE,
DELETE, LOCK TABLE).
112 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Remarques
Pour des raisons de sécurité, toutes les tables du dictionnaire
des données sont accessibles en lecture seulement par
l’intermédiaire des vues.
Elles appartiennent à l’utilisateur SYS et sont situées dans
l’espace de stockage (tablespace) SYSTEM.
L’interrogation du dictionnaire des données ne peut se faire
qu’au travers des requêtes SELECT.
Le dictionnaire des données est mis automatiquement à jour
après chaque instruction SQL du LMD (INSERT, UPDATE,
DELETE, LOCK TABLE).
112 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Remarques
Pour des raisons de sécurité, toutes les tables du dictionnaire
des données sont accessibles en lecture seulement par
l’intermédiaire des vues.
Elles appartiennent à l’utilisateur SYS et sont situées dans
l’espace de stockage (tablespace) SYSTEM.
L’interrogation du dictionnaire des données ne peut se faire
qu’au travers des requêtes SELECT.
Le dictionnaire des données est mis automatiquement à jour
après chaque instruction SQL du LMD (INSERT, UPDATE,
DELETE, LOCK TABLE).
112 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Il existe 3 catégories de vues (reconnaissables par leur préfixe) :


USER XXX : décrit les objets appartenant à l’utilisateur connecté
(qui interroge le dictionnaire)
ALL XXX : décrit les objets accessibles à l’utilisateur connecté (les
objets du schéma de l’utilisateur connecté et les objets sur lesquels il
a reçu des privilèges)
DBA XXX : décrit tous les objets (vues autorisées aux DBAs
seulement...)

Les vues commençant par ’ALL ’ ne décrivent pas TOUS les objets mais
les objets ACCESSIBLES à l’utilisateur courant. Ainsi ALL TABLES ne
donne pas la liste de toutes les tables de la base, c’est DBA TABLES.
113 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Il existe 3 catégories de vues (reconnaissables par leur préfixe) :


USER XXX : décrit les objets appartenant à l’utilisateur connecté
(qui interroge le dictionnaire)
ALL XXX : décrit les objets accessibles à l’utilisateur connecté (les
objets du schéma de l’utilisateur connecté et les objets sur lesquels il
a reçu des privilèges)
DBA XXX : décrit tous les objets (vues autorisées aux DBAs
seulement...)

Les vues commençant par ’ALL ’ ne décrivent pas TOUS les objets mais
les objets ACCESSIBLES à l’utilisateur courant. Ainsi ALL TABLES ne
donne pas la liste de toutes les tables de la base, c’est DBA TABLES.
113 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Il existe 3 catégories de vues (reconnaissables par leur préfixe) :


USER XXX : décrit les objets appartenant à l’utilisateur connecté
(qui interroge le dictionnaire)
ALL XXX : décrit les objets accessibles à l’utilisateur connecté (les
objets du schéma de l’utilisateur connecté et les objets sur lesquels il
a reçu des privilèges)
DBA XXX : décrit tous les objets (vues autorisées aux DBAs
seulement...)

Les vues commençant par ’ALL ’ ne décrivent pas TOUS les objets mais
les objets ACCESSIBLES à l’utilisateur courant. Ainsi ALL TABLES ne
donne pas la liste de toutes les tables de la base, c’est DBA TABLES.
113 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Il existe 3 catégories de vues (reconnaissables par leur préfixe) :


USER XXX : décrit les objets appartenant à l’utilisateur connecté
(qui interroge le dictionnaire)
ALL XXX : décrit les objets accessibles à l’utilisateur connecté (les
objets du schéma de l’utilisateur connecté et les objets sur lesquels il
a reçu des privilèges)
DBA XXX : décrit tous les objets (vues autorisées aux DBAs
seulement...)

Les vues commençant par ’ALL ’ ne décrivent pas TOUS les objets mais
les objets ACCESSIBLES à l’utilisateur courant. Ainsi ALL TABLES ne
donne pas la liste de toutes les tables de la base, c’est DBA TABLES.
113 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données
Démarche à suivre
La démarche à suivre afin d’interroger correctement le dictionnaire
des données à propos d’un objet est la suivante :
Trouver le nom de la vue ou des vues qui sont pertinentes à
partir de la vue DICTIONARY.
Choisir les colonnes de la vue à sélectionner en affichant la
structure de la vue (par la commande DESC) ;
Interroger la vue en exécutant une requête SELECT contenant
les colonnes intéressantes.
La première étape peut être omise si on connaı̂t déjà le nom de la
vue (ce sera le cas pour les vues usuelles que vous aurez déjà
utilisées à plusieurs reprises).
114 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données
Démarche à suivre
La démarche à suivre afin d’interroger correctement le dictionnaire
des données à propos d’un objet est la suivante :
Trouver le nom de la vue ou des vues qui sont pertinentes à
partir de la vue DICTIONARY.
Choisir les colonnes de la vue à sélectionner en affichant la
structure de la vue (par la commande DESC) ;
Interroger la vue en exécutant une requête SELECT contenant
les colonnes intéressantes.
La première étape peut être omise si on connaı̂t déjà le nom de la
vue (ce sera le cas pour les vues usuelles que vous aurez déjà
utilisées à plusieurs reprises).
114 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données
Démarche à suivre
La démarche à suivre afin d’interroger correctement le dictionnaire
des données à propos d’un objet est la suivante :
Trouver le nom de la vue ou des vues qui sont pertinentes à
partir de la vue DICTIONARY.
Choisir les colonnes de la vue à sélectionner en affichant la
structure de la vue (par la commande DESC) ;
Interroger la vue en exécutant une requête SELECT contenant
les colonnes intéressantes.
La première étape peut être omise si on connaı̂t déjà le nom de la
vue (ce sera le cas pour les vues usuelles que vous aurez déjà
utilisées à plusieurs reprises).
114 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données
Démarche à suivre
La démarche à suivre afin d’interroger correctement le dictionnaire
des données à propos d’un objet est la suivante :
Trouver le nom de la vue ou des vues qui sont pertinentes à
partir de la vue DICTIONARY.
Choisir les colonnes de la vue à sélectionner en affichant la
structure de la vue (par la commande DESC) ;
Interroger la vue en exécutant une requête SELECT contenant
les colonnes intéressantes.
La première étape peut être omise si on connaı̂t déjà le nom de la
vue (ce sera le cas pour les vues usuelles que vous aurez déjà
utilisées à plusieurs reprises).
114 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données
Démarche à suivre
La démarche à suivre afin d’interroger correctement le dictionnaire
des données à propos d’un objet est la suivante :
Trouver le nom de la vue ou des vues qui sont pertinentes à
partir de la vue DICTIONARY.
Choisir les colonnes de la vue à sélectionner en affichant la
structure de la vue (par la commande DESC) ;
Interroger la vue en exécutant une requête SELECT contenant
les colonnes intéressantes.
La première étape peut être omise si on connaı̂t déjà le nom de la
vue (ce sera le cas pour les vues usuelles que vous aurez déjà
utilisées à plusieurs reprises).
114 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Recherche du nom d’une vue


L’extraction du nom des vues qui concernent un objet est rendue
possible par l’interrogation de la vue DICTIONARY (de synonyme
DICT).
Exemple:
SELECT * FROM DICTIONARY WHERE table name LIKE ’%
SEQUENCE%’;
TABLE Name COMMENTS
ALL SEQUENCES Description of SEQUENCEs accessible to the user
DBA SEQUENCES Description of all SEQUENCEs in the database
USER SEQUENCES Description of the user’s own sequences

115 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données

Recherche du nom d’une vue


L’extraction du nom des vues qui concernent un objet est rendue
possible par l’interrogation de la vue DICTIONARY (de synonyme
DICT).
Exemple:
SELECT * FROM DICTIONARY WHERE table name LIKE ’%
SEQUENCE%’;
TABLE Name COMMENTS
ALL SEQUENCES Description of SEQUENCEs accessible to the user
DBA SEQUENCES Description of all SEQUENCEs in the database
USER SEQUENCES Description of the user’s own sequences

115 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Exemple: la vue DBA USERS


On peut regarder dans la vue DICTIONARY comment est décrite
la VUE DBA USERS :
select * from DICTIONARY where table name= ’DBA USERS’;
TABLE NAME COMMENTS
DBA USERS Information about all users of the database

Pour une description plus détaillée on peut faire un DESCRIBE de


la table sous SQL*PLus

116 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Exemple: la vue DBA USERS


DESC DBA USERS
Nom NULL? Type
USERNAME NOT NULL VARCHAR2(30)
USER ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT STATUS NOT NULL VARCHAR2(32)
LOCK DATE DATE
EXPIRY DATE DATE
DEFAULT TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL RSRC CONSUMER VARCHAR2(30)
GROUP
EXTERNAL NAME VARCHAR2(4000)

117 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

Le dictionnaire de données
Les objets d’un schéma(USER OBJECTS)
SELECT OBJECT NAME, OBJECT TYPE, CREATED FROM
USER OBJECTS;

118 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

L’utilisation du dictionnaire de données

Recherche des contraintes d’une table(USER CONSTRAINTS)


SELECT CONSTRAINT NAME, CONSTRAINT TYPE FROM
USER CONSTRAINTS WHERE TABLE NAME = ’PILOTE’;

Dans la colonne décrivant le type de contrainte, la lettre C signifie CHECK, P


représente PRIMARY KEY, R intégrité référentielle et U UNIQUE. A noter que la
contrainte NULL est en réalité une contrainte CHECK.

119 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

L’utilisation du dictionnaire de données

Détails des contraintes référentielles (USER CONSTRAINTS)


SELECT CONSTRAINT NAME, CONSTRAINT TYPE,
R CONSTRAINT NAME FROM USER CONSTRAINTS WHERE
TABLE NAME = ’VOL’;

La colonne R CONSTRAINT NAME (Remote CONSTRAINT NAME) désigne le nom


de la contrainte de la clé primaire cible.

120 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

L’utilisation du dictionnaire de données


Code source d’un sous-programme(USER SOURCE)
SELECT LINE,TEXT FROM USER SOURCE WHERE NAME =
’TRIG AU AVANT INSTALLER’;

121 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

L’utilisation du dictionnaire de données


Utilisateurs d’une base de données (ALL USERS)
SELECT * FROM ALL USERS;

122 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

L’utilisation du dictionnaire de données

Recherche des roles reçus(USER ROLE PRIVS)


SELECT USERNAME, GRANTED ROLE, ADMIN OPTION
FROM USER ROLE PRIVS;

123 / 124
Gestion des utilisateurs
Gestion des privilèges
Gestion des synonymes
Gestion des profils
Gestion des vues
Gestion des transactions
Le dictionnaire de données
References

C. Soutou, SQL pour Oracle, Eyrolles, 2015

124 / 124

Vous aimerez peut-être aussi