QNAP [Mémo] Utiliser Adminer pour administrer votre base MariaDB10 sur un NAS QNAP

EVO

Administreur
Membre du personnel
25 Novembre 2019
10 332
2 220
293
/var/run/docker.sock
Utiliser Adminer pour administrer votre base MariaDB10 sur un NAS QNAP

Pré-requis :
- Un NAS QNAP
- Le serveur WEB doit être actif

Sommaire :

1/ Installation de Adminer
2/ Connexion à la base de données
3/ Création d'un utilisateur




1/ Installation de Adminer
Récupérer la dernière version de Adminer sur le site officiel : https://www.adminer.org/#download
1676842824085-png.8168


Cela vous donne un fichier "adminer-4.8.1.php" ( la version peu avoir évolué depuis la création de ce tutoriel ).
On le place dans le dossier "Web" du NAS :
1676842876729-png.8169




2/ Connexion à la base de données

Ensuite, avec l'adresse ip de ton serveur, tu accède a adminer :
1676842935369-png.8170


Ici l'adresse de mon serveur est 192.168.100.61 et le fichier adminer ce nomme adminer-4.8.1.php, l'adresse est donc :
http://192.168.100.61/adminer-4.8.1.php

Pour te connecter a MariaDB10 :

Serveur :
127.0.0.1:PORT, par défaut sur QNAP le port de MariaDB10 est 3307, ce qui donne : 127.0.0.1:3307
Utilisateur
: root
Mot de passe : le mot de passe root choisi lors de la 1ere configuration de MariaDB10
Exemple :
1676843045177-png.8171


Une fois connecté, nous pouvons modifier/créer les tables, ou dans Privilèges modifier/créer des utilisateurs, ... :
1676843094703-png.8172




3/ Création d'un utilisateur
Pour créer un utilisateur dans la base de données, une fois connecté avec Adminer, on ce rend dans :
Privilèges > Créer un utilisateur

On arrive la dessus ( l'image n'est pas complète la liste des droits est plus grande ) :
1676914934514-png.8173


En 1, on indique depuis ou la connexion a cette base depuis cet utilisateur est possible. Attention il ne s'agit pas ici de notre connexion a nous. mais du service qui utilisera cet utilisateur.
Exemple, si nous souhaitons héberger un Wordpress, qui a besoin d'un acces est que ce Wordpress est hebergé sur le même serveur que la base de donnée, alors c'est donc "localhost"
Si par contre, la base de données est sur le NAS, mais le Wordpress sur une autre machine du réseau local, par exemple avec l'IP 192.168.100.100, alors il faudra renseigner 192.168.100.100, car c'est cette IP qui souhaitera se connecter !
Il est aussi possible de placer un pourcentage ( % ), cela signifie que les connexions venant de n'importe quelle machine sont acceptées ! Je dé-conseil vivement ! Cela peut etre bien pour un test, mais pas en production !!

En 2, le nom d'utilisateur voulu.


En 3 son mot de passe, en clair. Il sera "Haché" pour être stocké.

En 4, la base de données dont l'utilisateur a le droit d’accès. Le nom de la base de données est a placé avant .*.
Exemple, ou souhaite autoriser notre utilisateur a avoir l’accès uniquement a la table "test", alors en 4 on indique test.*.
Il est aussi possible de placer un astérisque ( * ), cela signifie que l'utilisateur a un acces a toutes les tables, comme ceci : *.* ! Cela est a réservé pour la création d'un utilisateur par exemple dédié a la supervision par exemple, si vous ne souhaiter pas utiliser root. Evitez de donner accès plus que besoin a vos utilisateurs.

En 5, on cochera dans la liste les privilèges de l'utilisateur. Voir https://mariadb.com/kb/en/grant/#priv_level
Pour qu'un utilisateur est un contrôle total sur sa base de données, on cochera "All Privileges".




2023-02-20 - Rajout du point 3/ Création d'un utlisateur
2023-02-19 - Création
 
Dernière édition:
  • J'aime
