Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Protéger les données personnelles

Après cette leçon: Je peux protéger les données personnelles d'un fichier de clients.

Leçon de 50 min6 commandesLab MySQL et phpMyAdmin avec une base de boutique pour s’exercer en SQL

Qu'est-ce qu'une donnée personnelle ?

Une donnée personnelle est une information qui permet de reconnaître une personne : un nom, une adresse mail, un numéro de téléphone. La protéger est une obligation légale, pas un détail.

Une règle d'abord : tu travailles seulement sur la copie de la boutique du lab, où tous les clients sont inventés. Tu n'ouvres jamais le fichier de vraies personnes sans la permission de son responsable. Cette règle protège ces personnes.

À la fin de cette leçon

Remarque

Je peux protéger les données personnelles d'un fichier de clients.

Mots clés

MotCe que ça veut direExemple
Donnée personnelleune information qui permet de reconnaître une personneune adresse mail
Minimisationne garder que ce dont on a vraiment besoin
Consentementl'accord libre et clair de la personne
Pseudonymisationremplacer l'identité par un code, alors que la clé existe encore
Anonymisationrendre impossible de retrouver la personne

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Avant de commencer

Remarque

Appuie sur Start the lab. Le lab est une base MySQL rien qu'à toi, avec la boutique shop et sa table customers. Les noms et les adresses y sont inventés. Tu lis la table et tu ne changes rien.

Accepte le certificat du serveur

Commande
printf '[client]\nssl-verify-server-cert=0\n' > ~/.my.cnf

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Un nom court pour la boutique

Commande
alias sql='mariadb -h db -u student -pstudent shop -t -e'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une donnée est personnelle si elle désigne quelqu'un

Un nom est une donnée personnelle. Une adresse mail aussi, car elle mène à une personne. Un numéro de téléphone aussi.

Une ville seule ne désigne personne. Mais une ville, un âge et un prénom ensemble peuvent suffire à reconnaître quelqu'un. Regarde la table des clients.

Regarde trois clients inventés

Commande
sql "SELECT id, first_name, email, phone FROM customers ORDER BY id LIMIT 3"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Exemple : les colonnes de la table des clients

ColonnePersonnelle ?Pourquoi
first_name, last_nameOuiElles nomment la personne
emailOuiUne adresse mène à une seule personne
phoneOuiUn numéro appelle une seule personne
cityAvec d'autres colonnesSeule, elle ne désigne personne
countryRarementDes milliers de personnes la partagent

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Six règles pour garder des données personnelles

En Europe, le RGPD est le règlement qui protège les données personnelles. Voici son idée, dans nos mots. Ce n'est pas un conseil juridique.

Celui qui garde des données doit pouvoir répondre à six questions. Pourquoi les garde-t-il ? Lui en faut-il autant ? De quel droit ? Pour combien de temps ? Comment les protège-t-il ? Que peut faire la personne ?

Exemple : les six règles pour une boutique

RègleCe que ça veut direExemple de la boutique
But précisDire pourquoi on garde la donnéeL'adresse mail sert à envoyer la facture
MinimisationNe garder que le nécessairePas de date de naissance pour un livre
Raison légaleUn accord, un contrat ou une obligationLe client accepte en s'inscrivant
Durée limitéeEffacer quand on n'en a plus besoinCompte fermé : données effacées
SécuritéEmpêcher les accès non voulusMot de passe, accès réservés
DroitsLa personne voit, corrige et effaceUn bouton « supprimer mon compte »

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Compte les clients sans téléphone

Commande
sql "SELECT COUNT(*) AS sans_telephone FROM customers WHERE phone IS NULL"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Anonymiser, c'est ne plus pouvoir retrouver la personne

Pour étudier des ventes, on n'a pas besoin des noms. On peut donc anonymiser le fichier. Trois gestes se combinent.

On supprime les identifiants directs, comme le nom. On masque ce qu'on garde, comme une adresse. On généralise : un âge devient une tranche d'âge. Un total par pays ne désigne personne.

Masque les adresses de trois clients

Commande
sql "SELECT id, CONCAT(LEFT(email, 2), '***@', SUBSTRING_INDEX(email, '@', -1)) AS email_masque, country FROM customers ORDER BY id LIMIT 3"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Compte les clients de chaque pays

Commande
sql "SELECT country, COUNT(*) AS nb FROM customers GROUP BY country ORDER BY nb DESC, country"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

Beaucoup croient que remplacer un nom par un numéro rend un fichier anonyme. C'est de la pseudonymisation : la liste qui relie les numéros aux noms existe encore. Pour être anonyme, la personne ne doit plus être retrouvée, même en croisant d'autres colonnes.

Exemple : un client avant et après

ColonneAvantAprèsGeste
prenomLearetiréSuppression
email[email protected]le***@example.frMasque
telephone06 12 34 56 78** ** ** ** 78Masque
age170-17Généralisation
villeLilleLilleGardée

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Pour aller plus loin : le petit groupe

Dans un fichier anonymisé, une seule personne habite une petite ville et a 60 ans ou plus. On la reconnaît quand même.

Comment la dernière fonction du devoir t'aide-t-elle à repérer ce cas ? Que ferais-tu d'un groupe de deux personnes seulement ?

À propos de ce labo et de sa source: Lab MySQL et phpMyAdmin avec une base de boutique pour s’exercer en SQL

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.