Sunteți pe pagina 1din 93

Partie II

Base de données
SQL

http://gherabi.zz.mu
PLAN

v Introduction SGBD et Modèle Relationnel


v Le basic de SQL*PLUS
§  Connexion / Déconnexion
§  Commandes de base
§  Exécution des scripts SQL
v Langage SQL
§  Langage DDL
§  Langage DML
§  Langage DCL
v Conclusion

10/12/18 2 GHERABI Noreddine


Introduction - BD

Travailler directement sur un fichier présente plusieurs


inconvénients :
• Manipulation de données lourde et compliquée. Il faut
être expert en programmation
• Le programmeur doit connaître la localisation physique
des fichiers, la structure physique des enregistrements, le
mode d’accès à ces fichiers
• Toute modification de la structure des enregistrements
(ajout d’un champ par exemple) entraîne la réécriture de
tous les programmes qui manipulent ces fichiers

10/12/18 3 GHERABI Noreddine


Introduction - BD

Problèmes
§  Difficultés de gestion
§  Incohérence des données
§  Coûts élevés
§  Maintenance difficile
§  Gestion de pannes ???
§  Partage des données ???
§  Confidentialité ???

10/12/18 4 GHERABI Noreddine


Introduction - BD

Solution
Utilisateur
Base de
données

Applications

10/12/18 5 GHERABI Noreddine


Introduction - BD
Définition : une base de données est un ensemble d’informations,
(fichiers), partagé par plusieurs utilisateurs.
Ces informations sont interrogées et mises à jour par l’intermédiaire
d’un logiciel.
v  Modélisation des données
Ø  Eliminer la redondance de données
Ø  Centraliser et organiser correctement les données
v  Logiciel «Système de Gestion de Bases de Données»
v  Factorisation des modules de contrôle des applications
v  Interrogation, cohérence, partage, gestion de pannes, etc…
Ø  Administration des données

10/12/18 6 GHERABI Noreddine


Résumé - BD
Définition : une base de données est un ensemble structuré
de données (1) enregistrées sur des supports accessibles par
l ’ordinateur (2) pour satisfaire simultanément plusieurs
utilisateurs (3) de manière sélective (4) en un temps
opportun(5).
v (1) : Organisation et description de données
v (2) : Stockage sur disque
v (3) : Partage des données
v (4) : Confidentialité
v (5) : Performance

10/12/18 7 GHERABI Noreddine


Le Basic De SQL*PLUS

http://gherabi.zz.mu
Introduction

Dans notre monde ou tous change rapidement, de


nouvelles technologies apparaissent d’une façon
inimaginable .
La plupart des applications commencent à opter
pour une implémentation basé sur le graphisme avec des
interfaces utilisateur.
Cependant, SQL*Plus d’ORACLE , quoique très utilisé,
est toujours basé sur une ligne de commande.

10/12/18 9 GHERABI Noreddine


Introduction

SQL*Plus est l’outils ORACLE pour communiquer avec


une base de données et cela depuis pas mal de temps .
C’est une application Client/Serveur qui vous
permet de :
§  Ecrire et exécuter facilement et rapidement des
commandes SQL ainsi que des blocs PL/SQL.
§  Exécuter des requêtes d’administration de la base de
données.
§  Produire des états / rapport de résultats

10/12/18 10 GHERABI Noreddine


Connexion /Déconnexion
Connexion
q A Partir Du menu Démarrer :
Après avoir trouver le groupe ORACLE, Chercher l’icône
SQL*Plus et cliquer Dessus

q  A partir de l’invite de commande :

Lancer l’environnement DOS :

Puis exécuter la commande sqlplus

10/12/18 SQL*Plus -M. GHERABI Noreddine 11


Connexion /Déconnexion
Dans les deux cas ,il vous serai demandé d’entrer un Nom
d’Utilisateur et un Mot De Passe.
Mais on peut aussi exécuter directement :
C:\>sqlplus SCOTT/TIGER
Si tous se passe bien vous aurez le prompt
SQL>
Déconnexion:
Un simple EXIT ou QUIT suffit pour arrêter SQL*PLUS

10/12/18 12
Commandes de Base
SQL*PLUS supporte trois types de commandes :

§  Commandes SQL*PLUS :


Ils sont utilisés afin de choisir des options de SQL*PLUS ,des états,
éditer des fichiers ou le tampon de commande. Ils n’interagissent
pas avec la base de données. Ils ne nécessitent pas d’être terminés
avec un ; (mais il est accepté quand même !!)

