Droits et privilèges des utilisateurs MySQL dans le panneau de contrôle ISPmanager5
Description de la procédure d'attribution des droits aux utilisateurs MySQL dans le panneau de contrôle ISPmanager5 et leur désignation
Les bases de données MySQL sont une entité permettant de stocker des informations sous forme de tables. Afin que les bases de données des autres utilisateurs ne soient pas accessibles à tout le monde sur le serveur, il existe un système d'utilisateurs dédié à ces bases de données. L'accès à une base de données peut être attribué par l'administrateur (ou un utilisateur autorisé) à un autre utilisateur, de manière complète ou partiellement restreinte.
Toutes les données sont stockées sous forme de tables liées logiquement entre elles, accessibles via le langage de requêtes SQL. MySQL est un système distribué librement, c'est-à-dire que son utilisation est gratuite. De plus, c'est un SGBD rapide, fiable et, surtout, facile à utiliser, tout à fait adapté aux projets de taille modeste.
Droits des utilisateurs MySQL
Le SGBD MySQL dispose d'un certain nombre de privilèges, listés ci-dessous avec leur description. Les derniers privilèges sont des privilèges de niveau administrateur, mentionnés ici à titre informatif uniquement. La documentation complète sur les droits/privilèges est disponible dans la documentation développeur MySQL :
CREATE – permet de créer de nouvelles bases de données et tables. DROP – permet de supprimer des bases de données ou des tables. INSERT – permet d'ajouter des lignes à une table. UPDATE – permet de modifier le contenu des lignes d'une table. À ne pas confondre avec ALTER, qui permet de modifier la structure de la table elle-même (nombre de lignes/colonnes, types de colonnes). DELETE – l'opposé d'INSERT – permet de supprimer des lignes d'une table. ALTER – permet de modifier la structure d'une table. Nécessite les privilèges CREATE et INSERT. SELECT – permet de lire (afficher des lignes) depuis des tables, en utilisant des sélections par colonnes et/ou selon certains critères arithmétiques et logiques. GRANT OPTION – permet d'attribuer des droits spécifiques à un utilisateur donné (ainsi que de les révoquer). Il n'est possible d'accorder/révoquer que les droits dont dispose l'attributeur lui-même. LOCK TABLES – verrouille la table pendant la durée des modifications manuelles (administration), afin que les données qu'elle contient ne puissent pas être modifiées de manière naturelle (pendant le flux de travail). REFERENCES – permet de créer des liens entre tables via une clé étrangère. EVENT – permet de créer/modifier/supprimer des tâches pour le planificateur. TRIGGER – permet de créer/modifier/supprimer des triggers (associés à certaines tables) qui exécutent des actions supplémentaires lors des opérations DELETE, UPDATE ou INSERT. INDEX – ce privilège donne le droit d'ajouter/supprimer des index dans les tables. Les index sont définis manuellement et permettent de réduire le temps de recherche de lignes. CREATE TEMPORARY TABLES – permet de créer des tables temporaires pour la durée d'une session. CREATE VIEW – permet de créer une vue sous forme de table qui n'existe pas réellement en tant qu'entité unique et qui ne contient que des données provenant d'autres tables. Par exemple, cette vue peut regrouper certaines données agrégées issues de trois tables (via l'opérateur SELECT) ; les données ainsi rassemblées ne feront que référencer les données de ces 3 tables et constitueront une union ne nécessitant pas sa propre table. SHOW VIEW – permet de vérifier par quelle requête (de quelles données elle est constituée) une vue donnée, définie avec CREATE VIEW, a été créée. CREATE ROUTINE – permet de créer une procédure, qui est un ensemble de commandes SQL. ALTER ROUTINE – permet de modifier une procédure créée avec CREATE ROUTINE. EXECUTE – permet d'appeler des procédures stockées. FILE – donne un accès en lecture à tout fichier du serveur auquel MySQL lui-même a accès, ainsi que le droit de créer des fichiers dans les répertoires pour lesquels MySQL dispose de droits d'écriture. CREATE TABLESPACE (admin) – permet de créer/modifier/supprimer des tablespaces. Cet espace est de nature logique et n'est pas lié à la structure de la base de données ou au schéma. Il déclare l'emplacement des objets de la base de données sur les supports physiques et est utilisé pour optimiser le système de base de données. CREATE USER (admin) – permet de créer/modifier/renommer/supprimer des utilisateurs de bases de données. PROCESS (admin) – permet d'accéder aux informations sur les threads (processus) en cours d'exécution sur le serveur. PROXY (admin) – permet de se connecter sous l'identité d'un autre utilisateur. Utilisé par l'administrateur pour vérifier/déboguer les droits d'accès d'un utilisateur donné. RELOAD (admin) – permet d'utiliser l'opérateur FLUSH, qui vide le cache MySQL. REPLICATION CLIENT (admin) – permet d'exécuter SHOW MASTER STATUS, SHOW SLAVE STATUS et SHOW BINARY LOG. REPLICATION SLAVE (admin) – ce privilège est nécessaire aux utilisateurs du serveur de base de données esclave pour que ce serveur puisse se connecter au serveur maître en tant qu'esclave. Sans ce privilège, les serveurs esclaves ne pourront pas demander les mises à jour des bases de données et des tables au serveur maître. SHOW DATABASES (admin) – permet d'exécuter l'instruction SHOW DATABASES. Les utilisateurs ne disposant pas de ce privilège ne pourront voir que les bases de données sur lesquelles ils ont des droits. SHUTDOWN (admin) – ce privilège permet d'exécuter l'instruction SHUTDOWN, qui arrête le serveur MySQL. SUPER (admin) – privilège accordant le droit d'effectuer de nombreuses opérations :
- terminer des processus appartenant à d'autres utilisateurs ;
- modifier des variables système globales ;
- activer/désactiver la journalisation ;
- effectuer des mises à jour même lorsque les droits en lecture seule sont définis pour les variables système ;
- démarrer/arrêter la réplication sur les serveurs esclaves.
ALL (admin) – l'utilisateur obtenant ce privilège se voit automatiquement attribuer tous les droits dans le cadre du niveau de privilège (tous les privilèges possibles en principe, selon le contexte d'attribution). Seul le privilège GRANT OPTION n'est pas attribué dans ce cas.
Attribution des privilèges pour les utilisateurs MySQL dans ISPmanager5
Sur la page principale d'ISPmanager, accédez à « Tools → Bases de données ».

Dans l'interface de gestion des bases de données qui s'ouvre, créez une nouvelle base de données en cliquant sur le bouton Créer.


Si la base de données existe déjà, sélectionnez-la et cliquez sur Utilisateurs pour accéder à l'interface de gestion des utilisateurs de la base de données.

À noter que lors de la création d'une nouvelle base de données, il est possible de créer immédiatement un nouvel utilisateur qui sera associé à cette base de données. Il est également possible de sélectionner un utilisateur existant, qui sera lui aussi automatiquement assigné à cette base de données.
L'interface de gestion de la base de données affiche la liste de tous les utilisateurs du compte ISPmanager en cours. Pour modifier les permissions, sélectionnez l'utilisateur souhaité et cliquez sur « Modifier ».

Vous verrez alors tous les droits pouvant être attribués à cet utilisateur :

Par défaut, tous les droits sont attribués lors de la création d'un utilisateur et d'une base de données.
Ce guide concerne le nouveau design du panneau de contrôle ISPmanager5, disponible ici.