Phase 3 : Vues et contrôle d'accès
Durée60 minutesMission
Suite aux événements des phases précédentes, la direction souhaite mettre en place une meilleure organisation de l’accès aux données pour l’équipe du support client. Actuellement, chaque agent doit écrire ses propres requêtes SQL pour consulter les transactions des clients, ce qui est à la fois inefficace et risqué.
Votre mission est de créer une vue adaptée aux besoins du support client et de mettre en place les droits d’accès appropriés.
Énigme 6 : Sécurisation des accès du support client
Commencez par ouvrir le notebook phase_3_Configuration.ipynb.
Objectif 1 : Création d’une vue
Situation : Les agents du support client passent beaucoup de temps à écrire des requêtes complexes pour obtenir une vision complète des transactions d’un client. Ils ont besoin de voir dans une seule vue : les informations du client, le montant total de ses achats, sa dernière transaction et le nombre total de ses transactions.
Les vues permettent de :
- Simplifier l’accès aux données en masquant la complexité des requêtes
- Standardiser la présentation des informations
- Gérer des droits différenciés
Voici un exemple de création de vue :
Cette vue est particulièrement utile pour l’analyse des prix : elle permet de comparer rapidement les prix pratiqués par chaque marchand par rapport au prix catalogue et de calculer leur marge. Elle ne montre que les produits en stock pour faciliter la gestion des approvisionnements.
Pour utiliser cette vue :
Détails
Mission : Créez une vue nommée customer_transaction_summary qui fournira aux agents une vision consolidée des informations client et de leurs transactions. Cette vue devra présenter les données dans un format clair et directement utilisable. Elle devra inclure pour chaque client :
- Les informations de base (
customer_id,name,email) - Le nombre total de transactions
- Le montant total des achats
- La date de la dernière transaction
- Le montant moyen des transactions
Détails
Pour valider cet objectif, exécutez la requête suivante sur votre vue :
Notez le customer_id retourné.
Objectif 2 : Configuration des droits d’accès
Situation : Maintenant que la vue est créée, nous devons nous assurer que les agents du support client y ont accès, tout en restreignant leur accès aux tables sources pour des raisons de sécurité.
Détails
Mission : Créez un rôle support_agent qui aura uniquement accès en lecture à la vue customer_transaction_summary, sans aucun accès direct aux autres tables.
Information
La gestion des droits d’accès permet de :
- Contrôler précisément ce que chaque utilisateur peut voir
- Protéger les données sensibles
- Simplifier l’administration des accès
Voici un exemple de création de rôle avec droits limités :
Et pour tester :
Le notebook actuel phase_3_Configuration.ipynb doit vous connecter à la base de données en tant d’administrateur. Quel est le nom de compte l’administrateur (c’est celui par défaut sous Postgresql) ?
Détails
Créez et configurez le rôle support_agent en :
- Donnant uniquement les droits de lecture sur le schéma
gameet la vuecustomer_transaction_summaryque vous venez de créer. - Vous assurant que l’accès direct aux tables
customers,transactions,transaction_details,merchant_productsetproductsest impossible. - Attribuant le rôle
support_agentàuser_tp.
Pour tester votre configuration utilisez le notebook phase_3_Tests.ipynb qui vous connecte sous le compte utilisateur user_tp.
Détails
Pour valider cet objectif, essayez d’accéder à la table customers avec le rôle support_agent :
Notez le nom de l’erreur retournée (le mot après psycopg2.errors.).
Validez vos réponses
Terminé !
Félicitations ! Vous avez mis en place une vue efficace pour le support client et sécurisé son accès. Cette structure permettra aux agents de travailler plus efficacement tout en maintenant un niveau de sécurité approprié.