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
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Donnée personnelle | une information qui permet de reconnaître une personne | une adresse mail |
| Minimisation | ne garder que ce dont on a vraiment besoin | |
| Consentement | l'accord libre et clair de la personne | |
| Pseudonymisation | remplacer l'identité par un code, alors que la clé existe encore | |
| Anonymisation | rendre 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
printf '[client]\nssl-verify-server-cert=0\n' > ~/.my.cnfAffiché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
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
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
| Colonne | Personnelle ? | Pourquoi |
|---|---|---|
| first_name, last_name | Oui | Elles nomment la personne |
| Oui | Une adresse mène à une seule personne | |
| phone | Oui | Un numéro appelle une seule personne |
| city | Avec d'autres colonnes | Seule, elle ne désigne personne |
| country | Rarement | Des 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ègle | Ce que ça veut dire | Exemple de la boutique |
|---|---|---|
| But précis | Dire pourquoi on garde la donnée | L'adresse mail sert à envoyer la facture |
| Minimisation | Ne garder que le nécessaire | Pas de date de naissance pour un livre |
| Raison légale | Un accord, un contrat ou une obligation | Le client accepte en s'inscrivant |
| Durée limitée | Effacer quand on n'en a plus besoin | Compte fermé : données effacées |
| Sécurité | Empêcher les accès non voulus | Mot de passe, accès réservés |
| Droits | La personne voit, corrige et efface | Un bouton « supprimer mon compte » |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Compte les clients sans téléphone
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
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
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
| Colonne | Avant | Après | Geste |
|---|---|---|---|
| prenom | Lea | retiré | Suppression |
| [email protected] | le***@example.fr | Masque | |
| telephone | 06 12 34 56 78 | ** ** ** ** 78 | Masque |
| age | 17 | 0-17 | Généralisation |
| ville | Lille | Lille | Gardé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 ?