Aller au contenu principal

Base de données

Le module Base de données permet de vendre des services de bases de données gérées depuis CLIENTXCMS. Il prend en charge MySQL/MariaDB, PostgreSQL et MongoDB. Les services MySQL/MariaDB peuvent également être accessibles à travers ProxySQL.

Module

Le module Base de données doit être activé dans CLIENTXCMS avant de pouvoir créer un serveur ou un produit. Découvrez comment activer un module.

Fonctionnalités prises en charge

  • Création automatique de la base de données et de l'utilisateur principal après une commande
  • Gestion des bases de données et des utilisateurs supplémentaires depuis l'espace client
  • Limites de bases de données, d'utilisateurs, de connexions et de stockage
  • Suspension et réactivation automatiques
  • Expiration et résiliation automatiques
  • Mise à niveau du produit avec application des nouvelles limites au service
  • Accès facultatif à phpMyAdmin pour MySQL/MariaDB
  • Enregistrement et routage facultatifs des utilisateurs dans ProxySQL pour MySQL/MariaDB

Préparer le serveur de bases de données

Avant d'ajouter le serveur dans CLIENTXCMS :

  1. Installez et démarrez le moteur de base de données choisi.
  2. Créez un compte d'administration dédié à CLIENTXCMS. Il doit pouvoir créer, modifier et supprimer les bases de données et les utilisateurs, puis attribuer les permissions sélectionnées par les clients.
  3. Autorisez les connexions distantes provenant uniquement du serveur CLIENTXCMS.
  4. Ouvrez le port de la base de données dans le pare-feu uniquement pour l'adresse IP de CLIENTXCMS.
  5. Testez la connexion depuis l'hôte CLIENTXCMS avant d'enregistrer le serveur.
Sécurité en production

N'exposez pas publiquement le port d'administration. Utilisez une liste blanche d'adresses IP, un réseau privé ou un VPN, et réservez un mot de passe dédié à CLIENTXCMS. Ne réutilisez pas le compte root de la base de données lorsqu'un compte d'administration restreint peut être employé.

Informations de connexion par moteur

MoteurPort par défautPermissions requises pour le compte d'administration
MySQL/MariaDB3306Gérer les bases, les utilisateurs, les privilèges, les limites de connexion et les quotas pris en charge par le serveur
PostgreSQL5432Créer et supprimer des bases et des rôles, modifier les limites des rôles et attribuer les privilèges des bases
MongoDB27017Créer et supprimer les bases/utilisateurs, puis gérer leurs rôles et leurs permissions

Le nom d'hôte doit être résolu depuis le serveur CLIENTXCMS. Si le serveur de bases de données utilise un port personnalisé, saisissez ce port à la place du port par défaut.

Extension PHP MongoDB

La prise en charge de MongoDB nécessite l'extension PHP MongoDB sur le serveur qui exécute CLIENTXCMS. Sous Debian ou Ubuntu, installez-la facilement avec :

sudo apt update
sudo apt install php-mongodb

Redémarrez ensuite le service PHP utilisé par votre installation et, si nécessaire, votre serveur web. Par exemple, remplacez 8.4 par votre version de PHP :

sudo systemctl restart php8.4-fpm
sudo systemctl restart nginx

Vérifiez que l'extension est bien activée :

php -m | grep mongodb

La commande doit retourner mongodb. Si CLIENTXCMS utilise une version de PHP différente de celle de la ligne de commande, installez et activez également l'extension pour cette version.

Créer le serveur CLIENTXCMS

Accédez à Espace d'administration > Paramètres > Approvisionnement > Serveurs > Nouveau, puis sélectionnez Database comme type de serveur.

Configuration du serveur de bases de données

Remplissez la fiche du serveur comme suit :

ChampConfiguration
NomNom interne permettant d'identifier clairement le nœud de bases de données
Type de serveurDatabase
Nom d'hôteNom d'hôte public ou privé utilisé par les clients pour se connecter
Adresse IPAdresse utilisée par CLIENTXCMS pour joindre le serveur de bases de données
StatutActif pour autoriser le provisionnement sur ce serveur
PortPort du moteur choisi, par exemple 3306, 5432 ou 27017
Nom d'utilisateurCompte d'administration dédié à la base de données
Mot de passeMot de passe du compte d'administration

Enregistrez le serveur, puis testez sa connexion. Un échec indique généralement une erreur d'hôte, de port, d'identifiants, de règles d'accès distant ou de pare-feu.

MySQL/MariaDB avec ProxySQL

ProxySQL est facultatif et disponible uniquement pour les services MySQL/MariaDB. Laissez-le désactivé lorsque les clients se connectent directement au serveur MySQL.

Configuration de ProxySQL

Lorsque ProxySQL est activé, CLIENTXCMS y enregistre et y gère automatiquement les utilisateurs provisionnés. Configurez les champs suivants :

ChampConfiguration
Hôte d'administration ProxySQLHôte de l'interface d'administration ProxySQL ; laissez-le vide uniquement si le module peut utiliser l'hôte du serveur de bases de données
Port d'administration ProxySQLGénéralement 6032
Utilisateur administrateur ProxySQLCompte autorisé à gérer les utilisateurs et la configuration d'exécution de ProxySQL
Mot de passe administrateur ProxySQLMot de passe du compte d'administration ProxySQL
Connexions maximales par clientLimite de connexions attribuée à chaque utilisateur client provisionné
Groupe d'hôtes par défautGroupe d'hôtes ProxySQL vers lequel les connexions des clients sont dirigées

Le backend ProxySQL doit déjà pointer vers le serveur MySQL/MariaDB. Vérifiez que le groupe d'hôtes par défaut existe et que l'adresse fournie aux clients correspond à l'interface frontend de ProxySQL, et non à son interface d'administration.

Créer un produit de base de données

Commencez par créer un produit, puis sélectionnez Database comme type.

Produit de base de données

Configurez son nom, son groupe, son prix, son stock, sa description et sa visibilité comme pour tout autre produit CLIENTXCMS. Enregistrez-le, puis sélectionnez Configurer l'offre.

Configuration d'une offre MySQL/MariaDB

Sélectionnez MySQL/MariaDB pour configurer les limites de stockage et de connexions, le jeu de caractères, la collation, les préfixes des ressources, l'accès à phpMyAdmin et le nombre maximal de bases et d'utilisateurs supplémentaires. Il s'agit du seul moteur compatible avec la configuration ProxySQL facultative.

Les champs disponibles dépendent du moteur sélectionné :

ChampDescription
Serveur de bases de donnéesNœud sur lequel le service sera provisionné
MoteurMySQL/MariaDB, PostgreSQL ou MongoDB
Taille maximale (Mo)Quota de stockage attribué au service lorsque le moteur le prend en charge
Connexions simultanées maximalesNombre maximal de connexions autorisées pour le service
Jeu de caractères et collationEncodage et règles de tri par défaut des bases MySQL/MariaDB
Préfixe de base de donnéesPréfixe facultatif ajouté aux noms de bases générés
Préfixe utilisateurPréfixe facultatif ajouté aux noms d'utilisateurs générés
Sous-utilisateurs maximauxNombre d'utilisateurs que le client peut créer en plus de l'utilisateur principal
Bases de données maximalesNombre de bases que le client peut créer
Activer phpMyAdminAffiche l'accès à phpMyAdmin pour un service MySQL/MariaDB
Préfixes

Utilisez des préfixes courts terminés par un tiret bas, comme ctx_. Ils permettent d'identifier facilement les ressources provisionnées tout en laissant suffisamment de place au nom unique généré.

Choisissez des limites que le serveur de bases de données peut réellement appliquer et supporter. Veillez notamment à conserver des limites de connexion inférieures à la capacité globale du moteur en tenant compte de tous les produits hébergés sur le même nœud.

Automatisation du service

Une fois le produit configuré, le module suit le cycle de vie standard des services CLIENTXCMS :

ÉvénementAction automatisée
CréationCrée la base et l'utilisateur principaux, génère les identifiants, applique les limites de l'offre et enregistre l'utilisateur dans ProxySQL lorsque celui-ci est activé
SuspensionBloque l'utilisation du service de base de données jusqu'à sa réactivation
RéactivationRétablit l'accès au service existant et à ses ressources
Mise à niveauApplique les limites et les options de la nouvelle configuration du produit
Expiration/résiliationSupprime les ressources du service selon le processus d'expiration configuré dans CLIENTXCMS
Résiliation et perte de données

La suppression d'une base de données est irréversible sans sauvegarde externe. Configurez soigneusement les rappels de paiement et les délais de résiliation, puis sauvegardez les bases de production en dehors du serveur provisionné.

Importation des services existants impossible

Les services de bases de données ne peuvent pas être importés manuellement dans CLIENTXCMS. Cette restriction évite que CLIENTXCMS prenne le contrôle de bases, d'utilisateurs ou d'identifiants qui n'ont pas été créés et sécurisés par le module. Chaque service doit donc être provisionné automatiquement depuis un produit Database configuré.

Gestion depuis l'espace client

Les clients peuvent consulter leurs informations de connexion et gérer les ressources autorisées par les limites du produit.

Bases de données

Gestion des bases de données

Le client peut afficher ses bases, identifier la base principale, créer des bases supplémentaires jusqu'à la limite configurée et supprimer les bases supplémentaires éligibles.

Utilisateurs et permissions

Gestion des utilisateurs de bases de données

Le client peut créer des utilisateurs supplémentaires, les associer à une ou plusieurs bases, choisir leurs permissions, réinitialiser leurs mots de passe et les supprimer. Les permissions disponibles dépendent du moteur sélectionné. N'accordez que les permissions nécessaires à l'application ; par exemple, un utilisateur destiné aux rapports n'a généralement besoin que d'un accès en lecture.

Résolution des problèmes

  • La connexion au serveur échoue : vérifiez le DNS, l'adresse IP, le port, le pare-feu, l'adresse d'écoute distante et les identifiants d'administration.
  • Le provisionnement échoue : vérifiez que le compte d'administration peut créer des bases/utilisateurs et attribuer des permissions.
  • Un client ne peut pas se connecter : contrôlez le statut du service, la limite de connexions, le réseau autorisé, les logs du moteur et le nom d'hôte affiché au client.
  • L'accès via ProxySQL échoue : vérifiez le port d'administration 6032, l'adresse de connexion frontend, les identifiants administrateur, le groupe d'hôtes par défaut et l'état du backend MySQL.
  • Une mise à niveau ne s'applique pas : vérifiez que le moteur cible prend en charge la limite modifiée et consultez les logs CLIENTXCMS dans Paramètres > Sécurité > Historique.