Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2006, 11h16   #1
Futur Membre du Club
 
Inscription : mars 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 57
Points : 17
Points : 17
Par défaut PHP / MySQL : Création d'utilisateurs dans la DB par code PHP

Bonjour à tous ...

J'aimerais, avec du code PHP lors d'une gestion d'utilisateur, pouvoir ajouter un utilisateur dans l'administration de MySQL et lui ouvrir les droits au niveau de ma base de donnée bien spécifique.

J'utilise ce code :

Code :
1
2
3
4
 
$sql_query = 'Create User \''.$_POST['login'].'\'@\'localhost\' Identified By \''.$_POST['pass'].'\';';
$sql_query2 = 'GRANT ALL PRIVILEGES ON \'pointage\_fiche\'.* TO \''.$_POST['login'].'\'@ \'localhost\'  
    WITH GRANT OPTION ;';
Lors de l'exécution, si la création de l'utilisateur se passe convenablement, j'ai une erreur lors des privilèges ... Et je n'arrive pas à trouver d'où cela vient.

Merci d'avance
Sangdrax1604 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 12h09   #2
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
Salut Sangdrax1604

Alors je suis pas admin mysql mais je pense que tu devrais troiuver ton bonheur sur dev.mysql.com/doc

mais une lecture rapide me ferait dire de tester sans la clause "with grant option".

bon dev'
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 12h32   #3
Futur Membre du Club
 
Inscription : mars 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 57
Points : 17
Points : 17
J'ai testé, avec tout ce que je pensais d'imaginable ... Mais je ne vois pas où je fais une erreur ...

Lorsque je fait un "echo" de mes requêtes et que je fais un copier/coller dans phpMyAdmin, il me sort une erreur de syntaxe au niveau du GRANT.

Ce que je ne pige pas, c'est que pour faire cette requête, j'avais déjà fait un copier/coller à partir de phpMyAdmin lorsque j'ai modifié "manuellement" les privilèges ...
Sangdrax1604 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 12h56   #4
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548
si en manuel ça marchait, alors peut-être ton pb vient-il d'un caractère d'échappement ( \ ).
Que donne ton echo $sql_query2 ?
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 13h36   #5
Futur Membre du Club
 
Inscription : mars 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 57
Points : 17
Points : 17
Voilà ce que cela donne

Code :
1
2
3
 
CREATE User 'test'@'localhost' IDENTIFIED BY 'test';
GRANT ALL PRIVILEGES ON 'pointage\_fiche'.* TO 'test'@'localhost' WITH GRANT OPTION ;
Sangdrax1604 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 16h26   #6
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 526
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 526
Points : 548
Points : 548

perso, je ne vois pas très bien pourquoi? mais chez moi ça fonctionne :

si l'utilisateur est créée
Code :
SELECT host, user FROM mysql.user;
et si tu as les privilèges sysadmin (ou équivalent) car GRANT OPTION permet de partager son privilège je crois, tu peut essayer :
Code :
GRANT ALL ON *.* TO username
la syntaxe complète:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
    ON {tbl_name | * | *.* | db_name.*}
    TO user [IDENTIFIED BY [PASSWORD] 'password']
        [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
    [REQUIRE
        NONE |
        [{SSL| X509}]
        [CIPHER cipher [AND]]
        [ISSUER issuer [AND]]
        [SUBJECT subject]]
    [WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR count |
                          MAX_UPDATES_PER_HOUR count |
                          MAX_CONNECTIONS_PER_HOUR count]]
les clauses entre [] sont facultatives, amuse toi bien...
bon dev'
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 17h46   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

En passant, je vous invite tous à lire cet avertissement : http://securite.developpez.com/faq/?..._sql_injection
Pour y parer, il suffit d'utiliser la fonction mysql_real_escape_string().
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h20.


 
 
 
 
Partenaires

Hébergement Web