§  Commandes SQL :


Ce sont les commandes pour agir sur la base de données .

§  Blocs PL/SQL :


Ce sont les scripts en PL/SQL .

10/12/18 13 SQL*Plus -M. GHERABI


Noreddine
Langage SQL

Structured Query Language (SQL)

10/12/18 14 SQL*Plus -M. GHERABI


Noreddine
Langage SQL
SQL est un langage d'interrogation de bases de données
relationnelles ). Il permet certes de manipuler les bases de
données, mais aussi d'administrer ces dernières.

v  DDL Data Definition Language


Permet de définir une base de données et ses éléments.

v  DML Data Management Language


Permet de gérer, manipuler les éléments d'une base de données.
v  DCL Data Control language
Permet d'effectuer des contrôles sur les données.

10/12/18 15 SQL*Plus -M. GHERABI


Noreddine
Les commandes DDL

v  La commande CREATE


v  La commande DESCRIBE
v  La commande ALTER
v  La commande DROP
v  La commande RENAME

10/12/18 16 GHERABI Noreddine


Les commandes DDL

La commande CREATE: Permet de créer un objet dans la base de données

Syntaxe:
CREATE TABLE nomtable
(
Nomcol1 typecol1 (Taille1) ,
Nomcol2 typecol2 (Taille2) ,
Nomcol3 typecol3 (Taille3)..
)

10/12/18 17 GHERABI Noreddine


Les commandes DDL

Exemple : La commande CREATE

CREATE TABLE Emp


(Id number,
Nom varchar2(50),
Prenom varchar2(50),
Poste varchar2(20),
Sal number
);

10/12/18 18 GHERABI Noreddine


Les commandes DDL

q Les types de données utilisables

Un type chaîne de caractères à longueur fixe (n


char(n)
caractères).
Un type chaîne de caractères à longueur
varchar(n)
variable mais ne dépassant pas n caractères.

number(n,d) Un type numérique à n chiffres et à d décimales


Un type permettant de représenter des dates.
date Attention la syntaxe diffère selon le pays ('jj/
mm/aa' ou 'jj-mm-aa').
long Un type texte de taille maximum 2 Go.
raw Un type binaire (256 octets maximum).
long raw Idem mais jusqu'à 2 Go.

10/12/18 19 GHERABI Noreddine


Les commandes DDL
q  Les contraintes supportées par Oracle
null Des cellules de la colonne peuvent ne pas contenir de valeur.

Toutes les cellules de la colonne doivent contenir une valeur


not null
du type mentionné et respectant les contraintes apposées.

Les valeurs d'une telle colonne servent à accéder efficacement


primary key une entrée de la table. Il est clair que chaque valeur doit être
unique.

Les valeurs de cette colonne sont en fait des références sur des
references entrées d'une autres table. C'est par ce mécanisme que l'on
relie des informations dispersées sur plusieurs tables.

permet de vérifier que la valeur saisie pour un champ n'existe


Unique
pas déjà dans la table
check(exp) Toute valeur de la colonne doit vérifier cette condition.

10/12/18 20 GHERABI Noreddine


Les commandes DDL

Contrainte Primary key: Cette commande permet de définir une clé


primaire

Syntaxe:
CREATE TABLE nomtable
(Nomcol1 typecol1 PRIMARY KEY )
Ou :
CREATE TABLE nomtable
(Nomcol1 typecol1,
Constraint Nom_de_contrainte PRIMARY
KEY(NomCol1) )

10/12/18 21 GHERABI Noreddine


Les commandes DDL

Exemple : PRIMARY KEY

CREATE TABLE Emp


(Id number PRIMARY KEY,
Nom varchar2(50));
Ou :
CREATE TABLE Emp
(Id number ,
Nom varchar2(50),
Constraint pk_emp PRIMARY KEY(id));

10/12/18 22 GHERABI Noreddine


Les commandes DDL

Contrainte Foreign key: Cette commande permet de définir une


clé etrangère

Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1,
Nomcol2 typecol2,
Constraint Nom_de_contrainte Foreign key(Nomcol2)
references Table_pere(NomCol2) )

10/12/18 23 GHERABI Noreddine


Les commandes DDL

Exemple : Foreign key

CREATE TABLE client


(Id number PRIMARY KEY,
Nom varchar2(50),
Id_commande number,
Constraint FK_client Foreign key(id_commande)
references commande(id_commande));

10/12/18 24 GHERABI Noreddine


Les commandes DDL

Contrainte Chech: Cette commande permet de définir une


condition sur une colonne

Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1,
Nomcol2 typecol2,
Constraint nom_contrainte Chech (Condition))

10/12/18 25 GHERABI Noreddine


Les commandes DDL

Exemple : check

CREATE TABLE client


(Id number PRIMARY KEY,
Nom varchar2(50),
salaire number,
Constraint ck_client check(salaire>1500));

10/12/18 26 GHERABI Noreddine


Les commandes DDL

Contrainte NOT NULL: Cette commande permet de d’interdir


les valeurs nulles

Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1 NOT NULL,
Nomcol2 typecol2,
)

10/12/18 27 GHERABI Noreddine


Les commandes DDL

Exemple : NOT NULL

CREATE TABLE client


(Id number PRIMARY KEY,
Nom varchar2(50),
salaire number NOT NULL,
);

10/12/18 28 GHERABI Noreddine


Les commandes DDL

Exemple : Résumé

CREATE TABLE Emp


(Id number PRIMARY KEY,
Nom varchar2(15),
Prenom varchar2(15),
Poste varchar2(15) NOT NULL,
Sal number, CONSTRAINT csal_emp CHECK(sal
BETWEEN 0 AND 30000));

10/12/18 29 GHERABI Noreddine


Les commandes DDL

Contrainte default : Cette contrainte permet d'indiquer le contenu d'une zone quand
elle n'est pas indiquée lors de l'insertion d'une ligne dans la table.

Syntaxe:
CREATE TABLE nomtable
( Nomcol1 typecol1 Default (‘Valeur par defaut’),
Nomcol2 typecol2,
)

10/12/18 30 GHERABI Noreddine


Les commandes DDL

Exemple : Default

CREATE TABLE client


(Id number PRIMARY KEY,
Nom varchar2(50),
salaire number NOT NULL,
etat varchar2(10) Default (‘Marie’)
);

10/12/18 31 GHERABI Noreddine


Les commandes DDL

Définir une valeur par défaut  : La clause DEFAULT doit être suivie par la
valeur à affecter. Cette valeur peut être un des types suivants:

§  Constante numérique


§  Constante alphanumérique (chaîne de caractères)
§  Le mot clé NULL
§  Le mot clé CURRENT_DATE (date de saisie)
§  Le mot clé CURRENT_TIME (heure de saisie)
§  Le mot clé CURRENT_TIMESTAMP (date et heure de
saisie)

10/12/18 32 GHERABI Noreddine


Les commandes DDL

La commande DESCRIBE
Cette commande permet de donner une description sur une table (le nom du
champ, le type du champ et la contrainte appliquée sur le champ)

Syntaxe:
DESCRIBE nomtable

10/12/18 33 GHERABI Noreddine


Les commandes DDL

Exemple : Describe

DESCRIBE Emp ;
Nom de la colonne Null? Type
------------------------------ -------- ----
ID NOT NULL NUMBER
NOM VARCHAR2(15)
PRENOM VARCHAR2(15)
POSTE NOT NULL VARCHAR2(15)
SAL NUMBER

10/12/18 34 GHERABI Noreddine


Les commandes DDL

La commande ALTER: Cette commande permet d'altérer (de


modifier) une structure déjà existante

Syntaxe:
ALTER TABLE nom table
ADD nomNouvelleCol typeColonne,
DROP COLUMN nomColEn,
MODIY nomcolAChanger
nouveau_type_de_données NULL ou NOT NULL
ADD CONSTRAINT nom Contrainte …
DROP CONSTRAINT nom Contrainte

10/12/18 35 GHERABI Noreddine


Les commandes DDL

Exemples: Alter

v  ALTER TABLE client


ADD CIN number NOT NULL;
v  ALTER TABLE client
DROP COLUMN salaire;
v  ALTER TABLE client
MODIFY salaire varchar2(20),
v  ALTER TABLE client
DROP CONSTRAINT ck_client ;

10/12/18 36 GHERABI Noreddine


Les commandes DDL

La commande DROP: Cette commande permet supprimer une table


dans une base de données

Syntaxe:
DROP TABLE nom table;
DROP TABLE nom table CASCADE CONSTRAINTS

Exemple : DROP

DROP TABLE client;

10/12/18 37 GHERABI Noreddine


Les commandes DDL

La commande RENAME: Cette commande permet de renommer une table


dans une base de données

Syntaxe:
RENAME table1 TO Table2;
Renommer table1 par un autre nom table2

Exemple : RENAME

RENAME client TO personne ;

10/12/18 38 GHERABI Noreddine


Les commandes DML
(Data Manipulation Language)

q  La commande INSERT


q  La commande UPDATE
q  La commande DELETE
q  La commande SELECT

10/12/18 39 GHERABI Noreddine


Les commandes DML

La commande INSERT: Cette commande permet d’insérer des nouvelles


données a la base de données

Syntaxe:
INSERT INTO <nom table>
values (val1, val2, val3,..., valn)

INSERT INTO <nom table> (col1, col2, col3,...., coln)


values (val1, val2, val3, ..........,
valn)

10/12/18 40 GHERABI Noreddine


Les commandes DML

Exemple: INSERT

v  Insert into client values(‘alami’,’adil’,’20’) ;

v  Insert into client(nom,prenom,age)


values(‘alami’,’adil’,’20’) ;

10/12/18 41 GHERABI Noreddine


Les commandes DML

La commande UPDATE: Les données peuvent être automatiquement


modifiées par la commande UPDATE

Syntaxe:
UPDATE <nom table>
SET <colonne1> = <expression>,
<colonne2> = <expression2>
WHERE condition

10/12/18 42 GHERABI Noreddine


Les commandes DML

Exemple: UPDATE

v  Update client Set age=age +5


Where nom=‘alami’;
v  Update client Set Nom=‘Nadime’
Where age>25;

10/12/18 43 GHERABI Noreddine


Les commandes DML

La commande DELETE: On peut supprimer un enregistrement en


utilisant la commande delete et selon une condition.

Syntaxe:
Delete from <nom table>
WHERE condition

10/12/18 44 GHERABI Noreddine


Les commandes DML

Exemples: DELETE

v  Delete from client Where nom=‘alami’;

v  Delete from client Where age>25;

v  Delete from client where age between 20 and 40;

10/12/18 45 GHERABI Noreddine


Les commandes DML

La commande SELECT: La commande select permet d’extraire les


informations d’une table.

Syntaxe:
v  SELECT * FROM <nom de table>
v  SELECT <col 1> , <col 2> , <col N> FROM <nom de
table>

10/12/18 46 GHERABI Noreddine


Les commandes DML

Exemples: SELECT

v  Select * from client;


v  Select nom,prenom from client;

10/12/18 47 GHERABI Noreddine


Les commandes DML

Les opérateurs:

10/12/18 48 GHERABI Noreddine


Les commandes DML

Exemple: Opérateurs

10/12/18 49 GHERABI Noreddine


Les commandes DML

Concaténation: l’opérateur || permet de concaténer deux ou plusieurs


valeurs des champs

Exemple :
Select nom || ‘est un ‘ || fonction as ‘’ détails employés ’’
from Employe;

détails employés
Alami est un ingénieur
Anouari est un directeur
Saloumi est un technicien

10/12/18 50 GHERABI Noreddine


Les commandes DML

Les clauses SELECT:

1.  From
2.  Where
3.  ORDER BY
4.  GROUP BY
5.  DISTINCT

10/12/18 51 GHERABI Noreddine


Les commandes DML

Exemples:

–  Select * from client where num=10;


–  Select * from client ORDER BY nom asc;
–  Select DISTINCT nom From client;

10/12/18 52 GHERABI Noreddine


Les commandes DML

Clause: Group by __ Having en utilisant la clause HAVING en


conjonction avec la clause GROUP BY. La clause HAVING filtre des
groupes de lignes.

v Select sum(prix) from produit group by libelle having


sum(prix)>1000’;

10/12/18 53 GHERABI Noreddine


Les commandes DML
q  Les fonctions de regroupement

AVG(exp) calcule une moyenne.

COUNT(exp) calcule le nombre d'éléments

SUM(exp) calcule la somme d’une colonne

MAX(), MIN(exp) calcule le minimum et le maximum

10/12/18 54
GHERABI Noreddine
Les commandes DML

Les fonctions scalaires Avec la clause WHERE, il nous est possible


d'utiliser les prédicats suivants :

§  ALL
§  ANY
§  BETWEEN , NOT BETWEEN
§  EXISTS, NOT EXISTS
§  IN , NOT IN
§  LIKE , NOT LIKE

10/12/18 55 GHERABI Noreddine


Les commandes DML

Les fonctions scalaires :Between

SELECT nom, surnom FROM client


WHERE age BETWEEN 20 and 50
équivaut à :
SELECT nom, surnom FROM client
WHERE age >= 20 and age <= 50

10/12/18 56 GHERABI Noreddine


Les commandes DML

Les fonctions scalaires : IN

v  SELECT nom, surnom FROM client


WHERE age in( 20,30,50);
v  SELECT nom, surnom FROM client
WHERE nom IN (‘Abid' ,‘Essaidi');

10/12/18 57 GHERABI Noreddine


Les commandes DML

Les fonctions scalaires : LIKE

v  SELECT nom, surnom,age FROM client


WHERE nom LIKE ‘alami‘;
v  SELECT nom, surnom,age FROM client
WHERE nom LIKE ‘a%‘;
v  SELECT nom, surnom,age FROM client
WHERE nom LIKE ‘%m‘;

10/12/18 58 GHERABI Noreddine


Les commandes DML

Les fonctions scalaires : ANY


doit être précédé de =,!=,>,>=,<,<= expression >= ANY(val1, val2, ..,
valn)
vraie si expression est = à n’importe qu’elle valeur valide de la liste

v  SELECT nom,prenom FROM client WHERE


nom = ANY (SELECT nom FROM fournisseur).

10/12/18 59 GHERABI Noreddine


Les commandes DML

Les fonctions scalaires : ALL


doit être précédé de =,!=,>,>=,<,<= expression >= ALL (val1, val2, ..,
valn)
vraie si expression est >= à toutes les valeurs valide la liste

v  SELECT nom,prenom FROM client WHERE


age > ALL (SELECT age FROM fournisseur).

10/12/18 60 GHERABI Noreddine


Les commandes DML

Les fonctions scalaires : EXISTS


requête vraie si la requête rend au moins une ligne.

v  SELECT nom, surnom,age FROM client


WHERE EXISTS (SELECT * from personne )

10/12/18 61 GHERABI Noreddine


Les commandes DML

Jointure entre les tables

La jointure permet de compléter les colonnes d'une table par


des colonnes provenant d'autres tables avec lesquelles on a des
critères de jointure c'est à dire des données de même nature qui
permettent de faire une liaison, une relation.

10/12/18 62 GHERABI Noreddine


Les commandes DML

Jointure: Exemples

v  Select client.nom,produit.code from client,produit


where client.num=produit.num;

v  Select client.nom,produit.code from client,produit


where client.num=produit.num and client.nom
like ‘a%’;

10/12/18 63 GHERABI Noreddine


Les commandes DML

Jointure: exemple de jointure entre 3 tables

Sélectionner la liste des clients qui ont achetés un produit du


fourinsseur « anouari »

v  Select cl.nom from client cl,produit pr, fournisseur fr


where cl.num=pr.num
and pr.codefournisseur=fr.codefournisseur
and fr.nom =‘anouari’;

10/12/18 64 GHERABI Noreddine


Les commandes DML

Jointure avec IN

v  Select nom from client


where num in (select num from produit);

10/12/18 65 GHERABI Noreddine


Les commandes DML

Union

SELECT LIB FROM PRODUIT


WHERE COUL = “Rouge“
UNION
SELECT LIB FROM PRODUIT
WHERE QTES < 10 ;

10/12/18 66 GHERABI Noreddine


Les commandes DML

Intersection :

SELECT LIB FROM PRODUIT


WHERE COUL = “Rouge“
INTERSECT
SELECT LIB FROM PRODUIT
WHERE QTES < 10 ;

10/12/18 67 GHERABI Noreddine


Les commandes DML

Quelques fonctions prédéfinies

Ø Les fonctions numériques


Ø Les fonctions sur chaînes de caractères
Ø Les fonctions sur les dates

10/12/18 68 GHERABI Noreddine


Les commandes DML
q  Les fonctions numériques

ABS(n) retourne la valeur absolue de n.

SIGN(n) retourne le signe de n (-1, 0 ou 1).

CEIL(n) plus petit entier plus grand ou égal à n

FLOOR(n) plus grand entier inférieur ou égal à n

MOD(m,n) calcule le reste de la division entière de m par n.

POWER(m,n) calcule la valeur de m élevé à la puissance n

SQRT(n) retourne la racine carrée de n.

10/12/18 69
GHERABI Noreddine
Les commandes DML
q  Les fonctions sur chaînes de caractères

LENGTH(ch) retourne la longueur de la chaîne.

UPPER(ch) met la chaîne de caractères en majuscule.

LOWER(ch) met la chaîne de caractères en minuscule.


met la première lettre de la chaîne en majuscule, le reste en
INITCAP(ch)
minuscule.
complémente la chaîne à gauche :
LPAD(ch,l,sch)
LPAD('ESSAI',10,"#@") = '#@#@#ESSAI'

complémente la chaîne à droite :


RPAD(ch,l,sch)
RPAD('ESSAI',10,"_") = 'ESSAI_____'

renvoit la sous chaîne spécifiée :


SUBSTR(ch,d,l)
SUBSTR('Dominique’,2,5) = 'omin'

10/12/18 70
GHERABI Noreddine
Les commandes DML
q  Quelques fonctions sur les dates

LAST_DAY(date) retourne le dernier jour dans le mois.

MONTHS_BETWEEN(d1,d2) calcul le nombre de mois entre deux dates.

ADD_MONTHS(date,n) ajoute n mois à la date.

(MM) Retourne le mois d’une date


TO_CHAR(date,’MM’) (YYYY) Retourne l’année
(DD) Retourne le jour

10/12/18 71
GHERABI Noreddine
Les Vues
Il est possible d'avoir une vue partielle d'une table ou de plusieurs tables.
Une vue se comporte comme une table mais ne contient pas de données.
Ses données sont extraites d'autres tables ou vues. Une vue comporte
plusieurs avantages :

Ø  Un utilisateur peut n'être intéressé que par certaines colonnes et certaines
lignes d'une table donnée. La vue lui permet de ne voir que ces lignes et
ces colonnes.

Ø  Le propriétaire d'une table peut désirer n'en autoriser qu'un accès limité, à
d'autres utilisateurs. La vue lui permet de le faire. Les autres utilisateurs
qu'il aura nommés n'auront accès qu'à la vue qu'il aura définie.

GHERABI Noreddine 72
Les Vues
q  Création d’une vue
v  CREATE VIEW nom_vue
AS SELECT colonne1, colonne2, ... FROM table WHERE condition

crée la vue nom_vue. Celle-ci est une table ayant pour structure colonne1,
colonne2, ... de table et pour lignes, les lignes de table vérifiant condition
(toutes les lignes s'il n'y a pas de condition)

Exemple :

create view V_Client as select nom,prenom,age


from client where ville=’Casablanca';

73
GHERABI Noreddine
Les Vues
q  Mise à jour d’une vue
Il est possible de mettre à jour une vue comme on le fait pour une table.
Toutes les tables d'où sont extraites les données de la vue sont affectées
par cette mise à jour.

Exemples :

§  Delete from V_Client where age > 30;


§  Update V_Client set age=23 where nom =‘anouari’;

74
GHERABI Noreddine
Les Vues
q  Supprimer une vue
Pour supprimer une vue en utilisant la commande DROP utilisée pour la
suppression des tables
DROP VIEW nom_vue

Exemple :

§  DROP VIEW V_Client;

75
GHERABI Noreddine
Les Vues
q  Liste des vues
v  describe user_views
v  select view_name from user_views

76
GHERABI Noreddine
Les commandes DCL

Dans cette partie on va voir comment un administrateur gère les


utilisateurs de la base. Nous allons voir comment créer un
utilisateur et comment lui donner des droits, des restrictions.

1.  Création d'un utilisateur


2.  Suppression d'un utilisateur
3.  Assigner des privilèges système à un utilisateur
4.  Assigner des privilèges Objets à un utilisateur
5.  Créer des rôles et leur assigner des privilèges
6.  Suppression des privilèges

10/12/18 GHERABI Noreddine 77


Les commandes DCL
Ø  Création d'un utilisateur

Syntaxe :

CREATE USER name IDENTIFIED BY password;

Exemple :

CREATE USER admin IDENTIFIED BY admin01;

10/12/18 78 GHERABI Noreddine


Les commandes DCL
Ø  Suppression d'un utilisateur

Syntaxe :

DROP USER name CASCADE;

Exemple :

DROP USER admin CASCADE;

10/12/18 79 GHERABI Noreddine


Gestion des utilisateurs

Ø  Modification du status d'un utilisateur:

Syntaxe :

v ALTER USER user ACCOUNT LOCK;

v ALTER USER user ACCOUNT UNLOCK;

10/12/18 80 GHERABI Noreddine


Les commandes DCL

Affectation d'un privilège

Il existe deux grandes familles de privilèges :

-  Les privilèges dits systèmes.


- Les privilèges définis sur les schéma (objects)

10/12/18 81
SQL*Plus -M. GHERABI Noreddine
Affectation des privilèges
Les privilèges systèmes: Les privilèges systèmes, sont plus
généraux dans le sens où ils s'utilisent sur un ensemble
d'objets

v CREATE SESSION
v ALTER ANY (TABLE ...),
v CREATE ANY (TABLE, ...),
v CREATE USER,
v DROP ANY TABLE,
v GRANT ANY (ALL PRIVILEGES, DBA, CONNECT ..
v UNLIMITED TABLESPACE

10/12/18 82 GHERABI Noreddine


Affectation des privilèges
Les privilèges systèmes
Affectation des privilèges
Les privilèges systèmes

Syntaxe :
GRANT Option
TO utilisateur;
WITH ADMIN OPTION;
Exemple :
GRANT CREATE SESSION TO adil WITH ADMIN
OPTION;
GRANT DROP User TO said;

10/12/18 84 GHERABI Noreddine


Affectation des privilèges
Les privilèges définis sur les schéma objects: Par défaut, un
utilisateur ne peut utiliser que ses propres schéma objects.
Pour qu'il puisse en utiliser d'autres, il faut lui donner ce privilège. De
plus, ne donne pas un privilège qui veut : il faut obligatoirement avoir le
droit de donner ce privilège (soit en étant propriétaire des données, soit en
ayant reçu le privilège en question avec l'instruction GRANT).

Syntaxe :
GRANT Option
ON Table
TO utilisateur;
WITH GRANT OPTION;

10/12/18 85 GHERABI Noreddine


Affectation des privilèges
Les privilèges objets
Affectation des privilèges
Les privilèges objets

Exemples :
GRANT Select
ON Client
TO nour;

GRANT Select,update(col1,col2),delete
ON Client
TO nour,adil;

10/12/18 87 GHERABI Noreddine


RÔLES ET PRIVILÈGES
Ø  Création des rôles

Syntaxe:
v CREATE ROLE Compta;

Exemples :
v GRANT SELECT, INSERT, UPDATE, DELETE ON
FACTURE TO Compta ;
Affectation d’un rôle a un utilisateur
v GRANT Compta TO nom_utilisateur ;

10/12/18 88 GHERABI Noreddine


RÔLES ET PRIVILÈGES

Ø  Les rôles standards

Trois rôles existent en standard


 
CONNECT
RESOURCE
DBA

GRANT connect TO nom_utilisateur ;

select * from DBA_SYS_PRIVS where grantee='CONNECT' ;


select * from DBA_SYS_PRIVS where grantee='RESOURCE' ;
select * from DBA_SYS_PRIVS where grantee='DBA' order by PRIVILEGE
RÔLES ET PRIVILÈGES
Ø  Suppression des rôles

Syntaxe:
v DROP ROLE Nom_Role;

Exemple :
v DROP ROLE Compta;

10/12/18 90 GHERABI Noreddine


RETIRER DES PRIVILÈGES
Ø  Suppression des privilèges

Syntaxe:
v Privileges systèmes :
REVOKE Option FROM Utilisateur;
v Privilèges objets
REVOKE Option ON table
FROM Utilisateur;

10/12/18 91 GHERABI Noreddine


RETIRER DES PRIVILÈGES
Ø  Suppression des privilèges

Exemples:
v SYSTEME
REVOKE Create table
FROM nour;
v OBJET
REVOKE Select ON Client
FROM nour;

10/12/18 92 GHERABI Noreddine


RETIRER DES PRIVILÈGES

Ø  Liste des rôles et privilèges assignés à un utilisateur

La liste des rôles assignés à un utilisateur s'obtient via les vues:


DBA_ROLE_PRIVS et USER_ROLE_PRIVS
 
SQL> select * from DBA_ROLE_PRIVS where grantee = ‘user' ;

La liste des privilèges objet assignés à un utilisateur s'obtient en interrogeant


les vues :

DBA_TAB_PRIVS, ALL_TAB_PRIVS et USER_TAB_PRIVS


 
SQL> select * from DBA_TAB_PRIVS where grantee = ‘user' ;

S-ar putea să vă placă și