Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉER UN UTILISATEUR MYSQL AVEC DES DROITS SPÉCIFIQUES SUR UNE BASE PARTICULIÈRE


Information sur le tutorial

Catégorie :Base de données Date de création : 30/10/2005 10:28:35 Vu : 29 372 fois

Note :
10 / 10 - par 6 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Base MySQL multi-utilisateurs

Tutorial

Par défaut quand on développe un site, on est souvent Super User. Le problème est que si on se fait voler les mots de passe, la base MySQL devient vulnérable et peut être vidée de son contenu. Dans la mesure du possible, il faut créer autant d'utilisateurs MySQL qu'il y a d'accès différents à des tables de la base, quitte à ce que ce soit la même personne humaine qui se cache derrière tout çà.

On va utiliser phpMyAdmin pour créer l'utilisateur. Attention: pour créer un utilisateur, vous devez être Super User afin de pouvoir avoir accès à la base "mysql" de MySQL. L'utilisateur root est souvent agréé des pleins pouvoirs.

- Ouvrons phpMyAdmin: http://localhost/mysql/

- Pour permettre d'illustrer la manoeuvre, créez une base de test et éventuellement des tables

- Sur la page d'accueil de phpMyAdmin, cliquez sur le lien "Privilèges"

- Cliquez ensuite sur un petit lien "Ajouter un utilisateur"

- C'est après qu'il ne faut pas se tromper.
         > Nom d'utilisateur: c'est le login que vous utiliserez
         > Serveur: donnez l'alias localhost si MySQL est chargé sur la même machine que Apache, sinon fournissez l'IP du serveur distant
         > Mot de passe: il ne faut pas le perdre sinon l'utilisateur en cours de création ne pourra plus se connecter à sa base avec les privilièges qui vont lui être attribués. Le Super User root du serveur MySQL pourra rectifier le tir si nécessaire, car il a pouvoir sur toutes les bases (sauf s'il a lui aussi perdu ses pass)

- Après ces champs apparaissent les privilèges globaux. Il ne faut absolument pas cocher la moindre case, car l'utilisateur doit se méler uniquement de sa base, et pas celle des autres

- Généralement sauf indications techniques contraires, aucun quota n'est à prévoir. Vous pouvez donc tout laisser à zéro

- Validez l'utilisateur en cliquant sur Exécuter. On a alors la requète suivante. Elle commence par la clé GRANT, d'où la nécessité de root d'avoir des privilèges et de ne pas donner ces derniers à n'importe qui.

GRANT USAGE ON * . * TO 'WebMaster'@'localhost' IDENTIFIED BY '*********' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0

- L'utilisateur est créé. En revenant sur la page "Privilège" de l'accueil, vous devez vous assurer que le nouvel utilisateur est USAGE et qu'il n'est pas "GRANT".

- Cliquez sur la petite icône à côté de la colonne "Grant" afin de modifier les attributs de l'utilisateur en question. Vous remarquez dans la section "Changer les privilèges" qu'il est possible de redéfinir les privilèges globaux de l'utilisateur.

- Dans la section "Privilèges spécifiques à une base de données", sélectionnez la base désirée. Vous changez automatiquement de page.

- La section s'intitule "Changer les privilèges", mais assurez-vous que le titre de la page ressemble à : Utilisateur 'WebMaster'@'localhost' - Base de données test. Il faut être conscient que ces privilèges concernent uniquement la base attribuée à l'utilisateur et non l'ensemble des bases du serveur MySQL. Vous pouvez cocher toutes les cases, même celles de l'administration. L'utilisateur pourra gérer sa table comme il le souhaitera: il pourra ajouter des utilisateurs à sa base, mais pas à l'ensemble des bases du serveur.

- Validez ensuite avec Exécuter. On a la requète suivante :

GRANT ALL PRIVILEGES ON `test` . * TO 'WebMaster'@'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 droits donnés aux utilisateurs. Notamment, pour notre base "test", nous voyons:

root       localhost global                              ALL PRIVILEGES Oui
WebMaster  localhost spécifique à cette base de données  ALL PRIVILEGES Oui

- La base "mysql" doit toujours être accessible que par root.

Voilà c'est terminé. Ce sera plus rapide avec de l'habitude...

Tanguy ALTERT, http://altert.family.free.fr/

signaler à un administrateur
Commentaire de hakiman le 20/02/2008 12:06:09

merci pour ces infos
et continue

signaler à un administrateur
Commentaire de otman_otman le 30/04/2008 18:09:36

Bien
mais tu peu faire un exemple pratique pour une bonne explication.
merci pour le tuto.
contenue.

signaler à un administrateur
Commentaire de kissdragon le 31/01/2009 19:17:37

merci pour les info

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,109 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.