window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-110469859-1');

Ajouter un utilisateur MariaDB

Indice NDT

(N)iveau requis: utilisateur à expert.
(D)ifficulté : Simple, Moyenne, Complexe.
(T)emps estimé pour faire.

Utilisateur Technicien Expert
Niveau
Simple Moyenne Complexe
Difficulté
– d’une heure + de 5 heures 12 heures et +
Temps

OcM

Objectif de l’article.
Contexte de la réalisation.
Modalité de l’éxécution.

Créer un utilisateur en ligne de commande

Base MariaDB sur NAS Synology

Marche à suivre

Une base de données est un ensemble qui regroupe différentes bases. Chaque base dispose de sa structure (tables) qui par la suite contiennent des champs qui sont remplis de données. Comme dans tout système numérique hiérarchisé, des utilisateurs sont requis pour accéder, lire, écrire, gérer des données, des tables, une base ou l’ensemble des bases.

MariaDB (fork de Mysql) est disponible sur un NAS Synology.

La plupart des BDs se pilotent à l’aide d’un langage structuré normalisé définit dans les années 70 par IBM : le SQL.

Dans la suite de cette article on décrit la procédure pour «manuellement(1)» créer une base,  un utilisateur et lui donner des droits.

(1) Sans recourir à un logiciel de requettes sur ordinateur ni l’aide d’une solution logicielle comme PhpMyAdmin

Prérequis


A minima il faut :

  • Paquet MariaDB installé

  • Mot de passe définit pour root (admin de la BD) et routage internet à minima.

  • Accès Telnet ou SSH au NAS Synology paramètré et connu avec utilisateur du groupe Admin

  • Rigueur et conscience des actions techniques menées. Chaque syntaxe en ligne de commande ne supporte pas l’à peu près : un espace (blanc) requis… Il faut en faire un et pas deux. De même, si un  «;» est requis en  fin de ligne de commande… on ne l’oublie pas sous peine de générer une erreur.

On imagine :

  • root dispose du mot de passe Zorglub2012&Plus#
  • on veut créer une base de données : BDamoi
  • on veut créer un utilisateur pour cette base: damien avec comme mot de passe CalimerodesBOIS59#en respectant les exigences de sécurité de MariaDB 10 — + de 8 caractères, majuscule, minuscule chiffre et signe présents dans le mot de passe —

Autant de variables à adapter dans les lignes de commandes à suivre.

A noter : Vous êtes  responsable des actions menées sur les différents éléments manipulées : accès au NAS à distance, saisie en en ligne de commande, actions sur la base de données en tant que root, localisation d’autorisation d’accès de l’utilisateur créé etc…

Alternatives


Si un utilisateur a déjà été créé sur MariaDB, et que cet utilisateur dispose des droits élevés (privilèges sur toutes les bases), et qu’il est autorisé en exécution hors le NAS (à minima réseau local), on peut utiliser à un logiciel de requêtes SQL pour passer les commandes SQL qui suivent.

Au delà on peut faire ces actions avec PhpMyAdmin.

Marche à suivre


Les principales étapes sont :

  1. Activer l’accès Telnet ou SSH au NAS
  2. Se connecter via ce protocole
  3. Se connecter à la BD en ligne de commande
  4. Créer la base, l’utilisateur et ses droits
  5. Vérifier (facultatif)
  6. Si jamais… (facultatif)
  7. Sortir de la base et du mode d’accès au NAS
  8. Désactiver l’accès Telnet ou SSH

1- Activation Telnet ou SSH du NAS


  1. Connexion au NAS en tant qu’utilisateur du groupe Admin
  2. Panneau de configuration
  3. Terminal & SNMP
  4. Activation de l’accès Telnet OU SSH

Du type d’activation dépend la connexion à distance : Pour le protocole Telnet un simple Terminal en service sur Windows ou via Terminal sous MacOS en interne peut suffire. Actions à faire en local — on ne fait plus d’accès externe en TELNET les données échangées n’étant pas chiffrées de bout en bout contrairement à l’accès SSH–. Comme l’accès est ponctuel, à chacun de choisir selon ses préférences l’un ou l’autre des protocoles et les outils pour y accéder.

2 – Connexion au NAS en Telnet ou SSH


Quelque soit l’outil utilisé selon le protocole retenu on doit se connecter sur le NAS en local avec un utilisateur du group admin.

Via Telnet :

telnet ip du NAS ou telnet cmoi@192.168.12.30

Via SSH :

via le logiciel concerné on pointe l’ip du NAS ou ssh cmoi@192.168.12.30

Lorsqu’un mot de passe est demandé il n’est pas affiché.

Un fois connecté au NAS en ligne de commande avec l’utilisateur autorisé, on oit passer en mode root du NAS.

Saisir la ligne de commande suivante :

COPIER

A nouveau un mot de passe est demandé, c’est celui d’admin (admin user du NAS)

D’un utilisateur autorisé on passe en tant que root sur le NAS

3 – Connexion à MariaDB en tant que root


