Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Datos compartidos y dueños

5 tareas · 38 min · Principiante

La parte más difícil de dividir un monolito no es el código: es la base de datos. Mientras todos los servicios entren a las mismas tablas con el mismo usuario, el servicio dueño de un dato no controla quién lo lee ni quién lo cambia, y la separación es de apariencia. En Tienda Yopo lees quién es dueño de cada tabla, quién puede escribirla y leerla de hecho, y con qué usuarios de base de datos entran los servicios. Todo es lectura de tablas ficticias.

0 de 5 · 0%

Objetivo de la sala

La parte más difícil de dividir un monolito no es el código: es la base de datos. Mientras todos los servicios entren a las mismas tablas con el mismo usuario, el servicio dueño de un dato no controla quién lo lee ni quién lo cambia, y la separación es de apariencia. En Tienda Yopo lees quién es dueño de cada tabla, quién puede escribirla y leerla de hecho, y con qué usuarios de base de datos entran los servicios. Todo es lectura de tablas ficticias.

El principio de una división sana es que cada tabla pertenece a un servicio. Los demás no tocan la tabla: piden los datos por la interfaz del dueño. Así el dueño decide qué expone, valida lo que se escribe y puede cambiar su modelo sin romper a nadie. Con una base compartida, cualquier servicio puede leer o cambiar los datos de otro y la validación del dueño se esquiva.

Responde para continuar

¿Qué principio ordena los datos al dividir un monolito en servicios?

Ver pista de ayuda

Piensa en quién debe poder validar lo que se escribe en una tabla.

Un permiso de lectura de un servicio ajeno es una dependencia; uno de escritura es más grave, porque el dueño pierde el control de la integridad de sus datos. Para encontrarlos se cruzan las dos tablas: la de dueños y la de accesos reales.

Abre datos/duenos-de-tablas.csv y datos/accesos-a-tablas.csv.

Responde para continuar

¿Cuántos permisos de escritura tiene un servicio sobre una tabla de la que no es dueño?

Ver pista de ayuda

Para cada fila con permiso de escritura, compara el servicio con el dueño de la tabla.

Los datos restringidos merecen la mirada más estricta: pocos servicios deberían leerlos, y cada lectura debe tener un motivo. Un servicio de recomendaciones puede necesitar el historial de compras; difícilmente necesita los documentos de identidad de los clientes.

Responde para continuar

Escribe la tabla restringida que lee un servicio que no es su dueño.

Ver pista de ayuda

Busca primero la clasificación restringido y luego quién la lee.

Aunque cada servicio tenga sus propias tablas, si todos entran con el mismo usuario de base de datos, la base no puede distinguirlos: ningún permiso se limita por servicio y ningún registro de acceso dice quién consultó. Separar los usuarios es el primer paso técnico para que los permisos de la tabla anterior dejen de ser teóricos.

Abre datos/usuarios-bd.csv y datos/nota-de-migracion.txt.

Responde para continuar

Escribe el usuario de base de datos que usan más servicios.

Ver pista de ayuda

Cuenta los servicios de cada fila de la segunda columna.

Quitar a un servicio el permiso sobre una tabla ajena sin darle antes otra forma de obtener los datos rompe su funcionamiento. El orden seguro es: el dueño publica una interfaz, el consumidor pasa a usarla, y solo entonces se revoca el permiso directo. Cada paso se puede comprobar con los registros de acceso a la base.

Responde para continuar

Un servicio escribe en una tabla ajena. ¿En qué orden se corrige sin romper nada?

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad