"Cada gerente de sucursal solo puede ver los números de su unidad; la dirección ve todo." Es un requisito común — y la primera reacción suele ser "entonces necesitamos la versión de pago". No siempre. Se puede resolver en Metabase open source con arquitectura de datos, y este artículo muestra cómo (y cuándo el OSS realmente no alcanza).
El problema: muchos gestores, un panel, datos que no pueden mezclarse
En una operación multiunidad, el mismo dashboard necesita mostrar realidades diferentes para personas diferentes. Si el gerente de la sucursal de Curitiba abre el panel y ve los números de São Paulo, tienes un problema de confianza — y a veces de contrato.
El enfoque OSS: separa en el dato, no en el filtro
En open source, la segregación sólida ocurre antes del Metabase, en el data warehouse. Cada sucursal se convierte en una conexión aislada — schema propio (o base de datos propia) con únicamente sus datos. El Metabase se conecta a cada una como una fuente separada.
- Un schema por unidad, poblado en la carga con el recorte de esa sucursal.
- Una conexión (Database) en Metabase para cada schema.
- Dashboards replicados por conexión, o uno consolidado solo para quien puede verlo todo.
Grupos y permisos por colección
Con las conexiones separadas, el Metabase amarra personas a datos por grupos y permisos por colección: el grupo "Sucursal Curitiba" solo accede a la conexión y a las colecciones de Curitiba; el grupo "Dirección" accede al consolidado. Es gestión de acceso simple, auditable y nativa del OSS.
Cuándo el OSS no alcanza: data sandboxing
Sé honesto sobre el límite. Si necesitas una única pregunta que filtra las filas automáticamente según quién esté logueado — sin duplicar dashboards ni separar conexiones — eso es data sandboxing, y existe solo en Metabase Pro/Enterprise. Para decenas de sucursales con dashboards idénticos, el sandboxing vale su costo. Para un puñado de unidades cuyos datos ya se pueden separar en la carga, el OSS resuelve de sobra.
Checklist de gobernanza
- ¿El dato sensible está separado antes del Metabase (schema/conexión por unidad)?
- ¿Cada grupo tiene acceso solo a su conexión y a sus colecciones?
- ¿Existe un grupo consolidado, restringido, para la dirección?
- ¿Se revisan los permisos cuando alguien cambia de función?
Preguntas frecuentes
¿Se puede hacer seguridad a nivel de fila en Metabase open source?
Nativamente, no — el filtro automático por fila según el usuario logueado (data sandboxing) es una función de Metabase Pro/Enterprise. En open source, obtienes el mismo efecto práctico separando el dato por schema/conexión y amarrando grupos y colecciones a cada uno. Funciona muy bien cuando el número de unidades es manejable.
¿Cuántas conexiones aguanta el Metabase?
Muchas más de las que la mayoría de las operaciones necesita. El cuello de botella rara vez es el número de conexiones sino la base de datos detrás; por eso la separación por schema en un único warehouse bien indexado suele ser más simple de operar que decenas de bases sueltas.