Mysql
 sql >> Base de données >  >> RDS >> Mysql

Alternatives à MySQL Workbench - Gestion des utilisateurs de la base de données ClusterControl

La gestion des utilisateurs et des privilèges MySQL est très critique à des fins d'authentification, d'autorisation et de comptabilité. Depuis MySQL 8.0, il existe désormais deux types de privilèges d'utilisateur de base de données :

  1. Privilèges statiques – Les privilèges communs globaux, de schéma et d'administration tels que SELECT, ALTER, SUPER et USAGE, intégrés au serveur.
  2. Privilèges dynamiques - Nouveau dans MySQL 8.0. Un composant qui peut être enregistré et désenregistré lors de l'exécution, ce qui offre un meilleur contrôle sur les privilèges globaux. Par exemple, au lieu d'attribuer le privilège SUPER uniquement à des fins de gestion de la configuration, il est préférable d'accorder à cet utilisateur particulier le privilège SYSTEM_VARIABLES_ADMIN uniquement.

La création d'un schéma de base de données avec son utilisateur respectif est la toute première étape pour commencer à utiliser MySQL comme serveur de base de données. La plupart des applications qui utilisent MySQL comme magasin de données nécessitent que cette tâche soit effectuée avant que l'application puisse fonctionner comme prévu. Pour une utilisation avec une application, un utilisateur MySQL est généralement configuré pour avoir tous les privilèges (TOUS LES PRIVILÈGES) au niveau du schéma, ce qui signifie que l'utilisateur de la base de données utilisée par l'application a la liberté d'effectuer n'importe quelle action sur la base de données attribuée.

Dans cet article de blog, nous allons comparer et contraster les fonctionnalités de gestion des utilisateurs de la base de données MySQL entre MySQL Workbench et ClusterControl.

MySQL Workbench - Gestion des utilisateurs de la base de données

Pour MySQL Workbench, vous pouvez trouver tous les éléments de gestion des utilisateurs sous Administration -> Gestion -> Utilisateur et privilèges. Vous devriez voir une liste des utilisateurs existants sur le côté gauche tandis que sur le côté droit se trouve la section de configuration d'authentification et d'autorisation pour l'utilisateur sélectionné :

MySQL prend en charge plus de 30 privilèges statiques et il n'est pas facile à comprendre et à mémoriser le centre commercial. MySQL Workbench a un certain nombre de rôles administratifs prédéfinis, ce qui est très utile pour attribuer des privilèges suffisants à un utilisateur de base de données. Par exemple, si vous souhaitez créer un utilisateur MySQL spécifiquement pour effectuer des activités de sauvegarde à l'aide de mysqldump, vous pouvez choisir le rôle BackupAdmin et les privilèges globaux associés seront attribués à l'utilisateur en conséquence :

Pour créer un nouvel utilisateur de base de données, cliquez sur le bouton "Ajouter un compte" et fournissez les informations nécessaires sous l'onglet "Connexion". Vous pouvez ajouter d'autres restrictions de ressources sous l'onglet "Limite de compte". Si l'utilisateur est uniquement destiné à un schéma de base de données et n'est destiné à aucun rôle administratif (strictement pour l'utilisation de l'application), vous pouvez ignorer l'onglet "Rôles administratifs" et simplement configurer les "Privilèges du schéma".

Sous la section "Privilèges de schéma", on peut choisir un schéma de base de données (ou définir le modèle correspondant) en cliquant sur "Ajouter une entrée". Ensuite, appuyez sur le bouton "Sélectionner TOUT" pour autoriser tous les droits (sauf GRANT OPTION) qui est similaire à la déclaration d'option "ALL PRIVILEGES" :

Aucun utilisateur de base de données ne sera créé sur le serveur MySQL tant que vous n'aurez pas postulé les modifications, en cliquant sur le bouton "Appliquer".

ClusterControl - Gestion des utilisateurs de la base de données et du proxy

La gestion de la base de données et des utilisateurs de ClusterControl est un peu plus simple que ce que propose MySQL Workbench. Alors que MySQL Workbench est plus convivial pour les développeurs, ClusterControl se concentre davantage sur ce qui intéresse les administrateurs système et les administrateurs de base de données, plutôt sur des tâches d'administration courantes pour ceux qui connaissent déjà les rôles et privilèges MySQL.

Pour créer un utilisateur de base de données, accédez à Gérer -> Schémas et utilisateurs -> Utilisateurs -> Créer un nouvel utilisateur. L'assistant de création d'utilisateur suivant s'affichera :

La création d'un utilisateur dans ClusterControl nécessite que vous remplissiez tous les champs nécessaires en un seul page, contrairement à MySQL Workbench qui impliquait un certain nombre de clics pour obtenir des résultats similaires. ClusterControl prend également en charge la création d'un utilisateur avec la syntaxe "REQUIRE SSL", pour obliger l'utilisateur particulier à accéder uniquement via le canal de cryptage SSL.

ClusterControl fournit une vue agrégée sur tous les utilisateurs de la base de données d'un cluster, ce qui vous évite de vous connecter à chaque serveur individuel pour rechercher un utilisateur particulier :