On se connecte à la base de données MariaDB avec l’utilisateur root (de la base) et le mot de passe créé en amont (NAS Synology, Application MariaDB Mot de passe), dans notre exemple : Zorglub2012&Plus#

Saisir la ligne de commande suivante :

COPIER

Là encore la saisie du mot de passe est invisible.

Comme indiqué, à de rares exceptions, toutes les commandes saisies dans cet interpréteur doivent se terminer par « ; »

4 – Créer base, user et droits


Création de la base,
saisir la ligne de commande suivante :

COPIER

Création de l’utilisateur,
saisir la ligne de commande suivante :

COPIER
A noter : @ localhost signifie que cet utilisateur est autorisé en accès depuis le NAS. Si on souhaite l’exécuter depuis une machine précise dans le réseau local on précise l’ip privée : 192.168.12.20 ou une plage pour tout le réseau local 192.168.12.% ou pour une exécution possible de n’importe où  avec %.

Attention : pour une utilisation en local depuis un ordinateur avec un requêteur logiciel, on localise via l’adresse ip unique de la machine si elle est fixe ou via la plage privée. Pour une utilisation identique mais en externe au réseau local on peut fixer l’ip distante si connue et fixe… Plutôt que de mettre % (ou alors temporairement) ET,  dans cette optique d’accès externe il faut aussi router le port MariaDB sur le modem/router/box – 3307-.

Exemple de droits

    • Base pour site web en php ou via un CMS type WordPress — définition d’un utilisateur pour exécution locale seulement [localhost] — seul le PHP exécuté sur le NAS est autorisé à accéder à la base.
    • Base pour utilisation statistiques avec import/export via un ordinateur en local — définition d’un utilisateur avec exécution autorisé en réseau local [192.168.20%] — accès possible via une autre machine et des logiciels depuis le réseau local en direct à la base.
    • Base pour un accès externe (dev ou autre) — définition d’un utilisateur pour exécution distante [%] — et routage du port 3307 en externe sur le NAS.

Droits d’administration sur la base créée pour l’utilisateur ajouté
saisir la ligne de commande suivante :

COPIER

Forcer la prise en compte de ces droits
saisir la ligne de commande suivante :

COPIER

5 – Vérifications


Vérifier les bases présentes (dont celle créée)

COPIER

Renvoie la liste des bases présentes. On note la présence de la base BDamoi créée.

Vérifier les utilisateurs présents (dont celui ajouté)

COPIER

Renvoie la liste des utilisateurs présents. On note la présence de l’utilisateur damien créé.

Vérifier les droits de l’utilisateur créé

COPIER

Renvoie les droits pour cet utilisateur, soit ici : un droit d’utilisateur avec mot de passe et un droit d’admin pour la base BDamoi

6 – Et si jamais…


On souhaite supprimer l’utilisateur :

COPIER

On souhaite supprimer la base de données :

COPIER

Et voilà !


  • Base créée,
  • Utilisateur et droits créés

on peut quitter MariaDB,
saisir la ligne de commande suivante

COPIER


puis quitter le niveau d’utilisation root du NAS,
saisir la ligne de commande suivante:

COPIER

puis quitter l’interpréteur de commande Telnet ou SSH
saisir la ligne de commande suivante

COPIER

Ne pas oublier de désactiver l’accès à distance TelNet SSH dans l’admin du NAS.

FAQ

Requeteur SQL2020-02-24T16:40:29+01:00

Un logiciel requêteur est un outil avec interface graphique permettant d’accéder à une base de données à partir d’un ordinateur Windows/Linux/macOS.
Il offre la possibilité de faire des requêtes SQL et autres actions sur la base. Exemples pour Windows HeidiSql ou pour macOS Sequel Pro.

Sortir en cas d’erreur2020-02-24T16:35:54+01:00

Chaque saisie en ligne de commande sous MariaDB amène un retour du type :

Query OK, 0 rows affected (0.001 sec)

En cas d’erreur de saisie on peut perdre le prompte (MariaDB [(none)]>)  et se retrouver comme suit (exemple avec un oubli de ; en fin de ligne)

MariaDB [(none)]> select user,host from mysql.user

->

CTRL + C permet de sortir de l’interpréteur de commande MariaDB et revenir à la ligne de commande Telnet/SSH linux du NAS.

Ignoring query to other database2020-02-24T16:27:34+01:00

Une erreur fréquente en ligne de commande Mysql de MariaDB est d’oublier le commutateur -u et d’accéder malgré tout à l’interpréteur de commande…
Exemple :

la syntaxe précise pour accéder à l’ensemble des bases en tant que root est la suivante :

COPIER

Sauvegarde MariaDB2020-02-24T16:27:46+01:00

Sauvegarde de MariaDB


Il est conseillé d’utiliser HyperBackup de Synology pour sauvegarder  la base de données MariaDB.

Démarche


Pour le dossier web et son/ses dossier(s) WordPress ainsi que les bases de données associés.

  1. Hyperbackup
  2. +
  3. choisir une destination disque mono-version
  1. destination :dossier d’un disque/volume local ou USB
  1. Sauvegarde de fichiers : on pointe le dossier web
  1. En application  : on sélectionne MariaDB

