Le blog de Genma
Vous êtes ici : Accueil » Yunohost » Yunohost - Consulter le contenu des tables de la base de données

Yunohost - Consulter le contenu des tables de la base de données

D 8 avril 2020     H 09:00     A Genma     C 3 messages   Logo Tipee

TAGS : Planet Libre Yunohost

Yunohost utilise MariaDB comme base de données pour la plupart des applications et fait donc tourner ce serveur en local. Il peut être intéressant (par curiosité) ou utile (mais dans ce cas là, il faut savoir ce que l’on fait) de pouvoir consulter les tables des différentes base de données (généralement une par application en nécessitant une).

PHPMyAdmin

Quand on pense base de données et site ou applications web, on pense à Phpmyadmin. Ce logiciel existe depuis 1998, est fourni par défaut dans l’application WAMP (ah mes débuts de développement de site web sous SPIP sous Windows dans les années 2000) et assez pratique et utile. Le problème est la sécurité. Il faut maintenir cette application à jour et surtout la sécuriser.

Ca tombe bien, l’ami SebOSS666 a fait un tutoriel à ce sujet : Quelles méthodes pour protéger un accès PHPMyAdmin ?

Yunohost a un paquet pour Phpmyadmin maintenue par l’ami JimboJoe, il faudra que je regarde quel est l’état de la sécurisation et si une contribution est nécessaire.

Dbeaver

Merci à Nolween pour m’avoir fait découvrir cet outil via un de ces toots sur Mastodon.

Dbeaver est un logiciel libre multiplateforme (disponible pour Ubuntu et Windows) https://dbeaver.io/download/. Il s’agit d’un logiciel client pour différentes bases de données : MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server...

Une fois installé sur un PC, il va falloir se connecter à la base de données derrière Yunohost. Cette base de données n’écoute qu’en local, sur un serveur. Le logiciel client Dbeaver tourne sur un PC...

Une solution pour établir une connexion sécurisée est donc de passer par un tunnel SSH, qui va permettre d’avoir une connexion sur le port d’écoute de la base de données sur le serveur, que l’on expose au client.

On lance donc un tunnel SSH sur la machine cliente (et on laissera le tunnel ouvert)

ssh mamachine.org -L 3306:127.0.0.1:3306 -N

avec les options -L qui permet de connecter un port distant à port local, -N pour indiquer la redirection de port.

On lance ensuite DBeaver en indiquant comme serveur "127.0.0.1". Et pour l’utilisateur, ce sera "root".
Il faut aller trouver le mot de passe de mysql sur la machine Yunohost, il est contenu dans le fichier /etc/yunohost/mysql.

Et on est alors connecté avec DBeaver.

3 Messages

  • En concurrent de phpMyAdmin, citons l’excellent "adminer", qui fait facilement 90% du boulot de phpMyAdmin en *un* fichier .php. 1. On le récupère sur le site officiel (https://adminer.org, plusieurs variantes sont disponibles selon qu’on veut du multi-moteurs, MySQL/MariaDB uniquement, multilingue ou anglais uniquement), 2. on le pose là où on veut dans l’arborescence du serveur web (qui doit quand même gérer le PHP et avoir les modules php-mysql qui vont bien) et 3. on y accède via l’URL correspondante et hop : on précise la base, le compte, le mot de passe et c’est parti. L’avantage de cette légèreté (un ficher .php et hop !) est que les mises à jour sont simples, rapides et aisément réversibles.

    Méfiance cela-dit avec ces outils web, surtout sur des serveurs exposés car ils sont très recherchés par les traqueurs de vulnérabilités. Les conseils de SebOSS666 relatifs à phpMyAdmin sont également applicables à adminer (à commencer par une URL bien difficile à deviner).


  • Super DBeaver,
    Merci pour le tuyau et le coup du tunnel ssh, nice :)


  • Bonjour,

    certaines applications utilisent également Postgresql (Synapse, Kresus notamment) et il existe un paquet pgadmin pour YunoHost qui est terriblement efficace : j’en ai eu besoin pour créer une base manuellement, et une fois installée, tout est détecté, le seul inconvénient étant qu’il faut créer un autre utilisateur admin.

    Pour la sécurité du paquet j’avoue ne pas avoir trop regardé, j’espère que la base n’est accessible que localement…