Un simple survol sur la zone des privilèges révèle tous les privilèges qui ont été attribués à cet utilisateur. ClusterControl fournit également une liste des utilisateurs inactifs, des comptes utilisateurs qui n'ont pas été utilisés depuis le dernier redémarrage du serveur :

La liste ci-dessus nous donne un résumé clair des utilisateurs qui valent la peine d'exister , nous permettant de gérer l'utilisateur plus efficacement. Les DBA peuvent alors demander au développeur si l'utilisateur inactif de la base de données doit toujours être actif, sinon le compte utilisateur peut être verrouillé ou supprimé.

Si vous avez un équilibreur de charge ProxySQL entre les deux, vous savez peut-être que ProxySQL possède sa propre gestion des utilisateurs MySQL pour lui permettre de le traverser. Il existe un certain nombre de paramètres et de variables différents par rapport aux configurations utilisateur MySQL courantes, par exemple, le groupe d'hôtes par défaut, le schéma par défaut, la persistance des transactions, l'avance rapide et bien d'autres. ClusterControl fournit une interface utilisateur graphique pour gérer les utilisateurs de la base de données ProxySQL, améliorant ainsi l'expérience et l'efficacité de la gestion simultanée des utilisateurs de votre proxy et de votre base de données :

Lors de la création d'un nouvel utilisateur de base de données via la page de gestion ProxySQL, ClusterControl créera automatiquement l'utilisateur correspondant sur ProxySQL et MySQL. Cependant, lors de la suppression d'un utilisateur MySQL de ProxySQL, l'utilisateur de base de données correspondant restera sur le serveur MySQL.

Avantages et inconvénients

ClusterControl prend en charge plusieurs fournisseurs de bases de données afin que vous obteniez une expérience utilisateur similaire avec d'autres serveurs de bases de données. ClusterControl prend également en charge la création d'un utilisateur de base de données sur plusieurs hôtes à la fois, où il s'assurera que l'utilisateur créé existe sur tous les serveurs de base de données du cluster. ClusterControl a une manière plus propre lors de la liste des comptes d'utilisateurs, où vous pouvez voir toutes les informations nécessaires directement dans la page de liste. Cependant, la gestion des utilisateurs nécessite un abonnement actif et n'est pas disponible dans l'édition communautaire. Il ne prend pas en charge toutes les plates-formes que MySQL peut exécuter, en particulier certaines distributions Linux telles que CentOS, RHEL, Debian et Ubuntu.

Le principal avantage de MySQL Workbench est qu'il est gratuit et qu'il peut être utilisé avec la gestion et l'administration des schémas. Il est conçu pour être plus convivial pour les développeurs et les DBA et a l'avantage d'être construit et soutenu par l'équipe Oracle, qui possède et gère le serveur MySQL. Il fournit également des conseils beaucoup plus clairs avec une description de la plupart des champs de saisie, en particulier dans les parties critiques telles que l'authentification et la gestion des privilèges. Le rôle d'administrateur prédéfini est un moyen pratique d'accorder un ensemble de privilèges à un utilisateur, en fonction du travail que l'utilisateur doit effectuer sur le serveur. En revanche, MySQL Workbench n'est pas un outil convivial pour les clusters, car chaque connexion de gestion est adaptée à un serveur MySQL de point de terminaison. Ainsi, il ne fournit pas une vue centralisée de tous les utilisateurs du cluster. Il ne prend pas non plus en charge la création d'utilisateurs avec l'application SSL.

Ces deux outils ne prennent pas en charge la nouvelle syntaxe des privilèges dynamiques MySQL 8.0, par exemple BACKUP_ADMIN, BINLOG_ADMIN, SYSTEM_VARIABLES_ADMIN, etc.

Le tableau suivant met en évidence les fonctionnalités notables des deux outils pour faciliter la comparaison :

Aspect de la gestion des utilisateurs

MySQL Workbench

ClusterControl

Système d'exploitation pris en charge pour le serveur MySQL

  • Linux

  • Windows

  • FreeBSD

  • Ouvrir Solaris

  • Mac OS

  • Linux (Debian, Ubuntu, RHEL, CentOS)

Fournisseur MySQL

  • Oracle

  • Percône

  • Oracle

  • Percône

  • MariaDB

  • Codership

Prise en charge de la gestion des utilisateurs pour d'autres logiciels

 
  • ProxySQL

Gestion des utilisateurs multi-hôtes

Non

Oui

Vue agrégée des utilisateurs dans un cluster de base de données

Non

Oui

Afficher les utilisateurs inactifs

Non

Oui

Créer un utilisateur avec SSL

Non

Oui

Privilège et description du rôle

Oui

Non

Rôle administratif prédéfini

Oui

Non

Privilèges dynamiques MySQL 8.0

Non

Non

Coût

Gratuit

Abonnement requis pour les fonctionnalités de gestion


Nous espérons que ces articles de blog vous aideront à déterminer quels outils conviennent le mieux pour gérer vos bases de données et vos utilisateurs MySQL.