DÍA 06Configuración y conexión segura · Python Backend y APIs para Datos

Prepara Sakila local y concede a la API únicamente SELECT sobre el esquema de práctica.

Día 6 20 minIntermedio

Base oficial Sakila de MySQL

Esquema de práctica instalado localmente; las tablas canónicas se consultan sin operaciones de escritura.

Conectar Sakila con una cuenta de solo lectura

Objetivos

Vas a instalar la base de práctica local y dar al servicio únicamente el permiso que necesita para leer las tablas canónicas.

Concepto

Sakila es la base de ejemplo oficial de MySQL. Para este curso se instala en una instancia local; la API se conecta al esquema llamado sakila. El manual oficial describe la descarga del archivo y cómo importar el esquema y los datos.

El principio de mínimo privilegio consiste en dar a una cuenta solo las capacidades necesarias. La cuenta de la API tendrá SELECT sobre sakila.*; no será la cuenta root ni recibirá INSERT, UPDATE, DELETE, CREATE o permisos globales. Ejecuta los comandos administrativos solo en una instancia local de práctica que controles.

Ejemplo

Después de instalar el Sakila oficial, inicia sesión como administrador de tu servidor local en Workbench o en el cliente mysql y ejecuta:

CREATE USER 'sakila_reader'@'127.0.0.1'
  IDENTIFIED BY 'cambia-esta-clave-local';
GRANT SELECT ON sakila.* TO 'sakila_reader'@'127.0.0.1';
SHOW GRANTS FOR 'sakila_reader'@'127.0.0.1';

El texto de contraseña es un marcador: reemplázalo con un secreto propio y guárdalo solo en tu .env. SHOW GRANTS permite revisar que el permiso sea solo SELECT sobre el esquema de práctica. MySQL documenta los privilegios GRANT en su manual oficial.

Usa DB_HOST=127.0.0.1, DB_PORT=3306, DB_NAME=sakila y DB_USER=sakila_reader en la configuración local. El archivo del proyecto no incluye el dump original ni modifica tablas Sakila.

Práctica guiada

  1. Abre la ventana de consulta con una cuenta administrativa solo en tu instancia local.
  2. Crea la cuenta limitada y asigna el permiso de lectura.
  3. Ejecuta SHOW GRANTS y compara el resultado con el objetivo de la lección.

Reto

Revisa los grants de sakila_reader y explica qué permiso debes quitar si aparecen INSERT o UPDATE sobre sakila.*.

Intenta el reto antes de consultar las pistas.

Quiz

1. ¿Qué permiso necesita la API del curso en las tablas canónicas?
2. ¿Dónde debes instalar Sakila para esta práctica?
3. ¿Qué compruebas con SHOW GRANTS?

Comprobación

La cuenta de la API queda separada de la cuenta administrativa. Ya puedes consultar customer por un endpoint sin dejar sin explicar su sesión.

TU PROGRESO

Cargando estado…