¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Derecho de acceso, supresión y brecha de datos

Después de esta lección: Puedo atender la solicitud de una persona y actuar ante una brecha de datos.

Lección de 65 min13 comandosLaboratorio de MySQL y phpMyAdmin con una base de datos de una tienda para practicar SQL

¿Qué haces si pierdes datos de clientes?

Una brecha de datos es un incidente en el que datos personales se pierden, se roban o los ve quien no debe. Cuando ocurre, y cuando una persona pide ver o borrar sus datos, hay que saber qué hacer paso a paso.

Una clienta escribe: ¿qué sabéis de mí? Tienes que reunir todo lo que guardas de ella, en cada tabla.

Al terminar esta lección

Nota

Puedo atender la solicitud de una persona y actuar ante una brecha de datos.

Palabras clave

PalabraQué significa
Solicitud de accesola petición de una persona para ver sus datos
Solicitud de supresiónla petición de una persona para que se borren sus datos
Brecha de datosun incidente que expone datos personales a quien no debe verlos
Contenciónparar que el daño siga creciendo
Notificaciónavisar a las personas afectadas y a quien vigila la protección de datos

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Una solicitud de acceso reúne sus datos

Una persona puede pedir que le enseñes los datos que guardas de ella. Tienes que buscar en todas las tablas, no solo en la de clientes.

Antes de entregar nada, comprueba que quien pide es quien dice ser. Si no, regalas datos a un extraño.

Ejecuta las dos líneas de preparación. Después reúne lo que la tienda guarda de la clienta 7.

Aceptar el certificado del servidor

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

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un nombre corto para la tienda

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

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sus datos de cliente

Comando
sql "SELECT id, first_name, last_name, email, phone, city, country, joined_on FROM customers WHERE id = 7"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sus pedidos

Comando
sql "SELECT id, ordered_at, status FROM orders WHERE customer_id = 7 ORDER BY ordered_at"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lo que había en cada pedido

Comando
sql "SELECT orders.id, products.name, order_items.quantity FROM orders JOIN order_items ON order_items.order_id = orders.id JOIN products ON products.id = order_items.product_id WHERE orders.customer_id = 7 ORDER BY orders.id, products.name"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sus valoraciones

Comando
sql "SELECT product_id, stars FROM reviews WHERE customer_id = 7 ORDER BY product_id"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejemplo resuelto: dónde buscar a una persona

TablaQué guarda de ellaCómo se une
customersNombre, correo, teléfono, ciudadid = 7
ordersFecha y estado de cada pedidocustomer_id = 7
order_itemsLo que compró en cada pedidoPor el id del pedido
reviewsEstrellas y comentarioscustomer_id = 7

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Una solicitud de supresión borra o desliga

Si una persona pide que borres sus datos, quítalos. A veces debes conservar un pedido para las cuentas de la empresa.

Entonces borras lo que la identifica y dejas el pedido sin nombre. El pedido sigue, pero ya no lleva hasta ella.

Ensáyalo sobre una copia de los clientes, en tu propia base.

Un nombre corto, sin elegir base

Comando
alias db='mariadb -h db -u student -pstudent -t -e'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Crear tu propia base

Comando
db "CREATE DATABASE IF NOT EXISTS student_privacy"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Tirar una copia antigua

Comando
db "DROP TABLE IF EXISTS student_privacy.client_copy"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Copiar los clientes

Comando
db "CREATE TABLE student_privacy.client_copy AS SELECT id, first_name, last_name, email, phone FROM shop.customers"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Quitar lo que identifica a la clienta 7

Comando
db "UPDATE student_privacy.client_copy SET first_name = 'borrado', last_name = 'borrado', email = CONCAT('borrado-', id, '@example.invalid'), phone = NULL WHERE id = 7"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ver cómo queda su fila

Comando
db "SELECT * FROM student_privacy.client_copy WHERE id = 7"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ante una brecha, actúa por pasos

Una brecha no es solo un ataque. Enviar un correo a la persona equivocada o perder un portátil sin cifrar también lo son.

Lo primero es parar el daño. Después averigua qué datos y de cuántas personas. Con eso decides a quién avisar.

Ejemplo resuelto: los pasos de una brecha

PasoQué hacesEjemplo
1 ContenerCortas el accesoCambias las claves y cierras el fichero filtrado
2 EvaluarAveriguas qué datos y de quiénCuentas filas y miras si hay datos sensibles
3 AvisarInformas a las personas y a quien vigila la protección de datosLo haces en el plazo que fije la ley
4 CorregirArreglas la causaQuitas el fichero público y pones un permiso
5 AnotarEscribes qué pasó y qué aprendesRegistras el incidente y cambias el proceso

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Evaluar: cuántas personas afecta

Comando
sql "SELECT COUNT(*) AS afectados, COUNT(phone) AS con_telefono FROM customers WHERE country = 'France'"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que una brecha solo ocurre cuando alguien ataca desde fuera. Muchas nacen de un error, un permiso mal puesto o un portátil perdido. Cuenta como brecha todo incidente que expone datos personales, con ataque o sin él.

Pruébalo: los datos de una socia

Código: sql
-- Todo lo que el club guarda de Irene, la socia 1.
SELECT members.name, loans.title, loans.loaned_on
FROM members JOIN loans ON loans.member_id = members.id
WHERE members.id = 1
ORDER BY loans.loaned_on;
-- Cambia el número de socia y ejecútalo otra vez.

Pruébalo: a cuántas personas afecta

Código: sql
-- Una copia del club se ha filtrado. ¿A cuántas personas afecta, por ciudad?
SELECT city, COUNT(*) AS afectadas FROM members
GROUP BY city
ORDER BY city;

Para ir más allá

Escribe la respuesta que enviarías a la clienta 3 con sus datos reunidos. Debe ser clara y no contener los datos de otras personas.

Después redacta el aviso a las personas afectadas por la brecha de los clientes de Francia. Di qué pasó, qué datos hay y qué pueden hacer.

Sobre este laboratorio y su código: Laboratorio de MySQL y phpMyAdmin con una base de datos de una tienda para practicar SQL

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.