Scheda di revisione: Gestion des Privilèges et Contrôle d'Accès

📋 Plan du Cours

  1. Privilèges objet sur tables et vues
  2. Caractéristiques des privilèges objet
  3. Syntaxe GRANT pour privilèges objet
  4. Accorder des privilèges sur colonnes
  5. Mots-clés WITH GRANT OPTION et PUBLIC
  6. Vérifier les privilèges via le dictionnaire
  7. Retirer des privilèges avec REVOKE
  8. Propagation et révocation des privilèges
  9. Graphe d’octroi des privilèges
  10. Révocation en cascade et restriction
  11. Rôle des vues dans le contrôle d’accès
  12. Liens de base de données et accès distant

📖 1. Privilèges objet sur tables et vues

🔑 Notions clés & Définitions

  • Privilège objet : Un privilège objet est un droit qui autorise une action précise sur un objet comme une table, une vue, une séquence ou une procédure.
  • Table : Une table est un objet de base de données sur lequel des privilèges objet peuvent être accordés pour des actions comme SELECT ou UPDATE.
  • Vue : Une vue est un objet dérivé sur lequel on peut accorder des privilèges objet pour contrôler l’accès à des données présentées par la vue.
  • Séquence : Une séquence est un objet sur lequel des privilèges objet peuvent être accordés, notamment pour des actions comme EXECUTE ou INSERT selon le tableau du cours.
  • Procédure : Une procédure est un objet sur lequel des privilèges objet peuvent être accordés, notamment pour l’exécution via EXECUTE.

📝 Points essentiels

  • Les privilèges objet s’appliquent à des actions sur des objets : table, vue, séquence ou procédure.
  • Le tableau du cours liste des actions possibles selon l’objet : ALTER, DELETE, EXECUTE, INDEX, INSERT, REFERENCES, SELECT, UPDATE.
  • SELECT est disponible sur table et vue, et aussi sur les autres objets selon les cases du tableau.
  • UPDATE est disponible sur table et vue, et non sur tous les autres objets selon le tableau.
  • INSERT est disponible sur table et vue selon le tableau, avec des cases spécifiques pour chaque objet.
  • Le cours donne un exemple de limitation de SELECT via une vue à colonnes restreintes.

💡 Astuce mémo

Objet = action ciblée : SELECT/UPDATE sur table ou vue, EXECUTE sur procédure.

📖 2. Caractéristiques des privilèges objet

🔑 Notions clés & Définitions

  • Propriétaire d’un objet : Le propriétaire d’un objet dispose de tous les privilèges sur cet objet, sans besoin d’accord explicite.
  • Privilèges spécifiques : Des privilèges spécifiques sont des droits accordés sur un objet précis, éventuellement limités à certaines colonnes.
  • Variation par objet : La variation par objet signifie que les privilèges disponibles dépendent de l’objet concerné (table, vue, séquence, procédure).
  • Accord de privilèges : L’accord de privilèges est l’opération qui autorise un utilisateur ou un rôle à exercer un privilège objet sur un objet donné.

📝 Points essentiels

  • Les privilèges objet varient d’un objet à l’autre, donc toutes les actions ne sont pas autorisées sur tous les objets.
  • Le propriétaire d’un objet a tous les privilèges sur cet objet.
  • Le propriétaire peut accorder des privilèges spécifiques sur cet objet.
  • Les privilèges peuvent être limités à des colonnes via la clause columns dans la syntaxe GRANT.
  • Les bénéficiaires d’un GRANT peuvent être un utilisateur, un rôle ou PUBLIC.
  • Le cours relie l’idée de contrôle fin à l’usage des vues et des colonnes ciblées.

💡 Astuce mémo

Propriétaire = plein accès ; sinon, accès = privilège + objet (et parfois colonnes).

📖 3. Syntaxe GRANT pour privilèges objet

🔑 Notions clés & Définitions

  • GRANT : GRANT est l’instruction qui accorde un privilège objet à un utilisateur, un rôle ou à PUBLIC.
  • object_priv : object_priv désigne le privilège objet à accorder dans une instruction GRANT.
  • ALL : ALL désigne l’ensemble des privilèges objet pour l’objet visé dans GRANT.
  • columns : columns désigne la ou les colonnes d’une table ou d’une vue sur lesquelles des privilèges sont accordés.
  • WITH GRANT OPTION : WITH GRANT OPTION est une clause qui autorise le bénéficiaire à transmettre le privilège à d’autres utilisateurs ou rôles.

📝 Points essentiels

  • La forme générale du cours est : GRANT object_priv ou ALL sur object, avec éventuellement (columns).
  • Le bénéficiaire est indiqué par {user|role|PUBLIC} dans la syntaxe.
  • PUBLIC accorde le privilège objet à tous les utilisateurs du système.
  • La clause columns s’applique à une table ou une vue pour limiter le privilège à certaines colonnes.
  • WITH GRANT OPTION ne transmet pas forcément tous les privilèges : elle donne le droit de transmettre le privilège accordé.
  • Le cours montre que GRANT select et GRANT update peuvent être ciblés sur des colonnes spécifiques.

💡 Astuce mémo

GRANT = privilège + objet + bénéficiaire, et (columns) + WITH GRANT OPTION si transmission.

📖 4. Accorder des privilèges sur colonnes

🔑 Notions clés & Définitions

  • Colonnes ciblées : Les colonnes ciblées sont des colonnes listées dans GRANT pour limiter l’étendue d’un privilège objet.
  • GRANT SELECT sur colonnes : Un GRANT SELECT sur colonnes est un accord de privilège de lecture limité à certaines colonnes via la clause (columns).
  • GRANT UPDATE sur colonnes : Un GRANT UPDATE sur colonnes est un accord de privilège de mise à jour limité à des colonnes précises via la clause (columns).
  • EMPLOYEES : EMPLOYEES est un exemple de table sur laquelle le cours illustre l’accord de privilèges d’interrogation.
  • DEPARTMENTS : DEPARTMENTS est un exemple de table sur laquelle le cours illustre l’accord de privilèges de mise à jour sur colonnes spécifiques.

📝 Points essentiels

  • Le cours illustre l’accord de privilèges d’interrogation sur la table EMPLOYEES.
  • Le cours illustre l’accord de privilèges de mise à jour sur des colonnes spécifiques.
  • Exemple : GRANT select ON employees TO sue, rich ; le cours indique que l’exécution réussit.
  • Exemple : GRANT update (department_name, location_id) ON departments TO scott, manager ; le cours indique que l’exécution réussit.
  • La clause (department_name, location_id) limite l’UPDATE à ces colonnes uniquement.
  • L’objectif pratique est de réduire la surface d’accès en séparant lecture et modification par colonnes.

💡 Astuce mémo

Colonnes ciblées = parenthèses après le privilège : UPDATE (col1, col2).

📖 5. Mots-clés WITH GRANT OPTION et PUBLIC

🔑 Notions clés & Définitions

  • WITH GRANT OPTION : WITH GRANT OPTION est une clause qui permet au bénéficiaire de transmettre le privilège à d’autres utilisateurs ou rôles.
  • PUBLIC : PUBLIC est un mot-clé qui accorde le privilège objet à tous les utilisateurs du système.
  • Transmission de privilèges : La transmission de privilèges est le mécanisme par lequel un bénéficiaire avec WITH GRANT OPTION peut réaccorder le privilège.
  • GRANT select, insert : GRANT select, insert est un exemple de combinaison de privilèges accordés ensemble dans une instruction GRANT.

📝 Points essentiels

  • Le cours associe WITH GRANT OPTION à l’autorisation de transmettre des privilèges.
  • Le cours associe PUBLIC à l’autorisation de tous les utilisateurs d’interroger une table.
  • Exemple : GRANT select, insert ON departments TO scott WITH GRANT OPTION ; le cours indique que l’exécution réussit.
  • Exemple : GRANT select ON alice.departments TO PUBLIC ; le cours indique que l’exécution réussit.
  • WITH GRANT OPTION concerne le droit de transmettre, pas nécessairement l’ensemble des privilèges système.
  • PUBLIC est utilisé pour un accès large, alors que des utilisateurs/roles permettent un contrôle plus fin.

💡 Astuce mémo

WITH GRANT OPTION = “je peux le donner” ; PUBLIC = “tout le monde”.

📖 6. Vérifier les privilèges via le dictionnaire

🔑 Notions clés & Définitions

  • ROLE_SYS_PRIVS : ROLE_SYS_PRIVS est une vue du dictionnaire qui liste les privilèges système accordés aux rôles.
  • ROLE_TAB_PRIVS : ROLE_TAB_PRIVS est une vue du dictionnaire qui liste les privilèges sur des tables accordés aux rôles.
  • USER_ROLE_PRIVS : USER_ROLE_PRIVS est une vue du dictionnaire qui liste les rôles accessibles à l’utilisateur.
  • USER_TAB_PRIVS_MADE : USER_TAB_PRIVS_MADE est une vue du dictionnaire qui liste les privilèges objet accordés sur les objets de l’utilisateur.
  • USER_COL_PRIVS_RECD : USER_COL_PRIVS_RECD est une vue du dictionnaire qui liste les privilèges objet reçus par l’utilisateur sur des colonnes spécifiques.

📝 Points essentiels

  • Le cours propose des vues du dictionnaire pour vérifier différents niveaux : système, tables, rôles, objets et colonnes.
  • ROLE_SYS_PRIVS sert à vérifier les privilèges système accordés aux rôles.
  • ROLE_TAB_PRIVS sert à vérifier les privilèges sur tables accordés aux rôles.
  • USER_ROLE_PRIVS sert à vérifier les rôles accessibles à l’utilisateur.
  • USER_TAB_PRIVS_MADE sert à vérifier les privilèges objet accordés sur les objets de l’utilisateur.
  • USER_COL_PRIVS_RECD sert à vérifier les privilèges objet reçus sur des colonnes spécifiques.

💡 Astuce mémo

Dictionnaire = où chercher : rôles (ROLE_), accès utilisateur (USER_), colonnes (USER_COL_*).

📖 7. Retirer des privilèges avec REVOKE

🔑 Notions clés & Définitions

  • REVOKE : REVOKE est l’instruction qui retire des privilèges objet précédemment accordés à d’autres utilisateurs.
  • GRANT OPTION FOR : GRANT OPTION FOR est une variante de REVOKE qui retire le droit de transmettre plutôt que le privilège lui-même.
  • CASCADE : CASCADE est un mode de révocation qui étend la révocation aux bénéficiaires ayant reçu le privilège par transmission récursive.
  • RESTRICT : RESTRICT est un mode de révocation qui limite la révocation aux utilisateurs explicitement listés dans FROM.
  • liste d’objets : liste d’objets désigne l’ensemble des objets sur lesquels les privilèges sont révoqués dans REVOKE.

📝 Points essentiels

  • Le cours indique que REVOKE retire des privilèges accordés à d’autres utilisateurs.
  • La forme REVOKE inclut REVOKE [GRANT OPTION FOR] (privilèges|ALL) ON liste d’objets FROM liste d’utilisateurs.
  • CASCADE : la révocation concerne aussi les utilisateurs auxquels les privilèges ont été transmis récursivement.
  • RESTRICT : la révocation ne concerne que les utilisateurs cités dans la clause FROM.
  • GRANT OPTION FOR : ce n’est pas le privilège qui est révoqué, mais le droit de le transmettre.
  • Le cours donne un exemple de révocation de SELECT et INSERT sur DEPARTMENTS pour scott.

💡 Astuce mémo

REVOKE = couper l’accès ; CASCADE = couper aussi les “héritiers” ; RESTRICT = couper seulement la liste FROM.

📖 8. Propagation et révocation des privilèges

🔑 Notions clés & Définitions

  • Propagation : La propagation est l’extension d’un privilège à d’autres utilisateurs via la transmission permise par WITH GRANT OPTION.
  • Révocation en cascade : La révocation en cascade est la suppression des privilèges chez les utilisateurs qui les ont reçus par transmission récursive.
  • WITH GRANT OPTION : WITH GRANT OPTION est la condition qui permet la propagation des privilèges à d’autres utilisateurs ou rôles.
  • Chaîne d’octroi : Une chaîne d’octroi est une suite d’accords successifs où chaque bénéficiaire transmet à un autre.

📝 Points essentiels

  • Le cours décrit une chaîne où A accorde SELECT à B avec WITH GRANT OPTION.
  • Dans cette chaîne, B peut accorder le même privilège à C avec WITH GRANT OPTION.
  • C peut à son tour accorder le privilège à D.
  • Le cours précise que si A retire le privilège à B, les privilèges accordés à C et D sont aussi retirés.
  • La propagation dépend de la présence de WITH GRANT OPTION lors de l’octroi initial.
  • La révocation remonte la chaîne et supprime les droits dérivés.

💡 Astuce mémo

Chaîne : A→B→C→D ; si A coupe B, C et D tombent aussi.

📖 9. Graphe d’octroi des privilèges

🔑 Notions clés & Définitions

  • Graphe d’octroi : Le graphe d’octroi est un schéma qui représente comment les privilèges sont transmis entre utilisateurs.
  • Nœud : Un nœud du graphe représente un utilisateur et porte son nom.
  • Arc : Un arc du graphe représente un octroi de privilège et est étiqueté par le privilège.
  • Octroi de privilège : Un octroi de privilège est une relation du graphe qui relie un utilisateur à un autre pour un privilège donné.
  • WITH GRANT OPTION : WITH GRANT OPTION est indiqué dans l’exemple par un astérisque pour marquer les octrois transmissibles.

📝 Points essentiels

  • Le cours présente le graphe comme un outil pour gérer la propagation et la révocation des privilèges.
  • Chaque nœud correspond à un utilisateur et est étiqueté par son nom.
  • Chaque arc correspond à un octroi de privilège et est étiqueté par ce privilège.
  • L’exemple montre Alice accordant SELECT à odile avec WITH GRANT OPTION.
  • L’exemple montre Alice accordant SELECT à pierre avec WITH GRANT OPTION.
  • L’exemple indique qu’un astérisque marque un octroi avec WITH GRANT OPTION.

💡 Astuce mémo

Graphe = nœuds (personnes) + arcs (privilège) ; * = transmissible.

📖 10. Révocation en cascade et restriction

🔑 Notions clés & Définitions

  • CASCADE : CASCADE est une option de REVOKE qui révoque aussi les privilèges transmis récursivement aux bénéficiaires.
  • RESTRICT : RESTRICT est une option de REVOKE qui limite la révocation aux utilisateurs explicitement listés dans FROM.
  • Clause FROM : La clause FROM indique la liste des utilisateurs concernés directement par la révocation.
  • Révocation récursive : La révocation récursive est l’effet de CASCADE qui suit les transmissions successives.

📝 Points essentiels

  • Le cours distingue deux comportements de REVOKE via {RESTRICT|CASCADE}.
  • Avec CASCADE, la révocation touche les utilisateurs cités dans FROM et ceux ayant reçu récursivement.
  • Avec RESTRICT, la révocation ne touche que les utilisateurs cités dans FROM.
  • La différence clé est l’étendue aux bénéficiaires dérivés.
  • La propagation préalable (via WITH GRANT OPTION) rend la révocation en cascade pertinente.
  • Le cours mentionne explicitement les exemples de révocation avec restriction et révocation en cascade.

💡 Astuce mémo

CASCADE = “et les héritiers” ; RESTRICT = “juste la liste FROM”.

📖 11. Rôle des vues dans le contrôle d’accès

🔑 Notions clés & Définitions

  • Vues : Les vues sont des objets qui permettent de définir précisément quelles parties d’une base sont exposées pour l’octroi de privilèges.
  • Affectation_employe : Affectation_employe est une vue d’exemple qui expose uniquement nom et departement depuis employe.
  • Salaire_employe : Salaire_employe est une vue d’exemple qui expose uniquement nom et salaire depuis employe.
  • Contrôle par colonnes via vues : Le contrôle par colonnes via vues est l’idée d’accorder des privilèges sur une vue pour limiter l’accès aux colonnes qu’elle contient.

📝 Points essentiels

  • Le cours affirme que les vues permettent de restreindre précisément les portions de données sur lesquelles des privilèges sont accordés.
  • Exemple de table : employe(nom, departement, salaire).
  • La vue affectation_employe(nom, departement) sélectionne nom et departement depuis employe.
  • La vue salaire_employe(nom, salaire) sélectionne nom et salaire depuis employe.
  • Le cours montre qu’on peut accorder un privilège d’UPDATE sur la vue salaire_employe à pierre.
  • L’approche permet de séparer l’accès à l’affectation et au salaire via deux vues distinctes.

💡 Astuce mémo

Deux vues = deux “portes” : affectation_employe (département) vs salaire_employe (salaire).

📖 12. Liens de base de données et accès distant

🔑 Notions clés & Définitions

  • Lien de base de données : Un lien de base de données permet à des utilisateurs locaux d’accéder à des données d’une base distante via un nom de service.
  • Nom de service : Un nom de service est un alias permettant d’accéder de façon transparente à la base distante.
  • Using : Using spécifie le nom de service de la base distante lors de la création du lien.
  • Accès distant : L’accès distant est l’utilisation d’instructions SQL qui référencent des objets via le lien, comme emp@HQ_ACME.COM.
  • Impossibilité d’accorder des privilèges distants : L’impossibilité d’accorder des privilèges distants est la contrainte indiquée par le cours : on ne peut pas accorder de privilèges sur des objets distants.

📝 Points essentiels

  • Le cours montre qu’un utilisateur local peut interroger une table distante via une notation du type emp@HQ_ACME.COM.
  • Le lien relie une base locale à une base distante, par exemple HQ_ACME.COM.
  • La création du lien utilise CREATE PUBLIC DATABASE LINK ... USING 'service'.
  • Le mot-clé USING spécifie le nom de service de la base distante.
  • Le cours donne un exemple : CREATE PUBLIC DATABASE LINK hq.acme.com USING 'sales' ; puis SELECT * FROM [email protected].
  • Le cours précise qu’on ne peut pas accorder de privilèges sur des objets distants.

💡 Astuce mémo

emp@DISTANT : tu lis à distance, mais tu ne peux pas GRANT sur l’objet distant.

📊 Tableaux de synthèse

Étendue de REVOKE selon l’option

OptionUtilisateurs touchésEffet sur transmissions
CASCADEFROM + bénéficiaires transmis récursivementRévoque aussi les droits dérivés
RESTRICTUniquement FROMNe touche pas les droits dérivés

⚠️ Pièges & confusions fréquents

  1. Confondre WITH GRANT OPTION avec la révocation : WITH GRANT OPTION autorise la transmission, tandis que REVOKE retire des droits (ou le droit de transmettre).
  2. Croire que PUBLIC limite à un sous-ensemble : PUBLIC vise tous les utilisateurs du système.
  3. Penser que REVOKE supprime toujours le privilège : avec GRANT OPTION FOR, c’est le droit de transmettre qui est retiré.
  4. Oublier que les privilèges varient selon l’objet : toutes les actions du tableau ne s’appliquent pas à toutes les catégories d’objets.
  5. Accorder des privilèges sur des objets distants : le cours indique que ce n’est pas possible.
  6. Mélanger contrôle par vues et contrôle par colonnes : les vues servent à exposer des sous-ensembles, puis on GRANT sur la vue.

✅ Checklist Examen

  1. Savoir définir un privilège objet et identifier sur quels objets il s’applique (table, vue, séquence, procédure).
  2. Savoir interpréter le tableau des actions disponibles par type d’objet (ALTER, DELETE, EXECUTE, INDEX, INSERT, REFERENCES, SELECT, UPDATE).
  3. Connaître les caractéristiques : propriétaire = tous les privilèges, privilèges variables selon l’objet, propriétaire peut accorder des privilèges spécifiques.
  4. Maîtriser la syntaxe GRANT : object_priv ou ALL, ON object, bénéficiaire {user|role|PUBLIC}, et option (columns).
  5. Savoir utiliser WITH GRANT OPTION pour permettre la transmission du privilège à d’autres utilisateurs ou rôles.
  6. Savoir utiliser PUBLIC pour accorder un privilège à tous les utilisateurs.
  7. Savoir accorder des privilèges sur colonnes via la clause (columns) et reconnaître l’exemple SELECT sur EMPLOYEES et UPDATE sur DEPARTMENTS.
  8. Savoir distinguer la vérification via le dictionnaire : ROLE_SYS_PRIVS, ROLE_TAB_PRIVS, USER_ROLE_PRIVS, USER_TAB_PRIVS_MADE, USER_TAB_PRIVS_RECD, USER_COL_PRIVS_MADE, USER_COL_PRIVS_RECD, USER_SYS_PRIVS.
  9. Savoir écrire REVOKE : retirer des privilèges, comprendre GRANT OPTION FOR, et choisir {RESTRICT|CASCADE}.
  10. Savoir expliquer la propagation via WITH GRANT OPTION et l’effet d’une révocation sur les bénéficiaires dérivés.
  11. Savoir décrire le graphe d’octroi : nœuds utilisateurs, arcs privilèges, et marquage transmissible par astérisque dans l’exemple.
  12. Savoir expliquer la différence entre révocation en cascade (CASCADE) et restriction (RESTRICT).
  13. Savoir expliquer le rôle des vues dans le contrôle d’accès et reconnaître les vues affectation_employe et salaire_employe avec l’idée de GRANT sur chaque vue.
  14. Savoir décrire les liens de base de données : CREATE PUBLIC DATABASE LINK ... USING ..., notation emp@service, et la contrainte de ne pas pouvoir accorder de privilèges sur des objets distants.

Metti alla prova le tue conoscenze

Metti alla prova le tue conoscenze su Gestion des Privilèges et Contrôle d'Accès con 12 domande a scelta multipla con correzioni dettagliate.

1. Quel énoncé décrit le mieux un privilège objet appliqué à une table ou à une vue ?

2. Quelle caractéristique des privilèges objet est correcte ?

Fai il quiz →

Ripassa con le flashcard

Memorizza i concetti chiave di Gestion des Privilèges et Contrôle d'Accès con 24 flashcard interattive.

Privilège objet — définition ?

Droit d’action spécifique sur une table, vue, séquence ou procédure.

Table — rôle ?

Objet permettant de stocker des données structurées.

Vue — rôle ?

Objet virtuel contrôlant l’accès à des données sélectionnées.

Vedi le flashcard →

Similar courses

Crea le tue schede di revisione

Importa il tuo corso e l'AI genera schede, quiz e flashcard in 30 secondi.

Generatore di schede