le sql de a à z - la gestion des privilèges
DESCRIPTION
Le SQL de A à Z - la gestion des privilèges.pdfTRANSCRIPT
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 1/10
Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter tudes Emploi Club Contacts
SGBD 4D Access BigData DB2 Firebird InterBase MySQL NoSQL PostgreSQL Oracle Sybase SQLServer
AccueilSGBD ForumsSGBD FAQsSGBD TutorielsSGBD SQL OutilsSGBD LivresSGBDetSQL
Lagestiondesprivilges
Onemploietortlemot"droit"pourexpliquer,dansSQL,lesousensembleDCLdit"datacontrollanguage"quis'occupedelagestiondesprivilges.CettepartiedeSQL2s'occupedecontrlerquelutilisateurpeutounepeutpasutiliserteloutelordreSQLsurteloutelobjetetencettematireiln'yapasquedesdroits,maisaussides"usages"!
Articlelu16956fois.
L'auteur
SQLPro
L'article
Publile12novembre2003
Publicvis:dbutant
Lienssociaux
1.Lanotiond'utilisateur
Lanotiond'utilisateurpossdeunelacuneimportantedansSQLcarellefaitl'impassesurlafaondontoncrunutilisateur...
NOTA:SQL2aprvudesrglesd'accsspcifiquespourlesdiffrentesfamillesd'ordreSQL.Ainsipourlacrationd'unschma(unebasededonneenfait)oud'uncatalogue(unensembledebasesdedonnes),illaisselarglel'apprciationdel'diteurduSGBDR.EnrevanchepourlesordresCREATE,ALTERetDROP,l'utilisateurcourantdoittrelemmequel'utilisateurpropritaire(auteur)duschmamodifi.
Rapellonsquelacrationd'unutilisateursefaitaumomentdelacrationduschma.Pardfautcedernierestlecrateurdesobjets.
Souventdanslesimplmentationcommerciales,ontrouveunpseudoordreSQLdugenreCREATEUSERnomUtilisateur,ouencoreuneprocdurestockepermettantdedfinirunnouvelutilisateur.
Ainsi,pourMSSQLServer:
Exemple1
Slectionnez
sp_adduser'nomConnexion','nomNouvelUtilisateur'
Permetd'ajouterunnouvelutilisateuraffectlaconnexiondonne.
LanormeSQL2proposetroisfonctionspourconnatrel'utilisateur(c'estdireceluiquiseconnecteauserveur)etl'auteur,c'estdirelecrateurdesobjets:
SYSTEM_USER nomdeconnexion
SESSION_USER nomducrateur
CURRENT_USER utilisateurcourant
Ainsi,pardfaut,SQLServerutiliselesnomssuivants:
Exemple2
Slectionnez
SELECTSYSTEM_USER,SESSION_USER,CURRENT_USER
Slectionnez
SYSTEM_USERSESSION_USERCURRENT_USERsadbodbo
NotonsenmargelesuperutilisateurSQLPUBLICquiconcernetouslesutilisateurspasssetvenir.
2.Octroyerdesprivilges
Lesprivilgessont,pourunouplusieursutilisateurslapossibilitd'utilisercertainsobjetsetparmicesobjets,certainsordresSQL.
2.1.Lesdiffrentsprivilges
VoiciunelistedesdiffrentsprivilgesqueSQLpermetetlesobjetssurlesquelscesprivilgesportent:
Accueil ALM Java .NET Dv.Web EDI Programmation SGBD Office Solutionsd'entreprise Applications Mobiles Systmes
http://etudes.developpez.com/http://www.viadeo.com/shareit/share/?url=&Title=La+gestion+des+privil%C3%A8geshttp://dotnet.developpez.com/http://mysql.developpez.com/http://www.developpez.com/newsletter/http://alm.developpez.com/http://blog.developpez.com/http://applications.developpez.com/http://big-data.developpez.com/http://projets.developpez.com/http://sybase.developpez.com/http://www.developpez.net/forums/u3170/sqlpro/http://sqlpro.developpez.com/http://mobiles.developpez.com/http://java.developpez.com/http://general.developpez.com/faq/http://club.developpez.com/http://edi.developpez.com/http://www.developpez.net/forums/f4/bases-donnees/http://www.facebook.com/sharer.php?u=http://sgbd.developpez.com/http://magazine.developpez.com/http://access.developpez.com/http://sgbd.developpez.com/faq/http://interbase.developpez.com/https://plus.google.com/share?url=http://sqlpro.developpez.com/CV_FB/CVFB_V_2003.htmlhttp://4d.developpez.com/http://sgbd.developpez.com/http://firebird.developpez.com/http://programmation.developpez.com/http://www.developpez.com/http://sgbd.developpez.com/http://db2.developpez.com/http://web.developpez.com/http://www.facebook.com/pages/SGBDSQL/109541235747940http://sqlserver.developpez.com/http://nosql.developpez.com/http://www.developpez.net/forums/http://sgbd.developpez.com/index/rsshttp://solutions-entreprise.developpez.com/http://systeme.developpez.com/http://sgbd.developpez.com/telecharger/index/categorie/579/Outils-SGBDhttp://sgbd.developpez.com/cours/http://sql.developpez.com/http://sgbd.developpez.com/livres/http://general.developpez.com/cours/http://twitter.com/timeline/home?status=http://office.developpez.com/http://www.developpez.com/http://postgresql.developpez.com/http://oracle.developpez.com/http://club.developpez.com/contacts/http://emploi.developpez.com/http://chat.developpez.com/http://twitter.com/SGBD_SQL_DVP
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 2/10
USAGE domaine,jeudecaractres,collation,translation
SELECT,INSERT,UPDATE,REFERENCES nomducrateur
CURRENT_USER table,vue,colonne(s)
Notonsqu'iln'estpaspossiblededfinirdesdroitssurlacration,lamodificationoulasuppressiondeslmentsdeschema(basededonnes),cecitantdfinitlorsdelacrationduschema.
2.2.Attributiondeprivilges
C'estl'ordreSQLGRANTquipermetd'attribuerunprivilgediffrentsutilisateurssurdiffrentsobjets.
Voicilasyntaxedel'ordreSQLGRANT:
Slectionnez
GRANTTO[{,}...][WITHGRANTOPTION]
Slectionnez
::=[{,}...]
Slectionnez
::=ALLPRIVILEGESON||
Slectionnez
::=USAGEON::=DOMAIN|COLLATION|CHARACTERSET|TRANSLATION
Slectionnez
::=
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 3/10
PUBLIC|
LaclauseWITHGRANTOPTION,estutilisepourautoriserlatransmissiondesdroits.LaclauseALLPRIVILEGESn'ad'intrtquedanslecadredelatransmissiondesdroits.
Voicimaintenantunebatteried'exemplesafindemieuxcomprendrecommentutilisercetordre...Pournosexemples,nousavonsconsidrquelesutilisateursDUPONT,DURAND,DUBOIS,DUVAL,DULACetDUFOURtaitcrdanslabasededonnes.Celuiquilancelesordres(saufindicationcontraire)estl'utilisateurDUHAMEL.
Exemple3
Slectionnez
GRANTSELECTONT_CHAMBRETODUBOIS
AutoriseDUBOISlancerdesordresSQLSELECTsurlatableT_CHAMBRE.Notezl'absencedumotTABLE.
Exemple4
Slectionnez
GRANTINSERT,UPDATE,DELETEONTABLET_CHAMBRETODUVAL,DUBOIS
AutoriseDUVALetDUBOISmodifierlesdonnespartouslesordresSQLdemisejour(INSERT,UPDATE,DELETE)maispasleslire!
Exemple5
Slectionnez
GRANTSELECTONTABLET_CMAMBRETODUFOURWITHGRANTOPTION
AutoriseDUFOURlancerdesordresSQLSELECTsurlatableT_CHAMBREmaisaussitransmettretoutautreutilisateurlesdroitsqu'ilaacquisdanscetordre.
Exemple6
Slectionnez
GRANTSELECT,INSERT,DELETEONTABLET_CHAMBRETODURANDWITHGRANTOPTION
AutoriseDURANDlancerdesordresSQLSELECT,INSERT,DELETEsurlatableT_CHAMBRE.
Exemple7
Slectionnez
GRANTSELECT,UPDATEONTABLET_CHAMBRETOPUBLIC
AutorisetouslesutilisateursprsentetvenirlancerdesordresSQLSELECTetUPDATEsurlatableT_CHAMBRE.
Exemple8:DURANDlancel'ordresuivant:
Slectionnez
GRANTALLPRIVILEGESONTABLET_CHAMBRETODUBOIS
CequiautoriseDUBOISlancersurlatableT_CHAMBRE,lesmmesordresSQL,queceuxautorisDURAND(SELECT,INSERT,DELETE).
Onparlealorsd'hritagededroitsc'estdirequel'utilisateurdotsdecesdroitspeutnouveaulescderunouplusieursautresutilisateurs.
Exemple9:DURANDlancel'ordresuivant:
Slectionnez
GRANTUPDATEONTABLET_CHAMBRETODUBOIS
Cetordrevaprovoquuneerreur,carDURANDn'estpasautorislancerdesordresUPDATEsurlatableT_CHAMBREetnepeutdonctransmettreundroitqu'iln'apas!
2.3.Gestionfinedesprivilges
Estilpossibledegrerdesprivilgesplusfinsquesurl'intgralitdelatableoudevue?Enparticulier,peutongrerdesprivilgesauniveaudecertainescolonnesd'unetable?
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 4/10
LarponseestOUI,maisilfaututiliserunpeud'astuce...
2.3.1.PrivilgesINSERTetUPDATEsurcolonne
Onpeutemployerl'ordreGRANTpourcefaire:
Exemple10
Slectionnez
GRANTUPDATE(CHB_POSTE_TEL,CHB_COUCHAGE)ONTABLET_CHAMBRETODULAC
CetordrepermetDULACdemodifieruniquementlescolonnes"postetlphonique"et"nombredeplacedecouchage"delatableT_CHAMBRE.
Pluscurieux,onpeutdfinirlescolonnesutilisablespourunordred'insertionpourunutilisateur:
Exemple11
Slectionnez
GRANTINSERT(CHB_NUMERO,CHB_ETAGE,CHB_BAIN,CHB_DOUCHE,CHB_WC)ONTABLET_CHAMBRETODULAC
CetordrepermetDULACd'insrerunenouvellelignedanslatable,uniquementenspcifiantlescolonneslistes.Leproblmeestquedanscettelistenefigurepaslacolonneclef...Autrementdit,DULACnepourrajamaisrieninsrerdutout,saufsilaclefestcalculeparundclencheuravantinsertion.
NOTA:danslecasdel'attributiondeprivilgesd'insertionsurcolonne,ilestindispensabledefairefigurertouteslescolonnesNOTNULLn'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_CHAMBRETODULAC
Cetordren'estpaslgalauniveaudeSQL.
MaisunordreGRANTpeutportersurunevue!Nousvoiladoncsauv:crerunevuepourgrerlesprivilgesdeslectiondel'utilisateurDULAC..
Exemple13
Slectionnez
CREATEVIEWV_CHAMBREASSELECTCHB_NUMERO,CHB_ETAGE,CHB_BAIN,CHB_DOUCHE,CHB_WCFROMT_CHAMBRE
Slectionnez
GRANTSELECTONV_CHAMBRETODULAC
Etletourestjou!
2.4.Particularitdesprivilgesd'usage
Maisquelestdoncl'intrtdegrerdesprivilgessurdesdomaines,descollations,destranslations,oudesjeuxdecaractres?
NOTA:pourleslecteursquineseraientpasfamiliarissaveccesobjetsd'unebasededonnes,voicilesrfrences.Pourlesdomaines:
leSQLdeAZ,1erepartie,6.6lesdomainesleSQLdeAZ,7emepartie,5.4Dfinirdesdomaines
Pourlesjeuxdecaractres,collationsettranslations,lire:
leSQLdeAZ,7emepartie,4Unequestiondecaractres
Pourcomprendrel'intrtdesprivilgesd'usageintressonsnousaudomaineenrapellantqueledomaineestconstitud'untypededonnesassortiesd'autantderglesquel'onveut(contraintes)etmmeaucunesionledsire.Enoutre,ledomaineestutilisenremplacementd'untypededonneSQLbasique,partoutoonenabesoin,dansladfinitiondestables,commesdansl'utilisationdelafonctionCASTparexemple.Voicilacrationd'undomainepermettantdespcifierunpourcentage:
Exemple14
http://sqlpro.developpez.com/cours/sqlaz/fondements/#L6.6http://sqlpro.developpez.com/cours/sqlaz/ddl/#L4http://sqlpro.developpez.com/cours/sqlaz/ddl/#L5.4
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 5/10
Slectionnez
CREATEDOMAINDMN_POURCENTFLOATCHECK(VALUEBETWEEN0AND100)
Leproblmersidedanslefaitqu'unevuepeutavoirtcreavecuntranstypagededomaine...
Exemple15
Slectionnez
SELECTCHB_ID,CHB_COUCHAGE,CAST(100*(CHB_COUCHAGE/(SELECTSUM(CHB_COUCHAGE)FROMT_CHAMBRE))ASDMN_POURCENT)ASPOURCENT_OCCUPATIONFROMT_CHAMBRE
Danscecasquevatilsepasserlorsdelasuppressiondudomaine?
SilasuppressiondudomainesefaitaveclaclauseRESTRICT,lefaitquecettevueutiliseuntranstypageprovoquerauneerreuretinterdiralasuppressioneffectivedudomaine.
Silasuppressiondudomainesefaitl'aidedelaclauseCASCADE,alorslavueestsupprime!
C'estpourquoionauratoutintrtintroduiredesprivilgesd'usagepourlesdomaines,collations,translationsetjeuxdecaractresmaisdefaonparcimonieusescertainsutilisateurscapablesd'instancierdesvuesparexemple.Celapermettradelimiterlesdgats...
Bienentenducequisepassedansnotreexempleaveclesdomainesestsimilaireacequipeutsepasseraveclescollations,translationsetjeuxdecaractres.
2.5.Privilgesderfrence
Lorsquel'oncredestablesenliaisonslesunesauxautres,onutilisetrssouventlemcanismed'intgritrfrentielafindegrerlesclefstrangres.
Voyonscequisepassesi,dansnotrebaseexemple,nousattribuonslesdroitsainsi:
Exemple16
Slectionnez
GRANTSELECT,INSERT,UPDATE,DELETEONTABLET_CHAMBRETODUMONT
Slectionnez
GRANTSELECT,INSERT,UPDATE,DELETEONTABLET_PLANNINGTODUMONT
Slectionnez
GRANTSELECT,INSERT,UPDATE,DELETEONTABLETJ_CHB_PLN_CLITODUMONT
Dumontpourraslectionneretsupprimersansproblmesdanstouteslestables.IlpourramettrejourlesdonnesetinsrersansaucunproblmedansleslestablesT_CHAMBREetT_PLANNING.EnrevancheilseheurteraparfoisunrefusdelabasededonnespourlamisejourdelatabledejointureTJ_CHB_PLN_CLI.Pire,illuiseraimpossibled'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'aaucunprivilgesurlatableT_CLIENT.Illuiseradoncimpossiblelorsdel'insertion,commelorsdelamisejourdeprciserunevaleurpourcettecolonnesansqu'ilsevoitautomatiquementinfligunrefusduserveur.
Ordonc,pourpouvoirdfinirunevaleurpourlacolonneCLI_IDlorsdel'excutiondesordresUPDATEetINSERT,notreutilisateurDUMONT,doitavoirunprivilgesupplmentairedfinitcommesuit:
Exemple17
http://sqlpro.developpez.com/cours/bddexemple/
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 6/10
Slectionnez
GRANTREFERENCES(CLI_ID)ONTABLET_CLIENTTODUMONT
NOTA:leprivilgederfrenceneportepasexclusivementsurlescontraintesd'intgritmaissurtoutecontraintefaisantrfrenceunecolonned'unetableexterne.
3.Rvocationdesprivilges
L'ordreSQLREVOKEpermetdervoquer,c'estdire"retirer"unprivilge.Sasyntaxeestlasuivante:
Slectionnez
REVOKE[GRANTOPTIONFOR]FROM[{,}...][RESTRICT|CASCADE]
Slectionnez
::=[{,}...]
Slectionnez
::=ALLPRIVILEGESON||
Slectionnez
::=USAGEON::=DOMAIN|COLLATION|CHARACTERSET|TRANSLATION
Slectionnez
::=PUBLIC|
Lagrandediffrencersideenfaitdansl'usagedesmotsclefsRESTRICTetCASCADE.EncasdeRESTRICT,sileoulesutilisateursvissontcdsleursdroitsd'autres,unmessaged'erreurapparatraetleSGBDRrefuseradervoquerleoulesdroits.Enrevanchel'usagedumotclefCASCADEentraineralarvocationdesdroitscdslamanired'unchateaudecarte.
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 7/10
Anoterquel'utilisationdel'expressionGRANTOPTIONFORnervokepaslesdroitsmaissupprimelapossibilitdecessiondesdroitslorsquecesdroitsonttdfinisenutilisantlaclauseWITHGRANTOPTION.
3.1.QuelquesexemplessimplesExemple18
Slectionnez
REVOKESELECTONT_CHAMBREFROMDUBOIS
SupprimeleprivilgedeselectiondelatableT_CHAMBREattribuDUBOISdansl'exemple1.
Exemple19
Slectionnez
REVOKEINSERT,DELETEONTABLET_CHAMBREFROMDUVAL,DUBOIS
Supprimelesprivilgesd'insertionetdesuppressiondelatableT_CHAMBREattribuDUVALetDUBOISdansl'exemple2,maispasceluidemisejour(UPDATE).
Exemple20
Slectionnez
REVOKEGRANTOPTIONFORSELECTONTABLET_CMAMBREFROMDUFOUR
SupprimelapossibilitpourDUFOURdetransmettreleprivilgedeslectionsurlatableT_CHAMBRE.
3.2.Problmatiquedervocation
Ilexistecependantquelquespigesdansl'utilisationdumcanismedervocation.Nousallonsenmontrerquelquesunsl'aidedediffrentsexemples.Rapellonssimplementqueceluiquilancelesordres(saufindicationcontraire)estl'utilisateurDUHAMEL.
Contrairementauxdroits"systmes"lesprivilgessontcumulatifs.Onpeutainsiobtenirplusieursfoislemmeprivilgesurlemmeobjetenprovenancedediffrentsutilisateurs.Leprivilgeseratotalementretirlorsquetouslesutilisateursayantdonnceprivilgel'aurontretir.
Exemple21
Slectionnez
GRANTSELECTONT_CLIENTTODUCROSWITHGRANTOPTION
Slectionnez
GRANTSELECTONT_CLIENTTODUGLAND
C'estmaintenantDUCROSquiestl'utilisateurquivalancerl'ordresuivant:
Slectionnez
GRANTSELECTONT_CLIENTTODUGLAND
Enfin,DUHAMELreprendlamainpourrvoquerainsi:
Slectionnez
REVOKESELECTONT_CLIENTFROMDUGLAND
DUGLANDpeutilslectionnerdeslignesdelatableT_CLIENT?LarponseestOUI,parcequ'ilpossdeencoreundroitdeslectionvenantdeDUCROS!
Voiciuneautreproblmatique.LesuperutilisateurPUBLICnevisepersonneenparticulierniengnral.Onnepeutdoncretirerunprivilgeparticulierunutilisateurdonnmmesil'onaattribudesprivilges"PUBLIC".
Exemple22
Slectionnez
GRANTSELECTONT_CLIENTTOPUBLIC
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 8/10
Slectionnez
REVOKEINSERT,DELETEONT_CLIENTFROMDUMOULIN
CedernierordreSQLvaretournerunmessaged'erreuretneserapasexcutparcequeDUMOULINn'ajamaisreulesprivilgesINSERTetDELETEsurlatableCLIENT,bienqu'ilhritedesprivilgesdePUBLIC!
EnfaitilfautcomprendrequelemodledegestiondesprivilgesdansSQLreposesurlathoriedesgraphesetpeutdevenirvitecompliqulorsquel'onveutgrerfinementdemultiplesdroits.
4.Retrouverlesprivilges
Lesvuesd'informationdeschemapermettentderetrouverlesprivilges,lesobjetsetlesutilisateurviss(originairesetdestinataires).PourcelalanormeSQL2prvue3vuesspcifiques:
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,''ASCOLUMN_NAME,PRIVILEGE_TYPE,IS_GRANTABLEFROMINFORMATION_SCHEMA.TABLE_PRIVILEGESWHEREGRANTEEIN('DUBOIS','DUVAL','DULAC')UNIONSELECTGRANTOR,GRANTEE,TABLE_NAME,COLUMN_NAME,PRIVILEGE_TYPE,IS_GRANTABLEFROMINFORMATION_SCHEMA.COLUMN_PRIVILEGESWHEREGRANTEEIN('DUBOIS','DULAC','DUVAL)ORDERBYGRANTEE,TABLE_NAME,PRIVILEGE_TYPE,COLUMN_NAME
Slectionnez
GRANTORGRANTEETABLE_NAMECOLUMN_NAMEPRIVILEGE_TYPEIS_GRANTABLEDUHAMELDUBOIST_CHAMBRESELECTFalseDUHAMELDUBOIST_CHAMBREINSERTFalseDUHAMELDUBOIST_CHAMBREUPDATEFalseDUHAMELDUBOIST_CHAMBREDELETEFalseDUHAMELDUVALT_CHAMBREINSERTFalseDUHAMELDUVALT_CHAMBREUPDATEFalseDUHAMELDUVALT_CHAMBREDELETEFalseDURANDDUBOIST_CHAMBRESELECTFalseDURANDDUBOIST_CHAMBREINSERTFalseDURANDDUBOIST_CHAMBREUPDATEFalseDURANDDUBOIST_CHAMBREDELETEFalseDUHAMELDULACT_CHAMBRECHB_POSTE_TELUPDATEFalseDUHAMELDULACT_CHAMBRECHB_COUCHAGEUPDATEFalseDUHAMELDULACT_CHAMBRECHB_NUMEROINSERTFalseDUHAMELDULACT_CHAMBRECHB_ETAGEINSERTFalsDUHAMELDULACT_CHAMBRECHB_BAININSERTFalseDUHAMELDULACT_CHAMBRECHB_DOUCHEINSERTFalseDUHAMELDULACT_CHAMBRECHB_WCINSERTFalseDUHAMELDULACV_CHAMBRESELECTFalse
Sivousavezsuivilalettretouslesexemplesd'octroideprivilgesjusqu'l'exemple13,alorslarequteciavantdonneralersultatcidessus...
5.Critiquesdiverses
Pouraussisimplequ'ilsoit,cesystmequirevlequelquespigesestassezcompletmaisinsatisfaisant.Voyonsquelsensontleslimites...
5.1.Pasdeprivilgessimultanssurplusieursobjets
Ainsiiln'estpaspossibleded'octroyerdesprivilgesplusieursobjetsimultanment:
Exemple24
Slectionnez
GRANTINSERT,DELETEONTABLET_CHAMBRE,T_CLIENT,T_PLANNINGFORDUVAL,DUBOIS
Untelordreestsyntaxiquementincorrectdufaitdelaprsencedeplusieurstables...Laconsquenceestquelagestionfinedesdroitsde5utilisateurssurunebasededonnescomportantunecentainedetablesetraduitenaumoinsunecentainesd'ordrespasser...
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 9/10
5.2.Pasdeprivilges"ngatif"
Iln'estpaspossibled'appliquerunprivilgededniementunobjet.Celan'estpasdfinitparlanormeSQL.
Exemple25
Slectionnez
DENYDELETETODUVAL,DUBOIS
N'existepasenSQL.Ceseraitpourtantbienpratiquedepasserparuntelmcanisme...
NousallonsvoircependantquelanormeSQL:1999(SQL3)proposel'ajoutduconceptdeROLEafindepaliercertainsdecesdfauts.
6.SQL:1999etlesrles
SQL:1999introduitlanotiondeROLEdjprsentedansdenombreusesimplmentationsdeSGBDR.
Lebutdurleestdecollecterdesprivilgessurdesobjetspuisdefairerentrerlesutilisateursdansunrleouunautre.
LadescriptiondesrlesetlesextensionsdesordresGRANTetREVOKEdufaitdel'introductiondenouveauxobjetsdanslesdfinitionsdesschma(procduresstockes,typesutilisateur,mthodes...)seravudanslespagesspcifiqueslaprsentationdeSQL:1999.
7.Confidentialitdesdonnes
Laconfidentialitd'unSGBDRreposesurquatreniveaux:
fluxdedonnes:lerseauetlestramesquiycirculentinfrence:l'environnementdusystmeinformatique(OS)sesfichiers,sesutilisateurs,sesprogrammescryptage:quelcodageettransformationsubissentlesdonnesoulesfichierscontenantlesdonnescontroled'accs:commentl'accsauSGBDRestilgr(parSQLavecGRANTetREVOKE)
Fairel'impassesurlecontrled'accsensupposantquelaconfidentialitestassureparunebonnegestiondesutilisateurs"systme"estullisoire.Lesexemplesdramatiquesdepollutiondebasesdedonnesavecdesvirusparcequelestechniciensn'ontpasvouluprotgerneseraitcequelaconnexionauserveurparunsimplemotdepassesontlgion!
D'autantquesouventlesdveloppeursetchefdeprojetfontunamalgameentregestiondesdroitsauniveaudelabasededonnesetgestiondesdroitsauniveauapplicatif.Enoutrel'arrived'Internetobligl'introductiond'utilisateurs"anonymes".
ToutcelaafavorisunenongestiondesdroitsetprivilgesquiafaitmontaupiloricertainsSGBDRmalpenssoumalutiliss.
Laconclusionestsimple:ilfautgrerlesdroitstouslestagesdelapyramide.Aumoinsdemaniresimpliste.
LivresSQLdveloppementSQLlecoursderfrencesurlelangageSQLAvantd'aborderleSQLDfinitionsSGBDRfichierouclient/serveur?Labasededonnesexemple(gestiond'unhtel)ModlisationMERISEMotsrservsduSQLLeSQLdeAZLesfondementsLesimple(?)SELECTLesjointures,oucommentinterrogerplusieurstablesGroupages,ensemblesetsousensemblesLessousrequtesInsrer,modifier,supprimerCrationdesbasesGrerlesprivilges("droits")TouteslesfonctionsdeSQLLestechniquesdesSGBDR
LeserreurlesplusfrquentesenSQLLespetitspapiersdeSQLPro
ConfrenceBorland2003L'hritagedesdonnesDonnesetnormesModlisationparmtadonnesOptimisezvotreSGBDRetvosrequtesSQLLetemps,samesure,sescalculsQBE,lelangagedeZLOOFDesimagesdansmabaseLajointuremanquanteClefsautoincrmentesL'indexationtextuelleL'artdes"Soundex"Uneseulecolonne,plusieursdonnesLadivisionrelationnelle,mytheouralit?Gestiond'arborescenceenSQLL'avenirdeSQLMthodesetstandards
http://sqlpro.developpez.com/cours/standards/http://sqlpro.developpez.com/cours/sqlaz/erreurs/http://sqlpro.developpez.com/cours/sqlaz/ddl/http://sqlpro.developpez.com/cours/arborescence/http://sqlpro.developpez.com/cours/jointuremanquante/http://sqlpro.developpez.com/cours/sgbdr/http://sqlpro.developpez.com/cours/divrelationnelle/http://sqlpro.developpez.com/cours/sqlaz/dcl/http://sqlpro.developpez.com/cours/stockerimages/http://sqlpro.developpez.com/cours/definitions/http://sqlpro.developpez.com/cours/avenirsql/http://sqlpro.developpez.com/cours/sqlaz/fonctions/http://sqlpro.developpez.com/cours/qbehttp://sqlpro.developpez.com/cours/modelisation/merise/http://sqlpro.developpez.com/cours/sqlaz/select/http://sqlpro.developpez.com/cours/indextextuelle/http://sqlpro.developpez.com/cours/bddexemple/http://sqlpro.developpez.com/cours/soundex/http://sqlpro.developpez.com/cours/modelisation/metadonnees/http://sqlpro.developpez.com/cours/optimiser/http://sqlpro.developpez.com/cours/modelisation/heritage/http://sqlpro.developpez.com/cours/clefs/http://sqlpro.developpez.com/cours/motsreserves/http://sqlpro.developpez.com/booksql05/http://sqlpro.developpez.com/cours/sqlaz/techniques/http://sqlpro.developpez.com/cours/sqlaz/fondements/http://sqlpro.developpez.com/cours/sqlaz/ensembles/http://sqlpro.developpez.com/cours/borcon2003/http://sqlpro.developpez.com/cours/sqlaz/dml/http://sqlpro.developpez.com/cours/normes/http://sqlpro.developpez.com/cours/sqlaz/jointures/http://sqlpro.developpez.com/cours/stockageopt/http://sqlpro.developpez.com/booksql/http://sqlpro.developpez.com/cours/sqlaz/sousrequetes/http://sqlpro.developpez.com/cours/gestiontemps/
-
16/2/2015 LeSQLdeAZlagestiondesprivilges
http://sqlpro.developpez.com/cours/sqlaz/dcl/ 10/10
Developpez.comNouscontacterParticipezInformationslgales
ServicesForumSGBD&SQLBlogsHbergement
PartenairesPlanetHoster
LesdoublonsSQLServerEviterlescurseursUnaperudeTRANSACTSQLV2000SQLServer2000etlescollationsScurisationdesaccsauxbasesdedonnesSQLServerDesUDFpourSQLServerSQLServeretlefichierdelog...ParadoxDevieuxarticlespublisentre1995et1999dansladfunterevuePointDBF
Copyright2003FrdricBrouard.Aucunereproduction,mmepartielle,nepeuttrefaitedecesiteetdel'ensembledesoncontenu:textes,documents,images,etc.sansl'autorisationexpressedel'auteur.Sinonvousencourezselonlaloijusqu'troisansdeprisonetjusqu'300000dedommagesetintrts.
ResponsablebnvoledelarubriqueSGBD&SQL:FrancisWalterContacterparemail
Copyright20002015www.developpez.com
mailto:[email protected]://www.developpez.com/redirect/1058http://sqlpro.developpez.com/Paradox/ParadoxCookBook.htmlhttp://sqlpro.developpez.com/cours/sqlserver/log/http://www.developpez.com/participez/http://blog.developpez.com/http://www.developpez.com/legal/http://sqlpro.developpez.com/cours/sqlserver/udf/http://club.developpez.com/contacts/http://sqlpro.developpez.com/cours/doublons/http://sqlpro.developpez.com/cours/sqlserver/securisation/http://sqlpro.developpez.com/cours/sqlserver/collations/http://sqlpro.developpez.com/cours/sqlserver/MSSQLServer_avoidCursor/http://www.developpez.net/forums/u484506/francis-walter/http://sqlpro.developpez.com/cours/sqlserver/transactsql/http://www.developpez.com/hebergement/http://www.developpez.net/forums/f4/bases-donnees/