Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LeSQLdeAZlagestiondesprivilges
Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter tudes Emploi Club Contacts
Accueil
ALM
SGBD
Java
4D
.NET
Dv.Web
Access
EDI
BigData
AccueilSGBD
Programmation
DB2
ForumsSGBD
Firebird
FAQsSGBD
SGBD
Office
InterBase
Solutionsd'entreprise
MySQL
TutorielsSGBD
SQL
NoSQL
Applications
PostgreSQL
OutilsSGBD
Oracle
Mobiles
Sybase
Systmes
SQLServer
LivresSGBDetSQL
Lagestiondesprivilges
Onemploietortlemot"droit"pourexpliquer,dansSQL,lesousensembleDCLdit"datacontrollanguage"quis'occupedelagestiondes
privilges.CettepartiedeSQL2s'occupedecontrlerquelutilisateurpeutounepeutpasutiliserteloutelordreSQLsurteloutelobjeteten
cettematireiln'yapasquedesdroits,maisaussides"usages"!
Articlelu16956fois.
L'auteur
SQLPro
L'article
Publile12novembre2003
1.Lanotiond'utilisateur
Publicvis:dbutant
Lienssociaux
Lanotiond'utilisateurpossdeunelacuneimportantedansSQLcarellefaitl'impassesurlafaondontoncrunutilisateur...
NOTA:SQL2aprvudesrglesd'accsspcifiquespourlesdiffrentesfamillesd'ordreSQL.Ainsipourlacrationd'unschma(unebase
dedonneenfait)oud'uncatalogue(unensembledebasesdedonnes),illaisselarglel'apprciationdel'diteurduSGBDR.Enrevanche
pourlesordresCREATE,ALTERetDROP,l'utilisateurcourantdoittrelemmequel'utilisateurpropritaire(auteur)duschmamodifi.
Rapellonsquelacrationd'unutilisateursefaitaumomentdelacrationduschma.Pardfautcedernierestlecrateurdesobjets.
Souventdanslesimplmentationcommerciales,ontrouveunpseudoordreSQLdugenreCREATEUSERnomUtilisateur,ouencoreune
procdurestockepermettantdedfinirunnouvelutilisateur.
Ainsi,pourMSSQLServer:
Exemple1
Slectionnez
sp_adduser'nomConnexion','nomNouvelUtilisateur'
Permetd'ajouterunnouvelutilisateuraffectlaconnexiondonne.
LanormeSQL2proposetroisfonctionspourconnatrel'utilisateur(c'estdireceluiquiseconnecteauserveur)etl'auteur,c'estdirele
crateurdesobjets:
SYSTEM_USER
nomdeconnexion
SESSION_USER
nomducrateur
CURRENT_USER
utilisateurcourant
Ainsi,pardfaut,SQLServerutiliselesnomssuivants:
Exemple2
Slectionnez
SELECTSYSTEM_USER,SESSION_USER,CURRENT_USER
Slectionnez
SYSTEM_USERSESSION_USERCURRENT_USER
sadbodbo
NotonsenmargelesuperutilisateurSQLPUBLICquiconcernetouslesutilisateurspasssetvenir.
2.Octroyerdesprivilges
Lesprivilgessont,pourunouplusieursutilisateurslapossibilitd'utilisercertainsobjetsetparmicesobjets,certainsordresSQL.
2.1.Lesdiffrentsprivilges
VoiciunelistedesdiffrentsprivilgesqueSQLpermetetlesobjetssurlesquelscesprivilgesportent:
http://sqlpro.developpez.com/cours/sqlaz/dcl/
1/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
USAGE
domaine,jeudecaractres,collation,
translation
SELECT,INSERT,UPDATE,REFERENCES
nomducrateur
CURRENT_USER
table,vue,colonne(s)
Notonsqu'iln'estpaspossiblededfinirdesdroitssurlacration,lamodificationoulasuppressiondeslmentsdeschema(basede
donnes),cecitantdfinitlorsdelacrationduschema.
2.2.Attributiondeprivilges
C'estl'ordreSQLGRANTquipermetd'attribuerunprivilgediffrentsutilisateurssurdiffrentsobjets.
Voicilasyntaxedel'ordreSQLGRANT:
Slectionnez
GRANT<privileges>
TO<gratifi>[{,<gratifi>}...]
[WITHGRANTOPTION]
Slectionnez
<privileges>::=
<privilge>[{,<privilge>}...]
Slectionnez
<privilege>::=
ALLPRIVILEGESON<objettable>
|<privilged'action>
|<privileged'usage>
|<privilegederfrence>
Slectionnez
<privilged'action>::=
<action>[{,<action>}...]ON<objettable>
Slectionnez
<privileged'usage>::=
USAGEON<objetd'usage>
Slectionnez
<privilegederfrence>::=
REFERENCES[(<listedecolonne>)]<nomdetable>
Slectionnez
<action>::=
SELECT
|DELETE
|INSERT[(<listedecolonne>)]
|UPDATE[(<listedecolonne>)]
Slectionnez
<objettable>::=
[TABLE]<nomdetableoudevue>
Slectionnez
<objetd'usage>::=
DOMAIN<nomdedomaine>
|COLLATION<nomdecollation>
|CHARACTERSET<nomdejeudecaractres>
|TRANSLATION<nomdetranslation>
Slectionnez
<gratifi>::=
http://sqlpro.developpez.com/cours/sqlaz/dcl/
2/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
PUBLIC
|<utilisateur>
LaclauseWITHGRANTOPTION,estutilisepourautoriserlatransmissiondesdroits.LaclauseALLPRIVILEGESn'ad'intrtquedanslecadre
delatransmissiondesdroits.
Voicimaintenantunebatteried'exemplesafindemieuxcomprendrecommentutilisercetordre...Pournosexemples,nousavonsconsidr
quelesutilisateursDUPONT,DURAND,DUBOIS,DUVAL,DULACetDUFOURtaitcrdanslabasededonnes.Celuiquilancelesordres(sauf
indicationcontraire)estl'utilisateurDUHAMEL.
Exemple3
Slectionnez
GRANTSELECT
ONT_CHAMBRE
TODUBOIS
AutoriseDUBOISlancerdesordresSQLSELECTsurlatableT_CHAMBRE.Notezl'absencedumotTABLE.
Exemple4
Slectionnez
GRANTINSERT,UPDATE,DELETE
ONTABLET_CHAMBRE
TODUVAL,DUBOIS
AutoriseDUVALetDUBOISmodifierlesdonnespartouslesordresSQLdemisejour(INSERT,UPDATE,DELETE)maispasleslire!
Exemple5
Slectionnez
GRANTSELECT
ONTABLET_CMAMBRE
TODUFOURWITHGRANTOPTION
AutoriseDUFOURlancerdesordresSQLSELECTsurlatableT_CHAMBREmaisaussitransmettretoutautreutilisateurlesdroitsqu'ila
acquisdanscetordre.
Exemple6
Slectionnez
GRANTSELECT,INSERT,DELETE
ONTABLET_CHAMBRE
TODURANDWITHGRANTOPTION
AutoriseDURANDlancerdesordresSQLSELECT,INSERT,DELETEsurlatableT_CHAMBRE.
Exemple7
Slectionnez
GRANTSELECT,UPDATE
ONTABLET_CHAMBRE
TOPUBLIC
AutorisetouslesutilisateursprsentetvenirlancerdesordresSQLSELECTetUPDATEsurlatableT_CHAMBRE.
Exemple8:DURANDlancel'ordresuivant:
Slectionnez
GRANTALLPRIVILEGES
ONTABLET_CHAMBRE
TODUBOIS
CequiautoriseDUBOISlancersurlatableT_CHAMBRE,lesmmesordresSQL,queceuxautorisDURAND(SELECT,INSERT,DELETE).
Onparlealorsd'hritagededroitsc'estdirequel'utilisateurdotsdecesdroitspeutnouveaulescderunouplusieursautres
utilisateurs.
Exemple9:DURANDlancel'ordresuivant:
Slectionnez
GRANTUPDATE
ONTABLET_CHAMBRE
TODUBOIS
Cetordrevaprovoquuneerreur,carDURANDn'estpasautorislancerdesordresUPDATEsurlatableT_CHAMBREetnepeutdonc
transmettreundroitqu'iln'apas!
2.3.Gestionfinedesprivilges
Estilpossibledegrerdesprivilgesplusfinsquesurl'intgralitdelatableoudevue?Enparticulier,peutongrerdesprivilgesau
niveaudecertainescolonnesd'unetable?
http://sqlpro.developpez.com/cours/sqlaz/dcl/
3/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
LarponseestOUI,maisilfaututiliserunpeud'astuce...
2.3.1.PrivilgesINSERTetUPDATEsurcolonne
Onpeutemployerl'ordreGRANTpourcefaire:
Exemple10
Slectionnez
GRANTUPDATE(CHB_POSTE_TEL,CHB_COUCHAGE)
ONTABLET_CHAMBRE
TODULAC
CetordrepermetDULACdemodifieruniquementlescolonnes"postetlphonique"et"nombredeplacedecouchage"delatable
T_CHAMBRE.
Pluscurieux,onpeutdfinirlescolonnesutilisablespourunordred'insertionpourunutilisateur:
Exemple11
Slectionnez
GRANTINSERT(CHB_NUMERO,CHB_ETAGE,CHB_BAIN,CHB_DOUCHE,CHB_WC)
ONTABLET_CHAMBRE
TODULAC
CetordrepermetDULACd'insrerunenouvellelignedanslatable,uniquementenspcifiantlescolonneslistes.Leproblmeestquedans
cettelistenefigurepaslacolonneclef...Autrementdit,DULACnepourrajamaisrieninsrerdutout,saufsilaclefestcalculeparun
dclencheuravantinsertion.
NOTA:danslecasdel'attributiondeprivilgesd'insertionsurcolonne,ilestindispensabledefairefigurertouteslescolonnesNOTNULL
n'ayantniclausedevaleurpardfaut,niremplissageparuntriggeravantinsertion.Sanscelacetteautorisationestillusoire!
2.3.2.PrivilgesSELECTsurcolonne
Cetypedeprivilgen'estpasgrdirectementparunordreSQL.
Eneffet,iln'estpaspossibled'crire:
Exemple12
Slectionnez
GRANTSELECT(CHB_NUMERO,CHB_ETAGE,CHB_BAIN,CHB_DOUCHE,CHB_WC)
ONTABLET_CHAMBRE
TODULAC
Cetordren'estpaslgalauniveaudeSQL.
MaisunordreGRANTpeutportersurunevue!
Nousvoiladoncsauv:crerunevuepourgrerlesprivilgesdeslectiondel'utilisateurDULAC..
Exemple13
Slectionnez
CREATEVIEWV_CHAMBRE
AS
SELECTCHB_NUMERO,CHB_ETAGE,CHB_BAIN,CHB_DOUCHE,CHB_WC
FROMT_CHAMBRE
Slectionnez
GRANTSELECT
ONV_CHAMBRE
TODULAC
Etletourestjou!
2.4.Particularitdesprivilgesd'usage
Maisquelestdoncl'intrtdegrerdesprivilgessurdesdomaines,descollations,destranslations,oudesjeuxdecaractres?
NOTA:pourleslecteursquineseraientpasfamiliarissaveccesobjetsd'unebasededonnes,voicilesrfrences.
Pourlesdomaines:
leSQLdeAZ,1erepartie,6.6lesdomaines
leSQLdeAZ,7emepartie,5.4Dfinirdesdomaines
Pourlesjeuxdecaractres,collationsettranslations,lire:
leSQLdeAZ,7emepartie,4Unequestiondecaractres
Pourcomprendrel'intrtdesprivilgesd'usageintressonsnousaudomaineenrapellantqueledomaineestconstitud'untypededonnes
assortiesd'autantderglesquel'onveut(contraintes)etmmeaucunesionledsire.Enoutre,ledomaineestutilisenremplacementd'un
typededonneSQLbasique,partoutoonenabesoin,dansladfinitiondestables,commesdansl'utilisationdelafonctionCASTpar
exemple.
Voicilacrationd'undomainepermettantdespcifierunpourcentage:
Exemple14
http://sqlpro.developpez.com/cours/sqlaz/dcl/
4/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
Slectionnez
CREATEDOMAINDMN_POURCENTFLOAT
CHECK(VALUEBETWEEN0AND100)
Leproblmersidedanslefaitqu'unevuepeutavoirtcreavecuntranstypagededomaine...
Exemple15
Slectionnez
SELECTCHB_ID,CHB_COUCHAGE,
CAST(100*(CHB_COUCHAGE
/(SELECTSUM(CHB_COUCHAGE)
FROMT_CHAMBRE))ASDMN_POURCENT)ASPOURCENT_OCCUPATION
FROMT_CHAMBRE
Danscecasquevatilsepasserlorsdelasuppressiondudomaine?
SilasuppressiondudomainesefaitaveclaclauseRESTRICT,lefaitquecettevueutiliseuntranstypageprovoquerauneerreuretinterdirala
suppressioneffectivedudomaine.
Silasuppressiondudomainesefaitl'aidedelaclauseCASCADE,alorslavueestsupprime!
C'estpourquoionauratoutintrtintroduiredesprivilgesd'usagepourlesdomaines,collations,translationsetjeuxdecaractresmaisde
faonparcimonieusescertainsutilisateurscapablesd'instancierdesvuesparexemple.Celapermettradelimiterlesdgats...
Bienentenducequisepassedansnotreexempleaveclesdomainesestsimilaireacequipeutsepasseraveclescollations,translationset
jeuxdecaractres.
2.5.Privilgesderfrence
Lorsquel'oncredestablesenliaisonslesunesauxautres,onutilisetrssouventlemcanismed'intgritrfrentielafindegrerlesclefs
trangres.
Voyonscequisepassesi,dansnotrebaseexemple,nousattribuonslesdroitsainsi:
Exemple16
Slectionnez
GRANTSELECT,INSERT,UPDATE,DELETE
ONTABLET_CHAMBRE
TODUMONT
Slectionnez
GRANTSELECT,INSERT,UPDATE,DELETE
ONTABLET_PLANNING
TODUMONT
Slectionnez
GRANTSELECT,INSERT,UPDATE,DELETE
ONTABLETJ_CHB_PLN_CLI
TODUMONT
Dumontpourraslectionneretsupprimersansproblmesdanstouteslestables.Ilpourramettrejourlesdonnesetinsrersansaucun
problmedansleslestablesT_CHAMBREetT_PLANNING.
EnrevancheilseheurteraparfoisunrefusdelabasededonnespourlamisejourdelatabledejointureTJ_CHB_PLN_CLI.Pire,illui
seraimpossibled'insrerdesdonnesdanscettederniretable...
Quelenestlaraison?
Regardonscommenttcrecettetabledejointure:
Slectionnez
CREATETABLETJ_CHB_PLN_CLI
(CHB_IDINTEGERNOTNULL,
PLN_JOURDATEnotnull,
CLI_IDINTEGERnotnull,
CHB_PLN_CLI_NB_PERSSMALLINTnotnull,
CHB_PLN_CLI_RESERVENUMERIC(1)notnulldefault0,
CHB_PLN_CLI_OCCUPENUMERIC(1)notnulldefault1,
CONSTRAINTPK_TJ_CHB_PLN_CLIPRIMARYKEY(CHB_ID,PLN_JOUR),
CONSTRAINTFK_CHB_IDREFERENCEST_CHAMBRE(CHB_ID),
CONSTRAINTFK_PLN_JOURREFERENCEST_PLANNING(PLN_JOUR),
CONSTRAINTFK_CLI_IDREFERENCEST_CLIENTCLI_ID)
)
Elleutilise3tablesenrfrence:T_CHAMBRE,T_PLANNING,T_CLIENT.OrnotreutilisateurDUMONTn'aaucunprivilgesurlatable
T_CLIENT.Illuiseradoncimpossiblelorsdel'insertion,commelorsdelamisejourdeprciserunevaleurpourcettecolonnesansqu'ilse
voitautomatiquementinfligunrefusduserveur.
Ordonc,pourpouvoirdfinirunevaleurpourlacolonneCLI_IDlorsdel'excutiondesordresUPDATEetINSERT,notreutilisateurDUMONT,
doitavoirunprivilgesupplmentairedfinitcommesuit:
Exemple17
http://sqlpro.developpez.com/cours/sqlaz/dcl/
5/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
Slectionnez
GRANTREFERENCES(CLI_ID)
ONTABLET_CLIENT
TODUMONT
NOTA:leprivilgederfrenceneportepasexclusivementsurlescontraintesd'intgritmaissurtoutecontraintefaisantrfrenceune
colonned'unetableexterne.
3.Rvocationdesprivilges
L'ordreSQLREVOKEpermetdervoquer,c'estdire"retirer"unprivilge.
Sasyntaxeestlasuivante:
Slectionnez
REVOKE[GRANTOPTIONFOR]<privileges>
FROM<gratifi>[{,<gratifi>}...]
[RESTRICT
|CASCADE]
Slectionnez
<privileges>::=
<privilge>[{,<privilge>}...]
Slectionnez
<privilege>::=
ALLPRIVILEGESON<objettable>
|<privilged'action>
|<privileged'usage>
|<privilegederfrence>
Slectionnez
<privilged'action>::=
<action>[{,<action>}...]ON<objettable>
Slectionnez
<privileged'usage>::=
USAGEON<objetd'usage>
Slectionnez
<privilegederfrence>::=
REFERENCES[(<listedecolonne>)]<nomdetable>
Slectionnez
<action>::=
SELECT
|DELETE
|INSERT[(<listedecolonne>)]
|UPDATE[(<listedecolonne>)]
Slectionnez
<objettable>::=
[TABLE]<nomdetableoudevue>
Slectionnez
<objetd'usage>::=
DOMAIN<nomdedomaine>
|COLLATION<nomdecollation>
|CHARACTERSET<nomdejeudecaractres>
|TRANSLATION<nomdetranslation>
Slectionnez
<gratifi>::=
PUBLIC
|<utilisateur>
Lagrandediffrencersideenfaitdansl'usagedesmotsclefsRESTRICTetCASCADE.EncasdeRESTRICT,sileoulesutilisateursvissont
cdsleursdroitsd'autres,unmessaged'erreurapparatraetleSGBDRrefuseradervoquerleoulesdroits.Enrevanchel'usagedumot
clefCASCADEentraineralarvocationdesdroitscdslamanired'unchateaudecarte.
http://sqlpro.developpez.com/cours/sqlaz/dcl/
6/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
Anoterquel'utilisationdel'expressionGRANTOPTIONFORnervokepaslesdroitsmaissupprimelapossibilitdecessiondesdroitslorsque
cesdroitsonttdfinisenutilisantlaclauseWITHGRANTOPTION.
3.1.Quelquesexemplessimples
Exemple18
Slectionnez
REVOKESELECT
ONT_CHAMBRE
FROMDUBOIS
SupprimeleprivilgedeselectiondelatableT_CHAMBREattribuDUBOISdansl'exemple1.
Exemple19
Slectionnez
REVOKEINSERT,DELETE
ONTABLET_CHAMBRE
FROMDUVAL,DUBOIS
Supprimelesprivilgesd'insertionetdesuppressiondelatableT_CHAMBREattribuDUVALetDUBOISdansl'exemple2,maispasceluide
misejour(UPDATE).
Exemple20
Slectionnez
REVOKEGRANTOPTIONFORSELECT
ONTABLET_CMAMBRE
FROMDUFOUR
SupprimelapossibilitpourDUFOURdetransmettreleprivilgedeslectionsurlatableT_CHAMBRE.
3.2.Problmatiquedervocation
Ilexistecependantquelquespigesdansl'utilisationdumcanismedervocation.Nousallonsenmontrerquelquesunsl'aidedediffrents
exemples.Rapellonssimplementqueceluiquilancelesordres(saufindicationcontraire)estl'utilisateurDUHAMEL.
Contrairementauxdroits"systmes"lesprivilgessontcumulatifs.Onpeutainsiobtenirplusieursfoislemmeprivilgesurlemmeobjet
enprovenancedediffrentsutilisateurs.Leprivilgeseratotalementretirlorsquetouslesutilisateursayantdonnceprivilgel'auront
retir.
Exemple21
Slectionnez
GRANTSELECT
ONT_CLIENT
TODUCROSWITHGRANTOPTION
Slectionnez
GRANTSELECT
ONT_CLIENT
TODUGLAND
C'estmaintenantDUCROSquiestl'utilisateurquivalancerl'ordresuivant:
Slectionnez
GRANTSELECT
ONT_CLIENT
TODUGLAND
Enfin,DUHAMELreprendlamainpourrvoquerainsi:
Slectionnez
REVOKESELECT
ONT_CLIENT
FROMDUGLAND
DUGLANDpeutilslectionnerdeslignesdelatableT_CLIENT?LarponseestOUI,parcequ'ilpossdeencoreundroitdeslectionvenant
deDUCROS!
Voiciuneautreproblmatique.LesuperutilisateurPUBLICnevisepersonneenparticulierniengnral.Onnepeutdoncretirerunprivilge
particulierunutilisateurdonnmmesil'onaattribudesprivilges"PUBLIC".
Exemple22
Slectionnez
GRANTSELECT
ONT_CLIENT
TOPUBLIC
http://sqlpro.developpez.com/cours/sqlaz/dcl/
7/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
Slectionnez
REVOKEINSERT,DELETE
ONT_CLIENT
FROMDUMOULIN
CedernierordreSQLvaretournerunmessaged'erreuretneserapasexcutparcequeDUMOULINn'ajamaisreulesprivilgesINSERTet
DELETEsurlatableCLIENT,bienqu'ilhritedesprivilgesdePUBLIC!
EnfaitilfautcomprendrequelemodledegestiondesprivilgesdansSQLreposesurlathoriedesgraphesetpeutdevenirvitecompliqu
lorsquel'onveutgrerfinementdemultiplesdroits.
4.Retrouverlesprivilges
Lesvuesd'informationdeschemapermettentderetrouverlesprivilges,lesobjetsetlesutilisateurviss(originairesetdestinataires).Pour
celalanormeSQL2prvue3vuesspcifiques:
INFORMATION_SCHEMA
Colonnes
TABLE_PRIVILEGES
GRANTOR,GRANTEE,TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME,
PRIVILEGE_TYPE,IS_GRANTABLE
COLUMN_PRIVILEGES
GRANTOR,GRANTEE,TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME,
COLUMN_NAME,PRIVILEGE_TYPE,IS_GRANTABLE
USAGE_PRIVILEGES
GRANTOR,GRANTEE,OBJECT_CATALOG,OBJECT_SCHEMA,
OBJECT_NAME,OBJECT_TYPE,PRIVILEGE_TYPE,IS_GRANTABLE
Exemple23
Slectionnez
SELECTGRANTOR,GRANTEE,TABLE_NAME,'<TABLE>'ASCOLUMN_NAME,PRIVILEGE_TYPE,IS_GRANTABLE
FROMINFORMATION_SCHEMA.TABLE_PRIVILEGES
WHEREGRANTEEIN('DUBOIS','DUVAL','DULAC')
UNION
SELECTGRANTOR,GRANTEE,TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE,IS_GRANTABLE
FROMINFORMATION_SCHEMA.COLUMN_PRIVILEGES
WHEREGRANTEEIN('DUBOIS','DULAC','DUVAL)
ORDERBYGRANTEE,TABLE_NAME,PRIVILEGE_TYPE,COLUMN_NAME
Slectionnez
GRANTORGRANTEETABLE_NAMECOLUMN_NAMEPRIVILEGE_TYPEIS_GRANTABLE
DUHAMELDUBOIST_CHAMBRE<TABLE>SELECTFalse
DUHAMELDUBOIST_CHAMBRE<TABLE>INSERTFalse
DUHAMELDUBOIST_CHAMBRE<TABLE>UPDATEFalse
DUHAMELDUBOIST_CHAMBRE<TABLE>DELETEFalse
DUHAMELDUVALT_CHAMBRE<TABLE>INSERTFalse
DUHAMELDUVALT_CHAMBRE<TABLE>UPDATEFalse
DUHAMELDUVALT_CHAMBRE<TABLE>DELETEFalse
DURANDDUBOIST_CHAMBRE<TABLE>SELECTFalse
DURANDDUBOIST_CHAMBRE<TABLE>INSERTFalse
DURANDDUBOIST_CHAMBRE<TABLE>UPDATEFalse
DURANDDUBOIST_CHAMBRE<TABLE>DELETEFalse
DUHAMELDULACT_CHAMBRECHB_POSTE_TELUPDATEFalse
DUHAMELDULACT_CHAMBRECHB_COUCHAGEUPDATEFalse
DUHAMELDULACT_CHAMBRECHB_NUMEROINSERTFalse
DUHAMELDULACT_CHAMBRECHB_ETAGEINSERTFals
DUHAMELDULACT_CHAMBRECHB_BAININSERTFalse
DUHAMELDULACT_CHAMBRECHB_DOUCHEINSERTFalse
DUHAMELDULACT_CHAMBRECHB_WCINSERTFalse
DUHAMELDULACV_CHAMBRE<TABLE>SELECTFalse
Sivousavezsuivilalettretouslesexemplesd'octroideprivilgesjusqu'l'exemple13,alorslarequteciavantdonneralersultatci
dessus...
5.Critiquesdiverses
Pouraussisimplequ'ilsoit,cesystmequirevlequelquespigesestassezcompletmaisinsatisfaisant.
Voyonsquelsensontleslimites...
5.1.Pasdeprivilgessimultanssurplusieursobjets
Ainsiiln'estpaspossibleded'octroyerdesprivilgesplusieursobjetsimultanment:
Exemple24
Slectionnez
GRANTINSERT,DELETE
ONTABLET_CHAMBRE,T_CLIENT,T_PLANNING
FORDUVAL,DUBOIS
Untelordreestsyntaxiquementincorrectdufaitdelaprsencedeplusieurstables...
Laconsquenceestquelagestionfinedesdroitsde5utilisateurssurunebasededonnescomportantunecentainedetablesetraduitenau
moinsunecentainesd'ordrespasser...
http://sqlpro.developpez.com/cours/sqlaz/dcl/
8/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
5.2.Pasdeprivilges"ngatif"
Iln'estpaspossibled'appliquerunprivilgededniementunobjet.Celan'estpasdfinitparlanormeSQL.
Exemple25
Slectionnez
DENYDELETE
TODUVAL,DUBOIS
N'existepasenSQL.Ceseraitpourtantbienpratiquedepasserparuntelmcanisme...
NousallonsvoircependantquelanormeSQL:1999(SQL3)proposel'ajoutduconceptdeROLEafindepaliercertainsdecesdfauts.
6.SQL:1999etlesrles
SQL:1999introduitlanotiondeROLEdjprsentedansdenombreusesimplmentationsdeSGBDR.
Lebutdurleestdecollecterdesprivilgessurdesobjetspuisdefairerentrerlesutilisateursdansunrleouunautre.
LadescriptiondesrlesetlesextensionsdesordresGRANTetREVOKEdufaitdel'introductiondenouveauxobjetsdanslesdfinitionsdes
schma(procduresstockes,typesutilisateur,mthodes...)seravudanslespagesspcifiqueslaprsentationdeSQL:1999.
7.Confidentialitdesdonnes
Laconfidentialitd'unSGBDRreposesurquatreniveaux:
fluxdedonnes:lerseauetlestramesquiycirculent
infrence:l'environnementdusystmeinformatique(OS)sesfichiers,sesutilisateurs,sesprogrammes
cryptage:quelcodageettransformationsubissentlesdonnesoulesfichierscontenantlesdonnes
controled'accs:commentl'accsauSGBDRestilgr(parSQLavecGRANTetREVOKE)
Fairel'impassesurlecontrled'accsensupposantquelaconfidentialitestassureparunebonnegestiondesutilisateurs"systme"est
ullisoire.Lesexemplesdramatiquesdepollutiondebasesdedonnesavecdesvirusparcequelestechniciensn'ontpasvouluprotgerne
seraitcequelaconnexionauserveurparunsimplemotdepassesontlgion!
D'autantquesouventlesdveloppeursetchefdeprojetfontunamalgameentregestiondesdroitsauniveaudelabasededonnesetgestion
desdroitsauniveauapplicatif.Enoutrel'arrived'Internetobligl'introductiond'utilisateurs"anonymes".
ToutcelaafavorisunenongestiondesdroitsetprivilgesquiafaitmontaupiloricertainsSGBDRmalpenssoumalutiliss.
Laconclusionestsimple:ilfautgrerlesdroitstouslestagesdelapyramide.Aumoinsdemaniresimpliste.
Livres
SQLdveloppement
SQLlecoursderfrencesurlelangageSQL
Avantd'aborderleSQL
Dfinitions
SGBDRfichierouclient/serveur?
Labasededonnesexemple(gestiond'unhtel)
ModlisationMERISE
MotsrservsduSQL
LeSQLdeAZ
Lesfondements
Lesimple(?)SELECT
Lesjointures,oucommentinterrogerplusieurstables
Groupages,ensemblesetsousensembles
Lessousrequtes
Insrer,modifier,supprimer
Crationdesbases
Grerlesprivilges("droits")
TouteslesfonctionsdeSQL
LestechniquesdesSGBDR
LeserreurlesplusfrquentesenSQL
LespetitspapiersdeSQLPro
ConfrenceBorland2003
L'hritagedesdonnes
Donnesetnormes
Modlisationparmtadonnes
OptimisezvotreSGBDRetvosrequtesSQL
Letemps,samesure,sescalculs
QBE,lelangagedeZLOOF
Desimagesdansmabase
Lajointuremanquante
Clefsautoincrmentes
L'indexationtextuelle
L'artdes"Soundex"
Uneseulecolonne,plusieursdonnes
Ladivisionrelationnelle,mytheouralit?
Gestiond'arborescenceenSQL
L'avenirdeSQL
Mthodesetstandards
http://sqlpro.developpez.com/cours/sqlaz/dcl/
9/10
16/2/2015
LeSQLdeAZlagestiondesprivilges
Lesdoublons
SQLServer
Eviterlescurseurs
UnaperudeTRANSACTSQLV2000
SQLServer2000etlescollations
ScurisationdesaccsauxbasesdedonnesSQLServer
DesUDFpourSQLServer
SQLServeretlefichierdelog...
Paradox
Devieuxarticlespublisentre1995et1999dansladfunterevuePointDBF
Copyright2003FrdricBrouard.Aucunereproduction,mmepartielle,nepeuttrefaitedecesiteetdel'ensembledesoncontenu:textes,documents,images,etc.sansl'autorisationexpresse
del'auteur.Sinonvousencourezselonlaloijusqu'troisansdeprisonetjusqu'300000dedommagesetintrts.
ResponsablebnvoledelarubriqueSGBD&SQL:FrancisWalterContacterparemail
Developpez.com
Nouscontacter
Participez
Informationslgales
Services
ForumSGBD&SQL
Blogs
Hbergement
Partenaires
PlanetHoster
Copyright20002015www.developpez.com
http://sqlpro.developpez.com/cours/sqlaz/dcl/
10/10