Réactions: Horax
Ça me dit quelque chose ;)
Serait-il possible d'avoir 2 ou 3 info basiques sur "modifier/créer les tables, ou dans Privilèges modifier/créer des utilisateurs, ..."?
En tout cas merci :)
 
je le rajouterai dans le mémo quand j'aurai un peu plus de temps.

Par exemple pour faire un user :

On va dans : Privilèges >Créer un utilisateur
On arrive la dessus ( l'image n'est pas complete la liste des droits est plus grande ) :
1676914934514.png

En 1, on indique depuis ou la connexion a cette base depuis cet utilisateur est possible. Attention il ne s'agit pas ici de notre connexion a nous. mais du service qui utilisera cet utilisateur.
Exemple, si nous souhaitons héberger un Wordpress, qui a besoin d'un acces est que ce Wordpress est hebergé sur le même serveur que la base de donnée, alors c'est donc "localhost"
Si par contre, la base de données est sur le NAS, mais le Wordpress sur une autre machine du réseau local, par exemple avec l'IP 192.168.100.100, alors il faudra renseigner 192.168.100.100, car c'est cette IP qui souhaitera se connecter !
Il est aussi possible de placer un pourcentage ( % ), cela signifie que les connexions venant de n'importe quelle machine sont acceptées ! Je dé-conseil vivement ! Cela peut etre bien pour un test, mais pas en production !!

En 2, le nom d'utilisateur voulu.

Et en 3 son mot de passe, en clair. Il sera "Haché" pour être stocké.

En 4, la base de données dont l'utilisateur a le droit d'acces. Le nom de la base de données est a placé avant .*.
Exemple, ou souhaite autoriser notre utilisateur a avoir l'acces uniquement a la table "test", alors en 4 on indique test.*.
Il est aussi possible de placer un astérisque ( * ), cela signifie que l'utilisateur a un acces a toutes les tables, comme ceci : *.* ! Cela est a réservé pour la création d'un utilisateur par exemple dédié a la supervision par exemple, si vous ne souhaiter pas utiliser root. Evitez de donner accès plus que besoin a vos utilisateurs.

En 5, on cochera dans la liste les privilèges de l'utilisateur. Voir https://mariadb.com/kb/en/grant/#priv_level
Pour qu'un utilisateur est un contrôle total sur sa base de données, on cochera "All Privileges".
 
Lors de la création de la base on doit choisir "Interclassement". J'ai cru comprendre que ça correspond aux caractères que la base peut utiliser. Quel "Interclassement" choisir pour ne pas avoir de problème?

Autre question, les "users", doit on créer autant de "users" que de personnes qui vont utiliser l'app que utilise la DB ou c'est un "user maitre" par app?
 
Lors de la création de la base on doit choisir "Interclassement". J'ai cru comprendre que ça correspond aux caractères que la base peut utiliser. Quel "Interclassement" choisir pour ne pas avoir de problème?
Salut,
Oui c'est une histoire de prise en charge des caractères / majuscules, ... lors de recherche dans la DB.
Voir : https://blog.kodono.info/wordpress/2018/04/28/interclassement-mysql-pour-le-francais/

En général, le concepteur de l'application indique les pré-requis pour la DB, comme par exemple pour Nextcloud :
1677777846263.png

et / ou , le logiciel en question créer lui même la base de données.

Autre question, les "users", doit on créer autant de "users" que de personnes qui vont utiliser l'app que utilise la DB ou c'est un "user maitre" par app?
En général, on a une instance MariaDB avec un user "root", et une fait 1 base de données lié a un utilisateur pour une application.
Ainsi chaque logiciel possède sa propre base de données, gérer par son propre utilisateur et ne peuveut pas faire d'action sur les autres bases de données.
 
Dernière édition:
J'en ai profité pour pour mettre ma DB un peu plus au propre et le vois que sur la page users ma DB est indiquée comme ceci: `linkace_DB`.* au lieu de linkace_DB.* comme dans ton exemple. Normal? pas normal?