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

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

Après cette leçon: Je peux dire si une colonne d'une table contient des données personnelles et de quel genre.

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

Une table de clients sans nom : est-elle anonyme ?

Une donnée personnelle est une information qui concerne une personne que l'on peut identifier. La reconnaître est le premier geste de la protection des données : on ne protège bien que ce que l'on sait nommer.

Une boutique en ligne garde des clients dans une table. Retirez les noms : reste-t-il des données personnelles ? Cette leçon vous apprend à répondre.

À la fin de cette leçon

Remarque

Je peux dire si une colonne d'une table contient des données personnelles et de quel genre.

Mots clés

MotCe que ça veut direExemple
Donnée personnelleune information sur une personne que l'on peut identifier
Personne concernéela personne dont parle la donnée
Identifiant directune donnée qui désigne une personne à elle seulecourriel
Identifiant indirectun indice qui ne désigne personne seulville
Recoupementle fait de croiser plusieurs indices pour retrouver quelqu'un
Donnée sensibleune donnée intime dont la fuite peut nuire gravement

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

Une donnée personnelle concerne une personne identifiable

Une donnée est personnelle quand elle se rapporte à une personne que l'on peut reconnaître, seule ou avec d'autres informations. Cette personne est la personne concernée.

La forme importe peu : un texte, un nombre, une date, une photo ou une adresse IP.

Une moyenne des ventes ne concerne personne. Un numéro de client concerne quelqu'un.

Regarder la table des clients du laboratoire

Votre laboratoire contient la base d'une boutique en ligne. Sa table customers décrit quarante clients inventés.

Lancez les deux premiers Runs pour préparer le terminal. Le troisième liste les colonnes de la table, dans l'ordre.

Accepter 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.

Lister les colonnes des clients

Commande
sql "SELECT COLUMN_NAME AS colonne FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'shop' AND TABLE_NAME = 'customers' ORDER BY ORDINAL_POSITION"

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 : classer les colonnes de la table customers

ColonneCe qu'elle contientClassement
first_name, last_nameLe prénom et le nomIdentifiant direct
emailL'adresse de messagerieIdentifiant direct
phoneLe numéro de téléphoneIdentifiant direct
idUn numéro interne à la boutiqueDirect pour qui détient la table
city, countryLe lieu de vieIdentifiant indirect
joined_onLa date d'inscriptionIdentifiant indirect

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

Des indices isolés peuvent identifier quelqu'un ensemble

Une ville ne désigne personne. Un mois d'inscription non plus. Croisés, ils peuvent suffire : c'est le recoupement.

Plus on croise de colonnes, plus les groupes de clients se réduisent. Un groupe d'une seule personne désigne cette personne.

Les deux Runs comptent les clients qui sont seuls de leur groupe. Le premier groupe par ville, le second par ville et mois d'inscription.

Seuls dans leur ville

Commande
sql "SELECT COUNT(*) AS seuls FROM (SELECT 1 FROM customers GROUP BY city HAVING COUNT(*) = 1) AS t"

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.

Seuls dans leur ville et leur mois

Commande
sql "SELECT COUNT(*) AS seuls FROM (SELECT 1 FROM customers GROUP BY city, DATE_FORMAT(joined_on, '%Y-%m') HAVING COUNT(*) = 1) AS t"

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 : plus on croise, plus on identifie

Colonnes croiséesClients seuls de leur groupeSur 40 clients
La ville2Presque personne
La ville et le mois d'inscription30Trois clients sur quatre

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

Une erreur fréquente

Attention

Beaucoup pensent qu'une table sans nom ni courriel ne contient aucune donnée personnelle. C'est faux : une ville et une date suffisent souvent à retrouver quelqu'un. Demandez-vous : peut-on retrouver la personne, seul ou en croisant d'autres données ?

Certaines données sont sensibles

Une donnée sensible révèle un aspect intime : la santé, la religion, les opinions politiques ou l'origine. Sa fuite peut mener à une discrimination ou à une humiliation.

Le droit de la protection des données demande plus de précautions pour elles, et souvent une raison solide pour les collecter.

Un salaire ou une adresse ne sont pas sensibles dans ce sens, mais leur fuite reste grave.

À vous : classer des colonnes en Python

Code: python
# Classer les colonnes d'une table de clients.
colonnes = ["courriel", "ville", "prix_panier", "sante"]
directes = ["nom", "prenom", "courriel", "telephone"]
indirectes = ["ville", "date_naissance"]

for colonne in colonnes:
    if colonne in directes:
        print(colonne, ": identifiant direct")
    elif colonne in indirectes:
        print(colonne, ": identifiant indirect")
    else:
        print(colonne, ": à examiner")

# À vous : ajoutez une liste sensibles = ["sante"] et un cas pour elle.

À 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.