IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

PHP / MySQL : Création d'utilisateurs dans la DB par code PHP


Sujet :

Administration MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Points : 44
    Points
    44
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    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 monde se divise en deux: ceux qui utilisent le tag et les autres.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    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 ...

  4. #4
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    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 monde se divise en deux: ceux qui utilisent le tag et les autres.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Points : 44
    Points
    44
    Par défaut
    Voilà ce que cela donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Create User 'test'@'localhost' Identified By 'test';
    GRANT ALL PRIVILEGES ON 'pointage\_fiche'.* TO 'test'@'localhost' WITH GRANT OPTION ;

  6. #6
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut

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

    si l'utilisateur est créée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    grant all on *.* to username
    la syntaxe complète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 monde se divise en deux: ceux qui utilisent le tag et les autres.

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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().

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP/MySQL] Prob d'enregistrement dans la base
    Par mmz dans le forum Administration
    Réponses: 15
    Dernier message: 14/06/2006, 10h39
  2. [SGBD] [PHP/MySQL] pb d'UPDATE dans la bdd
    Par sagitarium dans le forum Requêtes
    Réponses: 7
    Dernier message: 19/05/2006, 17h25
  3. Réponses: 3
    Dernier message: 19/04/2006, 18h44
  4. [php/mysql]Controle de requete dans un champ de saisie
    Par rdams dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/03/2006, 10h57
  5. [PHP-MySQL]Création de base de donnéeavec php
    Par steeves5 dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 20/02/2006, 20h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo