Vous êtes sur la page 1sur 11

d

è
È
j,,1,'";1,;;'

Université IBN TOFAIL


**<****x**

Faculté des sciences


Dépa rtement d' I nformatique
**{<*****

BASE DE DONNEES II

SMI - 56 -

Année universitaire : 2021-'022

PT. MV EL HASSAN CHARAF


Faculté des sciences
Département nformatique Année universitaire : 202f,12022
d' I
)u1,,,,u,'

PLAN

l- Principes de fonctionnement des (SGBD) (Rappels)

- lntroduction aux bases de données


- Modèles de base de données

- Système de gestion de base de données (SGBD)

- Création de tables, contraintes et relations


:

i Création et gestion des vues, synonymes, privilèges

i tt- PL/SQL : Extension au standard SQL


:

: Extensions au standardSQL (Délimiteur, contrôle flux, boucles)


i

i Structures de contrôles (conditionnelles, répétitives)

I -
:

Tableaux et Structures

-
l
Sous programmes : Procédures et Fonctions
:
l

i Transactions et validation des données


l

I lll- PL/SqL : Les ExcePtions

Les ExcePtions : Prédéfinies


.
i Les ÉxclePtions : utilisateurs

tU- PL/SQL : Curseurs et Déclencheurs


i
i Les curseurs : Mécanisme, procédure d'utilisation

attributs :when, :old, :new'


1

i Les déclencheurs : Simple, MAJ,

I V- JDBC [Connexion JAVA-Oracle]

Problématique
i
: :
JDBC : Fonctionnement

ExemPles
.
, vl- TD &TP

,, - TD t,fD2
i
r-TP
ANNEXE

BIBLIOGRAPHIE

BDll- Pr. M.E.H CHARAF


e
è
Faculté des sciences
Département d'l nformatique Année universitaire : 202U2022
Ju u,\,,,",;"i;,,

l- Principes de fonctionnement des (SGBD) (Rappels)

1. Introduction aux bases de données

Bases de Données: Collection de données stockées dans des fichiers accessibles pour plusieurs
utilisateurs. C'est une collection d'informations organisées afin d'être facilement consultables,
gérables et mises à jour.
Ces données représentent des informations servant aux activités et au management d'une entreprise.
Elles contiennent généralemerrt des agrégats d'enregistrernents ou de fichiers de données, contenant
des informations sur les transactions de vente ou les interactions avec des clients spécifiques.

2. Modèles de base de données

L'histoire des bases de données remonte aux années 1960, avec l'apparition des bases de données
réseau et des bases de données hiérarchiques :

Modèles de Bases de Données : Absfractiorr mathématique selon laquelle l'utilisateur voit les
données. Exemples :

':. Modèlehiérarchique
* Modèle réseau
'l Modèle relationnel
* Modèle Objet

lVlodèle hiérarchique:Une base de données hiérarchique est une forme qui lie des
enregistrements dans une structure arborescente de façon à ce que chaque enregistrement n'ait
qu'un seul possesseur. Cependant, à cause de leurs limitations internes, elles ne peuvent pas
souvent être utilisées pour décrire des structures existantes dans le monde réel.
) Si le principe de relation < l vers N > n'est pas respecté (par ex., un malade peut avoir plusieurs
médecins et un médecin a, a priori, plusieurs patients): la hiérarchie se transforme en un réseau.

o. Modèle réseau: Le modèle réseau est en nresure de lever de nombreuses difficultés du modèle
hiérarchique grâce à la possibilité d'établir des liaisons de type n-n. Les liens entre objets pouvant
exister sans restriction. Pour retrouver une donnée dans une telle modélisation. il faut connaître
le chemin d'accès

Modèle relationnel : Une base de données relationnelle est une base de données structurée
suivant les principes de I algèbre relationnelle.

Edear Frank Codd (Fondateur) : Mathématicien de formation, Chercheur chez IBM à la fin des
années 1960, il était persuadé qu'il pourrait utiliser la théorie des ensembles et la logique des
prédicats du premier ordre pour résoudre des difficultés telles que la redondance des données,
I'intégrité des données,ou I'indépendance de la structure de la base de données avec sa mise en
æuvre physique. Un premier prototype de Système de gestion de bases de données relationnelles
(SGBDR) a été construit dans les laboratoires d'lBM. Depuis les années 80, cette technologie a mûri
et a été adoptée par I'industrie.

d. Modèf e Obiet : La notion de boses de données oblef est plus récente et encore en phase de
recherche et de développement. Elle sera très probablement ajoutée au modèle relationnel.

BDll - Pr. M.E.H CHARAF


S
Faculté des sciences
t.l
Département d'lnformatique Année universitaire : 202112022
Jo
"1r,,.ri,,,,,
3. Système de gestion de base de données (SGBD)

a. Définition d'un SGBD : Ensemble de programmes qui permettent à des utilisateurs de créer et
maintenir une base de données

b. Rôle d,un sGBD : un sGBD est en général, multi utilisateurs, multitâches.

'r ll permet I'accès à la base à plusieurs utilisateurs simultanément


r ll traite en les optimisant les requêtes utilisateurs
'r ll gère l'exécution cohérente de plusieurs programmes simultanés (accès concurrents)

r ll offre des moyens d'interaction, langages et interfaces, faciles à utiliser

c. Niveaux d'un SGBD: La plupart des SGBD suivent l'architecture starrdard ANSI/Sparc qui permet
d,isoler les différents niveaux d'abstraction nécessaires pour un SGBD.

2 Niveau interne ou physique:Décrit le modèle de stockage des données et les fonctions


d'a ccès.
.- Niveau conceptuel ou logique : Décrit la structure de la base de données globalement.
o Le schéma conceptuel est produit par une analyse de l'application à modéliser et par
intégration des différentes vues utilisateurs.
o Ce schéma décrit la structure de la base indépendamment de son implantation.
,- Niveau externe: Correspond aux différentes vues des utilisateurs. Chaque schéma
externe donne une vue sur le schéma conceptuel à une classe d'utilisateurs.

Le SGBD doit être capable de faire des transformations entre chaque niveau, de manière à transformer
une requête exprimée en terme du niveau externe en requête du niveau conceptuel puis du niveau
physique.

d. EXEMPLE : Présentâtion du SGBD Oracle

Les couches Oracle : Par définition, un système de gestion des bases de données est un ensemble de
programmes destinés à gérer les fichiers. Oracle est constitué essentiellement des couches :

.l Le noyau
n Le dictionnaire de données
.l La couche SQL
* La couche PL|SQL

Le noyau dont le rôle est l'optimisation dans l'exécution des requêtes, la gestion des accélérateurs
(index et Clusters), le stockage des données, la gestion de l'intégrité des données la gestion des
connexions à la base de données et l'exécution des requêtes.

Le dictionnaire de données est une métabase qui décrit d'une façon dynamique la base de données.
llpermet de décrire les objets suivants : Les objets de la base de données (Tables, SYNONYMES, VUES,
COLONNES,...), les utilisateurs accédant à la base de données avec leurs privilèges (CONNFCT,
RESOURCE et DBA). Ainsi toute opération qui affecte la structure de la base de données provoque
automatiquement une mise à jour du dictionnaire.
La couche SQt. Ellejoue le rôle d'interface entre le noyau et les outils d'oracle. Ainsi, tout accès à la
base de donnees est exprime en langage SQL. Le rôle de cette couche est d'interpréter les commandes
SQL de faire la vérification syntaxique et sémantique et de les soumettre au noyau pour exécution.

La couche PL/SQL: Cette couche est une extension de la couche SQL puisque le PL/SQL est une
extension procédurale du SQL.

BDll - Pr. M.E.H CHARAF


tct
Faculté des sciences
Département d' lnformatique p.ilr, i'1,,
Année universitaire : 202112022

e. Les commandes SQL : ll existe principalement SUqtre


tvpes de comman

DROP, MoDIFY
modifier un objet de |a base de données. Exemp|es : CREATE, ALTER,
(LMD) commandes permettent de faire la mise à
È Langage de manipulation des données : Ces
:SELECT'
jour ou la consultation des données dans une table de la base de données Exemples
UPDATE, INSERT, DELETE

'/ Langage de transaction (TCL) : Ces commandes permettent de gérer les modifications
apportéesauxdonnéesde|abasededonnées.Exemp|es:CoMM|T,etRoLLBACK
quclques-uns
oracle. oraclc supporte plusieurs types d'obiets, voici
:
f. Les obiets manipulés par

lignes (enregistrements ou
table est composée de colonnes (champs ou attributs) et de
occu rrences).
Les vues : Une vue est une table virtuelle issue du modèle
externe contenant une partie d'une
ou plusieurs tables.
par un nom d'usager et un
User: Utilisateurs du systèrrre oracle. Chaque usager est identifié
mot de oasse.

', Synonymes : Autre nom donné aux objets Table, vue' séquence
et schéma'

4. Création des tables, contraintes et relations

Création des Tables


Dans cette commande' il est
.:. Pour créei une table, on utilise la commande : CREATE TABLE'
les noms des colonnes et le type
nécessaire d'indlquer, au minimum, le nom de la table,
de données. Par exemPle :
CREAT E TABLE ma m i e re ble
-Pre -to
( premiere-colonne text,
deuxieme colonne integer );
.l Pour supprrmer une table, on utilise la commande : DROP
TABLE'

DROP TABLE ma Premiere-table '

les 0 pourra être répétées


convention d'écriture (oRACLE) : (Les <> indique une obligation,
plusieurs fois (séparées par une virgule) et les [] indique une option)'

Svntaxesimplifiée:CREATETABLE<nom-de-tab!e>(<nom-de-colonne><type-de-données>);
SvntaxegénéraIeI,CREATETAELE<nom-de_tgble>(<nom_de_colonne><type_de-données>
TDEFAULT <valeur>l
[ ICA N ST RAt NT <no m-d e-co ntro i nte >]
NULL Ou
NOT NULL OU
UNIQUE OU
PRIMARY KEY OU
FOREIGN KEY OU
R EF ERE N CES < No m-d e-Tqbl e><no m-de-colon n e> O U

[oN DELETE CASCADE]OU


CHECK <nom-de-condition> I );

5 BDll- Pr. M.E.H CHARAF


c
ê
è
Faculté des sciences
Année universitaire : 202U2022
Département d' I nformatiqu e
),,1, ,,,,
par
oracle ne comprend qu'une seule base
arU",,o" des Tablespaces sous oracle: L'architecture de
plusieurs tablespaces, équivalents des objets bases
serveu r, dans laquelle peuvent se trouver
MS-SQL, contenant des tables et procédures
stockées'
données d,autres SGBD comnre MySQLet
Exemple
CR EATE TABLESP ACE M Y bl e
-ta -SP size 70M reuse
DATAFILE 'C:\oraclexe\app\orocte\orodota\my-tobte-sp'dbf'
DEFAULTST}RAGE(tNtTlALllKNE(TS}KMlNExTENTsTMAxExTENTs999)
ONLINL '
Pour lister les tables spaces qui existent ;

Select tablespace-name, file-name' bytes from


dba-data-files;

ll y a plusieurs Tablespaces par défaut sous


Oracle :
'l SYSTEM : les objets du sYstème'
*SYSAUX:depuislal0g,tab|espaceauxi|iairepourcertainsobjetsduSystème
':' TEMP : tables temporaires pour les tris'
*UNDo:depuisIa9i,utiIisépourIestransaCtions(commit,rollback)
des utilisateurs pardéfaut'
t usERS: c'est le tabtespace ou sont créés les objets

b. Création des Contraintes


la nature des données qui peuvent être stockees
Les types de donnees sont un moYen de restreindre
dansunetable.loutefois,lescontrairrtesfourniessonttropgrossières'
accepter que des valeurs positives Mais il n'y
a
Exemple: Une colonne du prix d'un produit ne doit provenir de
valeurs positives' Un autre problème peut
pas de type de données qui n'accepte que des
lavolontédecontrarndrelesdonnéesd'unecolonneparrapportauxautrescolonnesoulignes'D'ou
les tables'
de définir des contraintes sur les colonnes et
l'importance

b.L. Contrainte : NOT NULL


peut pas prendre la valeur NULL' Si
Une contrainte Nol NULL indique simplement qu'une colonne ne
cettecontrainten,estpaspréciséealorspardéfaut|ava|eurestNULL.Exemple:
CREATE TABLE Produits (
no-Produit integer NOT NULL,
nom text NOT NULL'
Prix numeric);

b.2. Contrainte : PRIMARY KEY

indique qu'une colonne' ou un groupe de


une contrainte de type clé primaire (PRIMARY KEY)
unique de ligne pour cette table' Lorsque la clé
colonnes, peut être utilisée comme un identifiant
être définie au niveau de la table et non
primaire est une clé primaire composée, la contrainte doit
partie de la clé doivent être entre parenthèse' La
au niveau de la colonné. Les attributs faisant
NULL et UNIQUE' Exemples:
contrainte de PRIMARY KEY assure également les contraintes de NOT

CREATE TABLE Etudiants (


Nom VARCHAR2(2?)NOT NULL'
numad NUMBER (10) coNsTRAtNT pk| PRIMARY KEY,
Prenom VARCHAR2 (20)
); contratnte'
La contrainte PRIMARY KEY est définie
par le mot réservé CoNSTRAINT suivi du nom de la
temps que la colonne NUMAD' donc c'est une
Dans cet exemple la contrainte est définie en même
contrainte sur la colonne

BDll- Pr. M.E.H CHARAF


e
è
Faculté des sciences
-Tiï++9"t"* j,l, ..;i
L lot,
n@
CREATE TABLE Etudiants (
ntumod NUMBER (70),
Nom VARCHARZ(20) NOT NULL,
Prenom VARCHAR2 (20)'
CONSTRATNT pkl PRTMARY KEY (numod));

KEY est définie comme si on définirait une


colonne
Dans cet exemple, la contrainte de PRIMARY
C' est u n e co n!a-u1e-lu!-?-labl-e.

b.3. Contrainte : FOREIGN KEY


stipule que les valeurs d'une colonne (ou d'un
une contrainte de type clé étrangère (FOREIGN KEY)
qui apparaissent dans les lignes d'une autre
groupe de colonnes) doivent correspondre aux valeurs
correspond à une valeur d'une clé primaire
table. Cette contrainte indique que la valeur de l'attribut
de la table spécifiée. Dans ce cas, la clé primaire de
l'autre table doit être obligatoirement crée pour
primaire de |,autre tab|e et |,attribut défini
que cette contrainte soit acceptée. D,autant pIus, Ia c|é
comme clé étrangere doivent être de même type
et de même longueur'
DELETE CASCADE (Voir : création des
tables-
Remarque : on peut également préciser l'option oN
soient détruits lorsque l'enregistrement
syntaxe générale) qui indique que les ertregistrements
est supprimé Exemple:
correspondant à la cle primaire de la table référencée
CREATE TABLE Programme (
codePrg VARCHAR2(3) CONSTRATNT pk3 PRTMARY
KEY'

n om P rog V ARCH ARZ ( 2 0) ) ;

CREATE TABLE etudiants (

NumAd NUMBER CONSTRATNT pk4 PRIMARY KEY'

Nom VARCHAR2(20),
Prenom VARCHAR2(20)'
codePrg VARC|IAR2(3),
programme (codePrg) );
coNSIRArN T fkl FoREtcN KEY(codePrg) REFERENCES

b.4. Contrainte de vérification : CHECK

PourobIigerparexemple|esprixdesproduitsàêtrepositifs,onpeututiIiser:
CREATE TABLE Produits (
no-Produit integer,
nom text,
prix numeric CHECK (Prix > 0) );

Unecontraintedevérificatior-rpeutaussifaireréférenceàp|usieursco|onnes'
le prix normal et un prix réduit en s'assurant
Exemple: Dans le cas d'un produit, orr peut vouloir stocker
que le prix réduit soit bien inférieur arr prix normal :
CREATE TABLE Produits (
no-Produit integer'
nom text,
prix numeric CHECK (Prix > 0),
prix-promo numeric CHECK (prix-promo > 0)'

CHECK (Prix > Prix-Promo));

b.5. Contrainte : DEFAULT


que prendra l'attribut si aucune valeur n'est saisie'
La contrainte DEFAULT : indique la valcur par défaut

BDll 'Pr. M.E.H CHARAF


c
è
'tt
Faculté des sciences 'l
Département d' I nformatique Année universitaire : 202112022
w "lt' '"Y;

b.6. Contrainte d'unicité : UNIQUE

Les contraintes d'unicité garantissent l'unicité des données contenues dans une colonne ou un
groupe
de colonnes par rapport à toutes les lignes de la table. La syntaxe est :
Contrainte colonne : CREATE TABLE produits (
no_produ it i nteg e r UN IQU E,
nom text,
prix numeric);

Contrainte table : CREATE TABLE produits (


no_produit integer,
nom text,
prix numeric,
UNIQUE (no-Produit));

c. Création des RelationslfquUrer)

Les relations (Jointures) permettent d'exploiter pleinement le modèle relationnel des tables d'une base
de données. Elles sont faites pour mettre en relation deux (ou plus) tables concourant à rechercher la
réponse à des interrogations. Une jointure permet donc de combiner les colonnes de plusieurs tables.
Les jointures normalisées s'expriment à l'aide du mot clef JOIN dans la clause FROM. Suivant la
nature
de la jointure, on devra préciser sur quels critères se base la jointure :

c.1. Jointures internes

ll s'agit de la plus commune des lointures. C'est celle qui s.'exerce par défaut si on ne précise pas le type
de jointure. Après le mot clé ON, nous devons préciser le critère de jointure, Exemple ;
SELECT CLI-NOM, T E L_N U M ERO
FROM T_CLIENT INNER JOIN T_TÊLEPHONE
ON T-CLI ENT.CLI D = T-TELEPHON E' CLI D
-l -l
c.2. Jointures externes

Les jointures externes sont extrêmement pratiques pour rapatrier le maximum d'informations
disponibles, même si des lignes de table ne sont pas renseignées entre les différentes tables jointes'
La syntaxe de la jointure externe est la suivante :
SELECT ... FROM <toble gauche>
LEFT I RTGHT I f:ULL OUTER JOIN <table droite 1">
ON <condition de jointure>
ILEFT I RtGtlT I FULL OUTER JOIN <table droite 2>
ON <condition de iointure 2>l ...
Les mots clefs LEFT, RlGHTet FULL indiquent la manière dont le moteur de requête doit effectuer la
jointure externe. lls font réfirence à la table située à gauche (LEFT) du mot clef JOIN ou à la table située
à droite'(RIGHI) de ce même mot clef , Le mot FULL indique que la jointure externe est bilatérale.

c.3. Jointures croisées

La jointure croisée CROSS JOIN n'est autre que le produit cartésien de deux tables. Rappelons que le
oroduit cartésien de deux ensembles n'est autre que la multiplication généralisée. Dans le cas des
tables, c'est le fait d'associer à chacune des lignes de la première table, toutes les lignes de la seconde.
La syntaxe de la jointure croisée est la suivante :

SELECTcolonnes
FROM T_1 CROSS totN T._2

BDll - Pr. M.E.H CHARAF


e
è
Faculté des sciences \
. .t Année universitaire : 2021/2022
Département d' I nformatique (Y 'ifr"'i"l;

c.4. Jointures UNION


quelconque' En
La jointure d'union uNloN JolN permet de faire l'union de deux tables de structures
évitant toute colonne commune
fait, c'est comme si I'on avait listé la première table, puis la seconde en
et compléter les espaces vides des valeurs NULL' !yqQ49 :
SELECT colonnes
FROM T1 UNION JOIN T-2

d. Reouêtes SELECT avec les opéraleuls dlnlemble!

d.1. L'oPérateur INTER-SEÇT

Les deux commandes SELECT


ll permet de ramener l'intersectiorr des données entre deux tables
et dans le même ordre'
doivent avoir le même nombre de champs, et des champs de même type
lnstruction SELECTl
INTERSECT
lnstruction SELECT 2
IaRDER BY]
même que celui renvoyé par SELECT 2 et
Le nombre de colonnes renvoyées par SELECT 1- doit être le
que celui de SELECT 2. La clause optionnelle ORDER BY
le type de données SELECT 1 doit être le même
faire selon un numéro de colonne et non selon le nom. SELECT 1et
SELECT 2 ne peuvent
doit se
contenir des clauses ORDER BY.
qui sont en même temps des enseignants'
Exemple : La requête permet de ramener tous les étudiants
SELECT NOM, PRENOM FROM ETUDIANTS
INTERSECT
SELECT NOM, PRENOM FROM ENSEIGNANTS
ORDER BY 1

d.2. L'opérateur UNION


tables' Si des lignes sottÏ
Cet opérateur permet de renvoyer l'ensemble des lignes des deux
les lignes, utiliser l'option ALL
redondanteselles sont renvoyées une seule fois. Pour renvoyer toutes
Les mêmes contraintes qui s'appliquerrt pour INTERSECT s',appliquent pour UNION' Svntaxe:
lnstruction SELECTl
uNtoN IALL]
lnstruction SELECT 2
IORDER BY]
et tous les enseignants' Les
Exemple ; La requête suivante permet de ramener tous les étudiants
une seule fois'
enseignants qui sont en même temps des éludiants sont ramenés
SELECT NOM, PRENOM FROM ETUDIANTS
UNION
SELECT NOM, PRENOM FROM ENSI'GA/A'VIS
, ORDER BY 1

d.3. L'oPérateur MlNLl5

MOINS les lignes de la deuxième


Cet opérateur renvole l'ensenrble des lignes de la première table
table. Les mêmes contraintes qui s'appliquent pour INTERSECT s'appliquent pour MINUS'
lnstruction SELECTl
MINUS
lnstruction SELECT 2

I?RDER 8Y]

BDll - Pr. M.E.H CHARAF


e
ê

Faculté des sciences Année universitaire : 202U2022


.''.
Département d' lnformatiquq J!Û çlr,'i,"1i,i,

privilèges
5. Création et gestion des vues' synonymes,

a. Création et gestion des vues


un nom et qui s'utilise comme
requête nommee à laouelle on donne
Une vue est essentiellement une
une table. SYNTAXE :

}REATEoRREPLA1EVtEWma-yueASSELECTcolonnesFRoMT>1'
Where condition
de l'évaluation de la requête
c,est la définition de la vue qu,on stocke dans le SGBD, pas le résultat
à DROP VIEW ma-vue : ne supprime que la définition'
Exemple:
. CREATE OR REPLACE V|EW V-EMP-DEP AS
SELECT * FROM EMP WHERE
deP = 1'

, SELECT * FROM V-EMP-DEP;


enregistrer le résultat de la
on peut avoir intérêt à volontairement
Pour des raisons de performances,
vue, on oarle alors de vue matérialisee
:

V I EW,.,
CREAT E M AT ERI ALIZED
des vues matérialisees (en présence de iointure)
Attention à Ia taille volumineuse

b. cré"tion des svnonvms!


de |a base de
pour les objets (vue, tab|es, séquences...)
Les synonymes est une autre désignation au lieu d'accéder à une
pour faciliter l'accès à un objet Par exemple
données. un synonyme est utilisé peut être public,
on uti|ise un SvnonYme' Un synonyme
tablevia un chemin d,accès (User'emp|oyes)
ouprivé.Pardétautun,unonv'eestprivé.Lacréationd,unsynonymePUBL|Cnepeutsefaireque
par l'administrateur'

<nom-du-sysnonyme> FOR <nom-objet>


SYNTAXE : CREATE IPUBLtC] SYNONYM
CREATE PUBLTC SYNONYM
syemp FOR scott'emp;
;t*tlt *
Ainsi au lieu de faire : s[tfC T* FROM ) On peut foire: SELECT FROM syemp;
"ott''^p';
se fait comme sutr
création d'un synonyme non public
:
La
CREATEsYNoNYM<nom-du-sysnonyme>FoR<nom-objet>

c. Création des PrivilèÊqs-

Lesprivilèges:LacommandeGRANTpermetd'attribuerdesdroitsàdesutilisaleurssurvosobjetsLa
commandeREVOKEpermetdesupprimerdesprivilèges'SYNTAxE:
<no-obiet>
6RANf <privitege>[ou ALL] ON
'To .no^-rsoger> [ou PU BLIC]
[wtTH GRANT OPTtoN]

-LesprivilègesSont:SEL|-CT,INStRT,UPDATE,DEIETE,AITER,INDEX,REFERENCESou(ALL).
_onpeutattribuerplusiei-rrsprivi|èges,maisiIfautIesséparerparunevirguIe.
séparees par une virgule
- On peut préciser plusieurs colonnes'

à qui on vient d'attribuer des


droits d'attribuer les mêmes
WITH GRANT OPTION, Permel à l'usager
oblet
droits à d'autres usagers sur le même
PUBLIC Permet d'attribuer les droits à TOIJS.

BDll - Pr. M.E.H CHARAF


10
d

Faculté des sciences


i (
Département d'lnformatique ù-1,,, ,,j,,, Année universitaire:202\12022

EXEMPLES: GRANT SELECT, INSERT ON CtudiONt TO MAthiCU


GRANT ALL ON emplove TO PUBLIC
GRANT SELECT ON department TO martin WITH GRANT OPTION.

La commande REVOKE permet de supprimer des privilèges. SYNTAXE :

REVOKE <privilege> [ou ALL] ON <no-obiet> FROM <nom-usoger> [ou PUBLIC]

EXEMPLES: REVOKE INSERT ON etudiont FROM Mathieu


REVOKE ALL ON emplove TO PUBLIC.

d. Création des rôles

Un rôle représente un ou plusieurs privilèges. On crée des rôles lorsqu'un ensemble de privilègesvont
être attribués à plusieurs usagers.

SYNTAXE : CREATE ROLE <nom_du_role>

EXEMPLE : CREATE ROLE roleT

Attribuer des privilèees à un ROLE

SYNTAXE : GRANT <privileges> ON <nom-obiet>T0 <nom-role>

EXEMPLE : GRANT SELECT, UPDATE, INSERT ON etudiants TO rOICT

Attribuer un ROLE à un utilisateur.

SYNTAXE : GRANT <nom_role> TO <nom-usoger>

EXEMPLE : GnAtUf roleT TO scott, mortin,,mothieu.

Détruire un ROLE : DROP <nom_du role>

ll existe des rôles déjà prédéfinis.


. Le rôle CONNECT permet à un usager de se connecter à la base de données. ll n'a de sens que
si d'autres privilèges lui sont accordés.
. Le rôle RESOURCES permet à un utilisateur de créer ses propres objets.
. Le rôle DBA permet d'attribLrer à un usager des rôles d'administration.

11 BDll Pr. M.E.H CHARAF

Vous aimerez peut-être aussi