Soluzione della community

Creare un database MariaDB e un utente con autorizzazioni limitate in 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.

In sintesi: accedi ad Adminer con un account amministrativo MariaDB, quindi crea un utente per i sensori con privilegi minimi

Il normale utente CasaOS non è automaticamente un amministratore MariaDB. I privilegi del database risiedono in MariaDB. Usa le credenziali root/amministratore MariaDB definite per il container, quindi crea un database separato e un account per i sensori che possa inserire dati solo dove necessario.

Crea il database e l'utente con privilegi limitati

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 documentazione di MariaDB su CREATE USER e GRANT definisce il modello dei privilegi.

Usa un ambito host più ristretto di %

Gli account MariaDB hanno il formato 'user'@'host'. Limita l'account alla subnet dei sensori o a indirizzi IP specifici invece di consentire l'accesso da qualsiasi host. La guida all'accesso remoto illustra le autorizzazioni per gli host e il comportamento di bind/ascolto.

Adminer è solo l'interfaccia di gestione

Adminer non crea privilegi oltre a quelli già posseduti dall'account MariaDB con cui hai effettuato l'accesso. Se compare “Access denied” mentre hai effettuato l'accesso con un account applicativo con privilegi limitati, passa all'account amministratore del database per gestire schema e utenti. La guida hardware e di distribuzione di Adminer e la guida hardware di MariaDB tengono distinta l'interfaccia dal server del database.

Esponi la porta 3306 solo al segmento LAN che ne ha bisogno

I sensori remoti devono poter accedere a MariaDB tramite TCP, ma questo non significa che il database debba essere esposto su Internet. Esegui il bind e la pubblicazione solo sulla LAN attendibile, usa un firewall quando opportuno e verifica il funzionamento da un singolo host sensore prima di ampliare l'accesso.

Esegui il backup prima che il progetto dei sensori diventi importante

Quando le letture diventano importanti, esegui il backup del database, non solo del container. L'archiviazione persistente, i dump SQL e i test di ripristino sono più importanti dell'interfaccia Adminer stessa. La directory hardware dell'App Store di ZimaOS aiuta a dimensionare lo stack più ampio.