A noter que toutes les bases sont ainsi sauvegardées. On ne peut restaurer que l’ensemble et pas une base associée à un site.
Dans le cas d’une utilisation d’un CMS comme WordPress par exemple,  il faut procéder à un dump de la base de données (SQL) ou utiliser des outils tiers intégrables à WordPress comme BackWPuP

Accès SSH2021-01-05T10:34:59+01:00

L’accès SSH permet un accès sécurisé aux arcanes d’un système. L’ensemble de la connexion est chiffrée. Ce protocole requiert le partage d’une clé publique et une clé privé (ie la machine doit être connue du système hôte).

Selon le logiciel utilisé, la première connexion est plus ou moins simplifiée. Sur macOs avec Terminal ou sous Windows avec Putty, la première connexion atteste d’un enregistrement d’autorisation. Sitôt fait chaque connexion par la suite se réalise simplement (saisie du mot de passe de l’admin).

Via Telnet l’accès est non chiffré et plus basique. Un logiciel de connexion TTY classique (Terminal sur macOS jusqu’à macOS Sierra) Putty sur PC – voir Telnet en ligne de commande sous Windows -.

Quelque soit le protocole utilisé

  • Il faut éviter de le laisser ouvert en permanence sauf utilisation courante requise.
  • Ne pas router vers l’extérieur le port concerné (22)sauf si requis selon l’utilisation  de chacun

Personnellement je n’utilise pas de service RSYNC ou autre FTPS qui requiert le routage du port SSH 22. Mon accès demeure uniquement local et ponctuel (je désactive l’accès sitôt les actions faites).

A noter depuis Windows 10 version 1709, un accès ssh est possible, directement en ligne de commande. ( cf article lié )

Shell Linux2020-03-10T15:57:52+01:00

Un shell est un programme qui fait office d’interface entre vous et l’ordinateur sous la forme d’un interpréteur de commandes.
Le Shell est le programme qui fait office entre nous et l’ordinateur. C’est l’intrèpréteur de commandes de base sous le système d’exploitation. Sous linux/Unix il en existe plusieurs :

  • Almquist shell (ash) : écrit en remplacement du Bourne Shell, sous licence BSD ; souvent utilisé dans des environnements aux ressources limitées. Les sh de FreeBSD, NetBSD (et leurs dérivés) sont basés sur des cendres qui ont été améliorées pour être conformes à POSIX. (présent sur le NAS Synology)
  • Bourne Shell (sh) : Le shell Bourne était le shell par défaut de la version 7 d’Unix. De nombreux systèmes de type Unix continuent à avoir /bin/sh – qui est l’interpréteur de commandes Bourne, ou un lien (symbolique ou en dur) vers un interpréteur de commandes compatible. (par défaut sur le NAS Synology)
  • Bourne-Again shell (bash) : écrit dans le cadre du projet GNU pour fournir un sur-ensemble de fonctionnalités du Bourne Shell. Ce shell est souvent pré-installé et est le shell interactif par défaut pour les utilisateurs sur la plupart des systèmes Linux et macOS (jusqu’à Catalina macOS 10.15)
  • C shell (csh) : Shell Unix créée par Bill Joy alors qu’il était étudiant à l’Université de Californie, Berkeley, à la fin des années 1970. Il a été largement distribué, à commencer par la version 2BSD de la Berkeley Software Distribution (BSD) pour la première fois en 1978.
  • Debian Almquist shell (dash) : un remplacement moderne du shell ash dans Debian et Ubuntu
  • Korn shell (ksh) : écrit par David Korn à partir des sources du shell Bourne alors qu’il travaillait aux Bell Labs
  • Public domain Korn shell (pdksh) : Shell Unix qui a été développé par David Korn aux Bell Labs au début des années 1980 et annoncé sur USENIX le 14 juillet 1983. Le développement initial était basé sur le code source du shell Bourne.
  • MirBSD Korn shell (mksh): un descendant du ksh d’OpenBSD et de pdksh, développé dans le cadre de MirOS BSD
  • TENEX Shell (tcsh): Shell Unix basé sur et compatible avec csh. Il s’agit essentiellement d’un interpréteur de commandes C avec une complétion en ligne de commande programmable, une édition en ligne de commande et quelques autres fonctionnalités. Il s’agit de l’interpréteur de commandes racine natif pour les systèmes basés sur BSD comme FreeBSD.
  • Z shell (zsh): une coquille relativement moderne qui est rétrocompatible avec le bash. C’est le shell par défaut dans macOS depuis la version 10.15 de Catalina . Présent aussi sur le NAs Synology DSM6.

Quel shell ai-je par défaut ?


COPIER

D’autres SHELL présents ?


COPIER

Changer le shell par défaut ?


COPIER

Sortir du mode Terminal et se reconnecter pour constater que désormais c’est ce shell qui est appliqué par défaut.

2020-10-24T02:29:44+02:0024 Fév 2020|SYNO|

Envie de partager cet article ...

Aller en haut