Академический Документы
Профессиональный Документы
Культура Документы
Animateur : M. HAIJOUBI
SOMMAIRE
1. 2. 3. 4. 5. 6. 7.
Traduire les oprations de lalgbre Relationnelle en requtes SQL. Exploiter l'environnement du SGBDR pour interroger une base de donnes. Exploiter les commandes de description de donnes. Exploiter les commandes de manipulation des donnes. Grer des transactions. Utiliser les diffrents types dobjets sur une base de donnes. Scuriser les donnes.
2
Lalgbre relationnelle
L'algbre relationnelle est l'origine du langage SQL (Structured Query
Language) d'IBM, langage d'interrogation et de manipulation de tous les SGBDR actuels (Oracle, PostgreSQL, MySQL, MS SQLServer, MS Access et tous les autres). Une bonne matrise de l'algbre relationnelle permet de concevoir n'importe quelle requte aussi complexe soit elle avant de la mettre en uvre l'aide du langage SQL Les oprations de base
La projection
Opration qui consiste extraire toutes lignes dune table pour un sous ensemble de colonnes Exemple :
Liste des nom,prnom des stagiaires Select nom,prnom from stagiaire
nom Saadi
prnom Maha
ln Fes
dn 12/10/1988 11/08/1986
Amrani Med
Sefrou 30/12/1987
nom Saadi
prnom Maha
6
La slection
Permet de retenir les lignes rpondant une condition de slection La condition est exprime l'aide des oprateurs =, >, <, >=, <=, <>, oprateurs logiques de base ET, OU, NON et ventuellement des parenthses Exemple : SELECT * FROM stagiaire WHERE ln=FES
nom Saadi
prnom Maha
ln Fes
dn 12/10/1988 11/08/1986
Amrani Med
Sefrou 30/12/1987
nom Saadi
prnom Maha
ln Fes
dn 12/10/1988 11/08/1986
7
La jointure
Cet oprateur porte sur 2 tables qui doivent avoir au moins un attribut dfini dans le mme domaine La condition de jointure peut porter sur l'galit d'un ou de plusieurs attributs dfinis dans le mme domaine
codeg
TDI1B TDI1A TDI1C
codeg
TDI1A TDI1B TDI1C
nomg
Groupe A Groupe B Groupe C
codeg
TDI1B TDI1A TDI1C
codeg
TDI1B TDI1A TDI1C
nomg
Groupe B Groupe A Groupe C
8
Union (OU)
Cet oprateur porte sur deux tables qui doivent avoir
le mme nombre d'attributs dfinis dans le mme domaine. On parle de tables ayant le mme schma. La table rsultat possde les attributs des tables d'origine et les lignes de chacune, avec ou sans limination des doublons ventuels.
Intersection (ET)
Cet oprateur porte sur deux tables de mme
schma La table rsultat possde les attributs des tables d'origine et les lignes communes chacune.
10
Diffrence
Cet oprateur porte sur deux tables de mme
schma La table rsultat contient les lignes de la premire table qui n'appartiennent pas la deuxime
11
Produit cartsien
Cet oprateur porte sur deux tables La table rsultat est form par la concatnation de
12
crer la base de donnes EFP comprenant les deux tables : groupe et stagiaire. Dmarrer SQL Enterprise manager Enregistrer votre serveur Crer la base de donnes Crer les tables Crer le schma de la base de donnes Utiliser lanalyseur de requtes pour interroger la BD
13
Le langage SQL
En 1970, SQL (Standard Query Language, en franais langage
de requtes structures ) est n la suite des travaux mathmatiques de Codd (Directeur de recherche du centre IBM San-Jos) , travaux qui ont fond les bases de donnes relationnelles Suite ces recherches plusieurs langages sont apparus : IBM Sequel (Structured English Query Language) en 1977 IBM Sequel/2 IBM System/R IBM DB2 En 1982, SQL fut lanc commercialement par IBM. SQL a subit 3 normalisations : SQL1 en 1986 (version minimale) SQL1 en 1989 (+ intgrit) SQL2 en 1992 SQL3 en 1999 Aujourd'hui SQL constitue le point d'entre obligatoire sur une Base de Donne relationnelle.
14
SELECT .. ]
15
DISTINCT
Le rsultat dun SELECT tant un ensemble, il peut y
avoir des doublons Le mot cl DISTINCT permet de prciser que lon ne veut quun seul exemplaire de ces enregistrements Remarque : le rsultat est une liste trie
Exemple : liste des prnom des stagiaires
Oprateurs Arithmtiques
Vous pouvez utiliser les oprateurs
arithmtiques * / + - pour effectuer des calculs Priorit des oprateurs : * et / sont prioritaires sur + et Vous pouvez utiliser les parenthses
Exemple :
disponible, non affecte, inconnue ou inapplicable. Une valeur NULL est diffrente du zro ou de l'espace. Le zro est un chiffre et l'espace est un caractre Exemple :
SELECT * FROM stagiaire WHERE nb IS NULL
18
Alias de Colonne
Renomme len-tte de colonne Est utile dans les calculs Suit immdiatement le nom de la colonne
avec le mot-cl AS Doit obligatoirement tre inclus entre guillemets sil contient des espaces, des caractres spciaux ou si il faut tenir compte des majuscules/minuscules Exemple :
SELECT nom, 2*nb AS note FROM stagiaire
19
Oprateur de Concatnation
L'oprateur de concatnation (+) permet de
concatner des colonnes d'autres colonnes, des expressions arithmtiques ou des valeurs constantes Exemple :
SELECT nom + + prnom AS NP FROM stagiaire
20
la Clause WHERE
Dans la clause WHERE, les chanes
alphanumriques et les dates doivent tre incluses entre simples quottes Oprateurs de Comparaison
Oprateur
= > >= < <= <>
Signification
Egal Suprieur Suprieur ou gal Infrieur Infrieur ou gal Diffrent de
22
L'Oprateur BETWEEN
L'oprateur BETWEEN permet d'afficher des
lignes en fonction d'un intervalle de valeurs Vous spcifiez un intervalle comprenant une limite infrieure et une limite suprieure
Exemple :
Oprateur IN
Permet de comparer une expression avec
Oprateur LIKE
L'oprateur LIKE permet deffectuer une
comparaison partielle Il est surtout employ avec les colonnes contenant des donnes de type alphanumriques Il utilise les jokers % et _ (pour cent et blanc soulign). Le joker % remplace n'importe quelle chane de caractres, y compris la chane vide. Le blanc soulign remplace un et un seul caractre.
Exemple : SELECT * FROM stagiaire WHERE nom LIKE %BA%
25
Oprateurs Logiques
Un oprateur logique combine le rsultat de
deux conditions pour produire un rsultat unique ou inverse le rsultat d'une condition unique. SQL inclut trois oprateurs logiques :
27
Loprateur OR = Union
sexe = M OR ln=Fes
28
Le tri ORDER BY
ORDER BY colonne1 | 1 [ASC ou DESC ] [, colonne2
| 2 [ASC ou DESC ] ... La clause ORDER BY sert trier les lignes ASC (ascending) classe les lignes en ordre croissant. C'est l'ordre par dfaut. DESC (descending) classe les lignes en ordre dcroissant.
Exemple : SELECT * FROM stagiaire ORDER BY sexe, nb DESC
29
La clause TOP
La clause TOP n permet dafficher les n
30
32
opration sur une valeur de type chane et renvoient une valeur numrique ou de type chane. LEN : longueur dune chane LEFT RIGHT SUBSTRING : extraction LOWER UPPER : majuscule/minuscule LTRIM RTRIM : supprimer espaces REVERSE : Renvoie l'inverse d'une expression de type caractre DIFFERENCE : compare deux chanes et renvoie une valeur de 0 4 (0 indique peu ou pas de similarit, 4 indique une forte similarit )
33
La fonction LEN
Renvoie le nombre de caractres d'une expression
LEFT ( chane , longueur ) RIGHT ( chane , longueur ) SUBSTRING ( chane , dbut , longueur )
35
36
37
Fonctions numriques
Les fonctions numriques utilisent et
ROUND : calculer larrondi CEILLING : trouver lentier immdiatement suprieur ou gal FLOOR : valeur entire
39
Fonctions Date
Date = Anne, mois, jour,
suivantes effectuent une opration sur une valeur d'entre de type date et heure et renvoient une valeur numrique, une valeur de type date ou heure, ou une chane.
40
La fonction DATEADD
Renvoie une nouvelle
Intervalle year quart month dayofyear day week weekday hour minute second millisecond Abrviations yy, yyyy qq, q mm, m dy, y dd, d wk, ww dw hh min ss, s ms
41
La fonction DATEDIFF
DATEDIFF : renvoie le nombre de limites de
La fonction DATEPART
Renvoie un entier reprsentant l'lment de
43
44
l'extrme gauche d'une expression de caractres CHAR : convertit un code ASCII int en un caractre CAST et CONVERT : Convertit explicitement une expression d'un type de donnes en une expression d'un type de donnes diffrent. CAST et CONVERT offrent la mme fonctionnalit.
46
Le produit cartsien
Le produit de deux tables permet dobtenir toutes les combinaisons de lignes de ces deux tables SELECT * FROM stagiaire, groupe
codeg
X
nom Ali Laila Said Ali Laila Said codeg tdi1a tdi1a tdi1a tdi1a tdi1a tdi1a
tdi1a tdi1b
cin B2501
codeg
nomg
Lequi-jointure
On appelle qui-jointure une jointure dont la qualification est une galit entre deux colonnes. Select * FROM stagiaire, groupe WHERE stagiaire.codeg = groupe.codeg Select * FROM stagiaire INNER JOIN groupe ON stagiaire.codeg = groupe.codeg
codeg
nomg
Alias de table
Il est possible dutiliser des alas des tables
Lauto-jointure
C'est une jointure d'une table avec elle-mme Utile lorsqu'on souhaite relier des attributs qui
jointure d'une table est gale la colonne de jointure de l'autre table Il peut tre utile d'afficher toutes les lignes d'une table qu'il y ait ou non correspondance avec l'autre table de jointure Les colonnes pour lesquelles il n'y a pas de correspondance sont remplies avec la valeur NULL Cette opration s'appelle une jointure externe Il existe deux type de jointures externes : jointure externe gauche et jointure externe droite Notation
Jointure externe gauche *= ou LEFT JOIN Jointure externe droite =* ou RIGHT JOIN
52
enregistrements dans la table des rsultats Tlcharger et attacher la BD efp2 puis dvelopper les requtes suivantes :
Produit cartsien des tables stagiaire et module Liste des noms et notes des stagiaires Modifier la requte prcdente pour afficher mme les stagiaires qui nont pas de note
53
Oprations ensemblistes
Loprateur UNION Loprateur INTERSECT Loprateur MINUS
54
Loprateur UNION
Exemple : on souhaite crer une liste comprenant les
10 meilleurs stagiaires par rapport la note du bac avec une rpartition quitable par sexe (5 garons et 5 filles)
(SELECT top 5 * FROM stagiaire WHERE sexe=F ORDER BY nb DESC) UNION (SELECT top 5 * FROM stagiaire WHERE sexe=M ORDER BY nb DESC)
55
L oprateur INTERSECT
Exemple : on souhaite obtenir les noms des stagiaires de sexe
Solution ensembliste
(SELECT nom FROM stagiaire WHERE sexe=M) INTERSECT (SELECT nom FROM stagiaire WHERE nb>12)
Solution prdicative
Loprateur MINUS
On voudrait obtenir les noms des stagiaires fminins
Solution ensembliste SELECT nom FROM stagiaire WERE sexe=F MINUS SELECT nom FROM stagiaire WHERE ln=FES Solution prdicative SELECT nom FROM stagiaire WHERE sexe=F and ln<>FES
57
Noms des stagiaires masculins ayant moins de 20 ans Noms des stagiaires du groupe TSDI2A qui ne sont pas n TAZA,SEFROU ou TAOUNATE Une liste contenant 3 stagiaires n FES et 3 n SEFROU ayant obtenu la meilleurs note au bac
58
lignes afin de faire des oprations par groupe (oprations statistiques par exemple) Cette opration se ralise l'aide de la clause GROUP BY, suivie du nom de chaque colonne sur laquelle on veut effectuer des regroupements.
59
Fonctions dagrgation
FONCTION DAGREGATION AVG([DISTINCT|ALL]n)
COUNT({*|[DISTINCT|ALL]expr})
DESCRIPTION Valeur moyenne de n, en ignorant les valeurs NULL (AVERAGE) Nombre de lignes, o expr est diffrent de NULL. Le caractre * comptabilise toutes les lignes slectionnes y compris les doublons et les lignes NULL Valeur maximale de expr, en ignorant les valeurs NULL Valeur minimale de expr, en ignorant les valeurs NULL Somme des valeurs de n, en ignorant les valeurs NULL
60
Clause GROUP BY
Cette clause permet de crer des sous-
ensembles de lignes pour lesquels la valeur d'une (ou plusieurs) colonne est identique
Exemple : calculer la moyenne des notes du
La clause HAVING
Cette clause, contrairement la clause WHERE qui
prcise les conditions appliquer sur les lignes d'une table, permet de prciser des conditions au niveau des sous-ensembles crs par GROUP BY
Exemple : reprendre la requte prcdente mais
Rgle de regroupement
Toutes les colonnes qui apparaissent aprs
Soit
faire partie dune fonction dagrgation Soit apparatre dans la clause GROUP BY
63
Sous requtes
Une sous requte est une requte SELECT qui
renvoie une valeur unique et est imbrique dans une autre instruction SELECT Les instructions contenant une sous-requte se prsentent gnralement sous une des formes suivantes :
WHERE expression [NOT] IN (sous requte) WHERE expression oprateur_comparaison [ANY | ALL] (sous requte) WHERE [NOT] EXISTS (sous requte)
65
note au module 3 :
SELECT nom, prenom FROM stagiaire WHERE cin NOT IN
(SELECT cin FROM resultat WHERE codem=3)
66
note du bac :
SELECT nom, prenom,nb FROM stagiaire WHERE nb > ALL (SELECT nb FROM stagiaire)
67
68
69
70
performances des requtes (Afficher le plan d'excution, Afficher la trace du serveur, Afficher les statistiques du client, Assistant Paramtrage d'index) localiser des objets dans les bases de donnes insrer, mettre jour ou supprimer rapidement des lignes dans une table (fentre Ouvrir une table) Vous pouvez excuter l'Analyseur de requtes SQL directement partir du menu Dmarrer ou de SQL Server Enterprise Manager. Une autre possibilit consiste lancer l'application partir de l'invite de commandes, en excutant l'utilitaire isqlw. 71
72
73
Vue Index
74
75
au langage de dfinition des donnes (LDD) qui sera tudi dans les prochains chapitres. Exemple :
CREATE TABLE resultat (cin varchar(12), codem int, controle float, efm float, Moyenne AS (controle + efm)/3 )
76
Loption DEFAULT
On peut dclarer une valeur par dfaut pour
77
NUMBER(n [,d]) Nombre de n chiffres [optionnellement d aprs la virgule] SMALLINT INT FLOAT Entier sign de 16 bits (-32768 32767) Entier sign de 32 bits (-2E31 2E31-1) Nombre virgule flottante Date sous la forme 16/07/99 Heure sous la forme 12:54:24.85 Date et Heure
78
Horaire
ajouter, par exemple, une colonne oublie ou changer une dfinition de colonne existante Cela est possible grce la commande ALTER TABLE Vous pouvez ajouter des colonnes une table en utilisant l'ordre ALTER TABLE avec la clause ADD Exemple :
ALTER TABLE resultat ADD appreciation VARCHAR(60)
79
commande :
DROP TABLE <nom de la table>
81
Contraintes
NOT NULL PRIMARY KEY FOREIGN KEY UNIQUE CHECK
82
NOT NULL
La contrainte NOT NULL interdit la prsence
de valeurs NULL dans la colonne laquelle elle s'applique Par dfaut, les colonnes peuvent contenir des valeurs NULL
Exemple :
PRIMARY KEY
Une contrainte PRIMARY KEY cre une cl primaire
pour la table La contrainte PRIMARY KEY est une colonne ou un ensemble de colonnes qui identifie de manire unique chaque ligne d'une table garantit qu'aucune colonne faisant partie de la cl primaire ne contient de valeur NULL
Exemple : CREATE TABLE groupe (codeg varchar(6), nomg varchar(30) NOT NULL, CONSTRAINT pk_groupe PRIMARY KEY(codeg) )
84
FOREIGN KEY
La contrainte FOREIGN KEY, ou contrainte d'intgrit
rfrentielle, dsigne une colonne ou une combinaison de colonnes comme tant une cl trangre tablit une relation avec une cl primaire
Exemple :
CREATE TABLE stagiaire (cin varchar(12), nom varchar(30), , codeg varchar(6), CONSTRAINT pk_stagiaire PRIMARY KEY (cin), CONSTRAINT fk_groupe FOREIGN KEY (codeg) REFERENCES groupe(codeg) ON DELETE NO ACTION ON UPDATE CASCADE )
85
UNIQUE
Une contrainte d'intgrit de type cl UNIQUE exige
que chaque valeur dans une colonne ou dans un ensemble de colonnes (la cl) soit unique
Exemple : CREATE TABLE stagiaire (cin varchar(12), ni int, nom varchar(30), , codeg varchar(6), CONSTRAINT pk_stagiaire PRIMARY KEY (cin), CONSTRAINT fk_groupe FOREIGN KEY (codeg) REFERENCES groupe(codeg), CONSTRAINT uk_ni UNIQUE (ni) )
86
CHECK
La contrainte CHECK dfinit une condition
CREATE TABLE stagiaire (cin varchar(12), nom varchar(30), sexe CHAR(1), , CHECK (sexe=F or sexe=M) )
87
DROP L'option CASCADE provoque galement la suppression de toutes les contraintes associes
Exemple :
Cls primaires Cls trangres avec mise jour en cascade Les notes doivent tre comprises entre 0 et 20 Le sexe doit tre F ou M avec F comme valeur par dfaut Les notes ne doivent pas accepter NULL
89
90
91
INSERT INTO groupe (codeg, nomg) VALUES (TDI1A, Techniques Dv Info 1 groupe A)
92
93
la liste, elle reoit automatiquement une valeur NULL Mthode implicite : ajout dun groupe sans fournir de valeur pour le nom du groupe :
INSERT INTO groupe (codeg) VALUES (TDI1A)
Mthode explicite : spcifiez le mot-cl NULL INSERT INTO groupe (codeg, nomg) VALUES (TDI1A, NULL)
94
Modification de ligne
Vous pouvez modifier des lignes existantes au
stagiaire Supprimer le groupe TDI2A. Que constatez vous et pourquoi ? Supprimer les stagiaires qui ont une note du bac infrieure 11. Que constatez vous et pourquoi ? Tous les stagiaires de premire anne sont admis en deuxime anne, crire la requte qui permet de modifier leur groupe
97
98
99
regroupement d'une srie de modifications de base de donnes dans une opration logique Une fois les modifications apportes la base de donnes, elles peuvent tre valides ou annules comme une seule unit
100
mode de validation automatique Transactions explicites : Pour dmarrer une transaction explicite, utilisez l'instruction BEGIN TRANSACTION. Transactions en mode de validation automatique : C'est le mode par dfaut de SQL Server. Chaque instruction est valide lorsqu'elle se termine. Il est inutile de spcifier des instructions de contrle des transactions. Transactions implicites : Vous pouvez activer le mode de transaction implicite en utilisant l'instruction SET IMPLICIT_TRANSACTIONS ON. L'instruction suivante dmarre automatiquement une nouvelle transaction. La transaction est active jusqu' l'excution d'une instruction COMMIT ou ROLLBACK
101
une instruction COMMIT ou ROLLBACK. COMMIT : garantit que toutes les modifications effectues sur la base de donnes au cours de la transaction sont permanentes ROLLBACK : annule toutes les modifications effectues par la transaction en rtablissant les donnes dans l'tat o elles taient avant le dbut de celle-ci
102
BEGIN TRANSACTION
Indique le dbut d'une transaction locale
explicite
Syntaxe :
BEGIN TRANSACTION
103
COMMIT TRANSACTION
Marque la fin d'une transaction russie
COMMIT TRANSACTION
104
ROLLBACK TRANSACTION
Annule une transaction implicite ou explicite
ROLLBACK TRANSACTION
105
numro, nom et solde Simuler une panne du serveur aprs lexcution dune partie dune transaction. Cette transaction comprend deux commandes update qui permettent deffectuer un virement de 1000DH du compte n100 vers le compte n200
Begin transaction Update compte set solde = solde -1000 where numero = 100 (panne du serveur = arrter puis redmarrer le serveur) Update compte set solde = solde -1000 where numero = 200 Commit transaction
107
108
Les vues
Une vue est une table virtuelle dont le contenu est
dfini par une requte Une vue ressemble une table relle, avec un ensemble de colonnes nommes et de lignes de donnes Une vue n'existe pas en tant qu'ensemble de valeurs de donnes stock dans une base de donnes Les lignes et les colonnes de donnes proviennent de tables rfrences dans la requte qui dfinit la vue et sont produites dynamiquement lorsque la vue est utilise
109
affichant une slection de celle-ci Simplifier la consultation des donnes. Une vue peut tre utilise pour extraire les donnes de plusieurs tables. Permet des groupes d'utilisateurs d'accder aux donnes en fonction de leurs critres particuliers
110
de donnes courante
Exemple :
112
Les index
Les index des bases de donnes sont similaires aux index que
l'on trouve dans les livres L'index d'un livre vous permet de rechercher rapidement des informations sans lire la totalit de l'ouvrage Celui d'une base de donnes permet de rechercher des donnes dans une table sans analyser la table tout entire L'index d'un livre est une liste de mots accompagns du numro de page o ils se trouvent L'index d'une base de donnes est une liste des valeurs d'une colonne accompagnes des emplacements de stockage des lignes o les valeurs se trouvent Un index peut tre cr dans une table, soit sur une seule colonne, soit sur un ensemble de colonnes
113
clusters, la table est copie, les donnes de la table sont tries et la table initiale est supprime
La cration d'un index unique garantit l'chec
114
CREATE UNIQUE INDEX idx_inscription ON stagiaire (nins) CREATE INDEX idx_nom ON stagiaire (nom)
115
116
117
118
Modes d'authentification
SQL Server peut fonctionner selon deux modes de scurit : mode d'authentification Windows : Ce mode permet l'utilisateur de se connecter par le biais d'un compte utilisateur Windows mode mixte (authentification Windows et authentification SQL Server) : ce mode permet aux utilisateurs de se connecter SQL Server l'aide dun compte Windows ou dun compte propre SQL Server
119
Rles
Les rles sont de puissants utilitaires permettant de runir les
utilisateurs en une seule unit laquelle il est possible d'appliquer des autorisations Les autorisations octroyes un rle, refuses ou rvoques s'appliquent aussi aux membres du rle. Vous pouvez crer un rle reprsentant un poste rempli par une catgorie de collaborateurs, lui octroyer les autorisations appropries. Chaque fois qu'un collaborateur passe un autre travail, il suffit de l'ajouter comme membre du rle. Il n'est pas ncessaire d'accorder, de refuser ou de rvoquer les autorisations de chaque utilisateur chaque fois qu'il accepte ou qu'il quitte un travail. Elles sont automatiquement appliques aux utilisateurs ds qu'ils deviennent membres du rle
120
db_datareader
ne peut pas tre modifi Par dfaut le compte sa possde un mot de passe vide Assignez un mot de passe au compte sa pour vous prmunir contre tout accs non autoris
123
implicites ncessaires pour effectuer toutes les activits dans la base de donnes L'utilisateur dbo ne peut pas tre supprim et est toujours prsent dans toutes les bases de donnes Si l'utilisateur rachid, membre du rle de serveur sysadmin, cre une table T1, celle-ci appartiendra dbo et sera dsigne par dbo.T1, et non rachid.T1. Si rachid est seulement membre du rle de base de donnes db_owner, et qu'il cre une table T1, celleci appartiendra rachid et sera dsigne par rachid.T1
124
compte Windows l'accs une base de donnes et comment associer la connexion un utilisateur de la base de donnes :
USE master sp_grantlogin domaine\said sp_defaultdb @loginame = said', defdb = efp USE efp sp_grantdbaccess said, said
125
Les procdures stockes utiliser sont les suivantes : sp_addlogin 'connexion', 'mot_de_passe', 'base_cible sp_adduser 'connexion', 'utilisateur', 'rle il est ncessaire d'utiliser la base de donnes cible. Exemple : cration de lutilisateur hamid dont le mot de pass kw7E.6J et possdant le rle de lecteur uniquement : exec sp_addlogin hamid', 'kw7E.6J', efp' sp_adduser hamid', 'u_hamid', 'db_datareader'
126
Octroi de permission
Accordez des autorisations d'instruction et d'objet qui permettent un compte utilisateur:
d'effectuer des oprations ou de travailler avec des donnes dans la base de donnes en cours de les restreindre quant aux oprations et informations qui ne font pas partie de leur fonction
127
128
GRANT
Permet un utilisateur de travailler avec les donnes de la base
ou d'excuter des instructions particulires. Autorisations sur une instruction : GRANT { ALL | instruction [ ,...n ] } TO compte [ ,...n ] ALL : Accorde toutes les autorisations Instruction : Nom de l'instruction pour laquelle l'autorisation est accorde. La liste des instructions peut inclure : CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, CREATE VIEW, BACKUP DATABASE, BACKUP LOG Exemples : GRANT ALL to said GRANT CREATE VIEW to rachid
129
GRANT
Autorisations sur un objet : GRANT { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( colnne [ ,...n ] ) ] ON { table | vue | ON { table | vue } [ ( colonne [ ,...n ] ) ] } TO compte [ ,...n ]
Exemples :
GRANT SELECT ON module TO public GRANT INSERT, UPDATE, DELETE ON stagiaire TO fatima, said, ali
130
Refus d'autorisation
supprime une autorisation prcdemment
accorde l'utilisateur ou au rle dsactive une autorisation hrite d'un ou de plusieurs autres rles vous assure qu'un utilisateur ou un rle n'hritera pas l'avenir d'une autorisation
131
DENY
Autorisations sur une instruction :
DENY { ALL | instruction [ ,...n ] } TO compte [ ,...n ] Autorisations sur un objet : DENY { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( colonne [ ,...n ] ) ] ON { table | vue | ON { table | vue } [ ( colonne [ ,...n ] ) ] } TO compte [ ,...n ] [ CASCADE ] Exemple : GRANT SELECT ON stagiaire TO public DENY SELECT, INSERT, UPDATE, DELETE ON stagiaire TO laila, driss
132
Retrait d'autorisation
Vous pouvez retirer une autorisation prcdemment
accorde ou refuse Le retrait d'une autorisation est similaire un refus dans la mesure o les deux actions suppriment une autorisation accorde au mme niveau Cependant, cela n'empche pas l'utilisateur, le groupe ou le rle d'hriter d'une autorisation accorde un niveau suprieur. Par consquent, si vous retirez l'autorisation d'affichage d'une table accorde un utilisateur, il est possible que celui-ci puisse encore l'afficher parce que l'autorisation avait t accorde un rle auquel il appartient
133
REVOKE
Autorisations sur une instruction :
REVOKE { ALL | instruction [ ,...n ] } FROM compte [ ,...n ] Autorisations sur un objet : REVOKE { ALL [ PRIVILEGES ] | permission [ ,...n ] } { [ ( colonne [ ,...n ] ) ] ON { table | vue | ON { table | vue } [ ( colonne [ ,...n ] ) ] } FROM compte [ ,...n ] [ CASCADE ] Exemple : REVOKE CREATE TABLE FROM ali REVOKE SELECT ON stagiaire FROM meryem
134
TP16 : scurit
Changer la scurit du serveur et passer la scurit mixte Crer les comptes et les rles suivants :
Aziz et Driss : directeurs Rachida, said et mourad : surveillance gnrale Mounia, fatima, khalid : formateurs Accorder au rle directeur tous les droits sur la base de donnes efp Accorder au rle surveillant le droit de lecture des tables groupe et stagiaire Accorder au rle formateur le droit de lecture sur toutes les tables et le droit dcriture sur la table resultat Retirer lutilisateur mourad le droit de lecture de la colonne adresse de la stagiaire Autoriser said modifier ladresse
135