Lorsqu'on installe Drupal en local, on a souvent un accès "root" à sa base de données MySQL. "root" désigne l'utilisateur qui a tous les pouvoirs sur la base de données MySQL, et qui peut à ce titre effectuer toutes les opérations possibles (comme créer, modifier ou effacer des bases, des tables, des utilisateurs...). Autant dire que si une personne mal intentionnée s'empare du mot de passe de l'utilisateur root, elle peut complètement ruiner votre site.
Il est donc conseillé de créer autant d'utilisateurs MySQL qu'il y a d'accès différents à la base de données, quitte à ce que ce soit la même personne qui se cache derrière tout ça. Cela permet de donner des permissions spécifiques à chaque utilisateur en fonction de ses besoins, et en cas de piratage ou mot de passe volé, les dégâts seront limités aux privilèges dont l'utilisateur piraté disposait.
Nous allons donc créer un utilisateur spécifique à notre site Drupal, et pour ça nous allons utiliser phpMyAdmin (il est également possible de créer cet utilisateur en ligne de commande).
Pour effectuer les opérations qui suivent, vous devez vous connecter à phpMyAdmin avec un utilisateur disposant des privilèges suffisants (c.-à-d. des privilèges permettant de créer de nouveaux utilisateurs). Si vous avez un accès "root", c'est le moment de l'utiliser !
Marche à suivre
- Ouvrez phpMyAdmin. Si vous travaillez en local, l'adresse ressemblera à http://localhost/phpmyadmin/. Si vous utilisez les services d'un hébergeur, il a dû vous communiquer l'adresse de phpMyAdmin au moment de votre inscription.
- Depuis la page d'accueil de phpMyAdmin, créez une base de données drupal avec l'interclassement utf8_general_ci :
COPIE_ECRAN
- Revenez sur la page d'accueil de phpMyAdmin, et cliquez sur le lien Privilèges.
- Cliquez ensuite sur Ajouter un utilisateur.
- Dans la section Information pour la connexion, remplissez les champs suivants :
COPIE_ECRAN
- Nom d'utilisateur : login que vous utiliserez pour vous connecter à la base.
- Serveur : entrez
localhostsi MySQL tourne sur la même machine que Apache, sinon fournissez l'IP du serveur distant. - Mot de passe : ne le perdez pas sinon l'utilisateur en cours de création ne pourra plus se connecter à sa base avec les privilèges qui vont lui être attribués.
- En dessous des informations de connexion, on trouve la section Base de données pour cet utilisateur. Choisissez Aucune.
- Enfin, on trouve la section Privilèges globaux. IL NE FAUT COCHER AUCUNE CASE, car l'utilisateur doit se mêler uniquement de sa base, et pas de celle des autres (les privilèges globaux portent sur l'ensemble de MySQL). Sauf indications contraires, aucune limite de ressources n'est à prévoir, vous pouvez donc tout laisser à zéro.
- Validez l'utilisateur en cliquant sur Exécuter. La requête suivante est alors exécutée :
GRANT USAGE ON * . * TO 'drupal'@'localhost' IDENTIFIED BY '*********' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0
- Revenez sur la page "Privilèges" de l'accueil, et assurez-vous que le nouvel utilisateur a comme privilèges globaux "USAGE" et non pas "GRANT".
- Cliquez sur la petite icône à côté de la colonne "Grant" afin de modifier les privilièges de l'utilisateur drupal. En effet, il faut lui donner les permissions appropriées sur la base drupal créée précédemment.
- Ne touchez à rien dans la section "Privilèges globaux". Dans la section "Privilèges spécifiques à une base de données", sélectionnez la base drupal dans la liste déroulante. Vous changez automatiquement de page.
- Assurez-vous que le titre de la page ressemble à Utilisateur 'drupal'@'localhost' - Base de données drupal. Il faut être conscient que les privilèges activés sur la page concernent uniquement la base sélectionnée (drupal, en l'occurrence) et non l'ensemble des bases du serveur MySQL. Cochez alors les cases suivantes :
COPIE_ECRAN
- SELECT
- INSERT
- UPDATE
- DELETE
- CREATE
- DROP
- INDEX
- ALTER
- CREATE TEMPORARY TABLES
- LOCK TABLES
- Validez ensuite avec Exécuter. La requête suivante est exécutée :
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON `drupal` . * TO 'drupal'@'localhost' WITH GRANT OPTION
- Revenez sur la page d'accueil et cliquez sur "Bases de données". En cliquant sur l'image associée à chacune des bases, vous pouvez vous assurer des privilèges donnés aux utilisateurs. Notamment, pour notre base "drupal", nous voyons:
COPIE_ECRAN
IMPORTANT : La base "mysql" doit toujours n'être accessible que par l'utilisateur root.
C'est terminé ! Vous pouvez maintenant vous rendre à l'adresse où vous avez copié votre site Drupal, par exemple http://localhost/drupal/, et l'assistant d'installation se déclenchera automatiquement. Vous n'avez plus qu'à lui fournir les informations que vous venez d'utiliser dans phpMyAdmin (nom de la base, nom de l'utilisateur, mot de passe de l'utilisateur).


Exactement ce dont j'avais
Exactement ce dont j'avais besoin . Un grand merci
Ray
Merci pour ce tuto, c'est
Merci pour ce tuto, c'est très clair !
bonsoir merci pour le tuto
bonsoir
merci pour le tuto
juste ce qu'il me fallait super !!!!!!!!!!!!!!!!
Merci pour ce tutos car
Merci pour ce tutos car c'est un ami qui m'a présenté ce logi et je suis entraint de creer mon premier cms
Poster un nouveau commentaire