Solución de la comunidad

Crear una base de datos MariaDB y un usuario restringido en Adminer

A CasaOS beginner could connect Adminer to MariaDB but lacked privileges to create a new database and a restricted LAN user for sensor inserts.

En resumen: inicia sesión en Adminer con una cuenta administrativa de MariaDB y, después, crea un usuario de sensores con privilegios mínimos

El usuario habitual de CasaOS no es automáticamente administrador de MariaDB. Los privilegios de la base de datos se gestionan dentro de MariaDB. Usa las credenciales de root o de administrador de MariaDB definidas para el contenedor y, después, crea una base de datos independiente y una cuenta de sensores que solo pueda insertar datos donde sea necesario.

Crea la base de datos y el usuario restringido

CREATE DATABASE sensor_data
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

CREATE USER 'sensor_writer'@'192.168.1.%'
  IDENTIFIED BY 'REPLACE_WITH_A_STRONG_PASSWORD';

GRANT INSERT ON sensor_data.readings
  TO 'sensor_writer'@'192.168.1.%';

SHOW GRANTS FOR 'sensor_writer'@'192.168.1.%';

La documentación de MariaDB sobre CREATE USER y GRANT define el modelo de privilegios.

Usa un ámbito de host más restrictivo que %

Las cuentas de MariaDB tienen el formato 'user'@'host'. Restringe la cuenta a la subred de los sensores o a direcciones IP específicas en lugar de permitir el acceso desde cualquier host. La guía de acceso remoto explica las concesiones por host y el comportamiento de enlace y escucha.

Adminer solo es la interfaz de administración

Adminer no crea privilegios más allá de los que ya tiene la cuenta de MariaDB con la que se ha iniciado sesión. Si aparece “Acceso denegado” al iniciar sesión con una cuenta de aplicación con pocos privilegios, cambia a la cuenta de administrador de la base de datos para administrar el esquema y los usuarios. La guía de hardware e implementación de Adminer y la guía de hardware de MariaDB distinguen la interfaz del servidor de bases de datos.

Expón el puerto 3306 solo al segmento de la LAN que lo necesite

Los sensores remotos necesitan acceso TCP a MariaDB, pero eso no significa que la base de datos deba estar en internet pública. Enlázala o publícala solo en la LAN de confianza, usa un cortafuegos cuando corresponda y haz una prueba desde un host de sensores antes de ampliar el acceso.

Haz copias de seguridad antes de que el proyecto de sensores sea importante

Cuando las lecturas sean importantes, haz una copia de seguridad de la base de datos, no solo del contenedor. El almacenamiento persistente, los volcados SQL y las pruebas de restauración son más importantes que la propia interfaz de Adminer. El directorio de hardware de la tienda de aplicaciones de ZimaOS ayuda a dimensionar el conjunto de servicios.