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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] Mise en place d'une configuration multi-utilisateurs [phpMyAdmin]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut [Configuration] Mise en place d'une configuration multi-utilisateurs
    bonjour à tous

    j'essaye avec un peu de mal à creer un systeme de login/password afin d'acceder à Phpmyadmin

    j'ai changé le pwd de root, et ça marche

    par contre, lorsque que je créé un autre user (dans la table user) plus rien ne va.
    j'arrive à me connecter avec le login là c ok , mais login + pwd, ça ne marche pas

    voici les pages :

    .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    # Controle des l'acces aux utilisateurs
     
    AuthUserFile "/home/.htpasswd"
     
    AuthName Authentification 
    AuthType Basic 
    <Limit GET POST>
    require user admin
     
    </Limit>
    .htpasswd
    dans le config.inc.php j'ai bien X2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $cfg['Servers'][$i]['auth_type']     = 'http';    
    $cfg['Servers'][$i]['user']          = 'admin';      
    $cfg['Servers'][$i]['password']      = 'admin';
    j'ai crypté le pwd de admin (puisque celui de root est crypté et qu'avec ça marche) mais ça ne marche pas plus que si je ne l'avais pas crypté.

    je ne comprends pas pourquoi avec le "admin" ça ne marche pas..
    j'ai bien mis "admin" avec tous les privilèges, comme pour "root"

    si quelqu'un pourrait m'aider ça serait vraiment gentil, car là je galère..

    merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    La configuration multi-utilisateur (http ou cookie) est gérée par phpMyAdmin suivant les "utilisateurs déclarés" dans les tables de la base mysql et non à l'aide d'un fichier htpasswd. Les champs user et password du tableau de configuration sont réservés à une configuration mono-utilisateur (donc config). Pour les deux autres modes (http et cookie) il faut créer un utilisateur MySQL pour phpMyAdmin, avec accès partiel en lecture sur cette base, afin qu'il puisse procéder à la vérification de l'authentification.

    Voici les requêtes qu'il faut effectuer pour créer cet utilisateur de contrôle :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    -- Création de l'utilisateur
    GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'mot_de_passe';
     
    -- Définition de ses droits
    GRANT SELECT ON mysql.db TO 'pma'@'localhost';
    GRANT SELECT ON mysql.host TO 'pma'@'localhost';
    GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'pma'@'localhost';
     
    -- MySQL >= 4.0.2
    GRANT SELECT (
        Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
        Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
        Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
        Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO 'pma'@'localhost';
     
    -- MySQL < 4.0.2
    /*GRANT SELECT (
        Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
        Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
    ) ON mysql.user TO 'pma'@'localhost';*/

    Ensuite dans la configuration de phpMyAdmin (config.inc.php), de mémoire, il s'agit plutôt de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $cfg['Servers'][$i]['auth_type']     = 'http';    
    $cfg['Servers'][$i]['user']          = '';
    $cfg['Servers'][$i]['password']      = '';
    $cfg['Servers'][$i]['controluser']          = 'pma'; # Login donné plus haut
    $cfg['Servers'][$i]['controlpass']      = '*****'; # Son mot de passe
    Ensuite vous pouvez créer tous les utilisateurs (MySQL) et bases que vous voulez.


    Julp.

  3. #3
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    merci pour ta réponse
    j'ai une erreur avec cette requete et je ne vois pas où est l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GRANT  SELECT ( Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv ) ON mysql.user TO  'xxx'@localhost
    les 2 autres requetes ont bien fonctionné
    pour 'xxx'@localhost, yavé pa de '' autour de localhost

    voici l'erreur :
    #1064 - Erreur de syntaxe près de ''xxx'@localhost' à la ligne 1

    grrrrrrrrrrrr

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Aucune erreur de mon côté (testé avec MySQL 4.1.9 sous Windows). Quelle version utilisez-vous ? Comment exécutez-vous les requêtes ?

    Notez, comme commentez ci-dessus, que la requête en question varie en fonction de la version de MySQL.


    Julp.

  5. #5
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    je suis à la version 4.0.15
    j'ai testé les 2 requetes mais ça ne marche po ... :s

    j'execute els requetes avec phpmyadmin.

    jvais le faire manuellement , jvais mettre 'Y' partout

  6. #6
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    c'est ok!!!
    ça marche

    alors du coup, d'avoir utiliser le .htaccess et .htpasswd, ça ne sert à rien?

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par oceane751
    alors du coup, d'avoir utiliser le .htaccess et .htpasswd, ça ne sert à rien?
    C'est ce que j'essayais de vous expliquer plus haut () : pour une authentification utilisateur : non. phpMyAdmin intègre déjà cette fonctionnalité mais encore faut-il le configurer en mode multi-utilisateurs (ce que vous avez fait). Pour cela, il se base sur les utilisateurs MySQL pour procéder à l'authentification. Cela permet :
    • l'authentification de chaque utilisateur et de leur accorder des droits limités ou non (par rapport aux requêtes qu'ils peuvent exécuter, les bases/tables sur lesquelles peuvent être effectuées ces requêtes)
    • si quelqu'un arrive à lire le fichier de configuration de phpMyAdmin, les dégâts seront beaucoup plus limités (au mieux on ne donne qu'un accès en lecture aux tables liées aux utilisateurs)


    Plus d'informations dans la doc.


    Julp.

  8. #8
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ok merci beaucoup pour toutes ces info

    mas je voudrai savoir dans quel cas on utilise le .htaccess et .htpsswd?
    quand on met son site sur internet?

    merci encore

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par oceane751
    mas je voudrai savoir dans quel cas on utilise le .htaccess et .htpsswd?
    Pour restreindre à l'aide d'une authentification l'accès à une partie d'un site. C'est un mécanisme très simple et facile à mettre en place mais présente de nombreuses "limites" : à maintenir tout d'abord, en terme de validité de l'identification dans le temps, (sécurité). Donc je dirais quand il y a peu d'utilisateurs, peu de maintenance à faire (ajout, suppression des utilisateurs, modifications des mots de passe, ...). Ceci dit on pourrait plus ou moins automatiser ces tâches par un script ou une application.

    On peut implémenter assez rapidement un système plus évolué en PHP à l'aide des sessions et une gestion des utilisateurs en bases de données (inscription par eux-mêmes, modification du mot de passe et les gérer via une partie administrative, ...).

    Il faut savoir qu'Apache peut aussi utiliser des bases de données ou annuaire pour gérer l'authentification (apparence identique à celle d'un htacces/htpasswd) à condition d'installer le module adéquat et de le configurer. Il est courant de recourir à cette méthode pour interfacer une base de données déjà existante à tout autre but.


    Julp.

  10. #10
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Citation Envoyé par julp
    La configuration multi-utilisateur (http ou cookie) est gérée par phpMyAdmin suivant les "utilisateurs déclarés" dans les tables de la base mysql et non à l'aide d'un fichier htpasswd. Les champs user et password du tableau de configuration sont réservés à une configuration mono-utilisateur (donc config). Pour les deux autres modes (http et cookie) il faut créer un utilisateur MySQL pour phpMyAdmin, avec accès partiel en lecture sur cette base, afin qu'il puisse procéder à la vérification de l'authentification.

    Voici les requêtes qu'il faut effectuer pour créer cet utilisateur de contrôle :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    -- Création de l'utilisateur
    GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'mot_de_passe';
     
    -- Définition de ses droits
    GRANT SELECT ON mysql.db TO 'pma'@'localhost';
    GRANT SELECT ON mysql.host TO 'pma'@'localhost';
    GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'pma'@'localhost';
     
    -- MySQL >= 4.0.2
    GRANT SELECT (
        Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
        Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
        Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
        Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO 'pma'@'localhost';
     
    -- MySQL < 4.0.2
    /*GRANT SELECT (
        Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
        Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
        File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
    ) ON mysql.user TO 'pma'@'localhost';*/

    Ensuite dans la configuration de phpMyAdmin (config.inc.php), de mémoire, il s'agit plutôt de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $cfg['Servers'][$i]['auth_type']     = 'http';    
    $cfg['Servers'][$i]['user']          = '';
    $cfg['Servers'][$i]['password']      = '';
    $cfg['Servers'][$i]['controluser']          = 'pma'; # Login donné plus haut
    $cfg['Servers'][$i]['controlpass']      = '*****'; # Son mot de passe
    Ensuite vous pouvez créer tous les utilisateurs (MySQL) et bases que vous voulez.


    Julp.
    Bonjour, je fais remonter ce vieux sujet car j'avais le même problème que ociane751, pour info j'utilise WAMP5 v1.6.6 sur Windows XP pro SP2

    J'ai donc fais toutes ces manips, et cela fonctionne "un peu", c'est-à-dire sur mon PC où il y a les BD MySQL, quand je veux accéder à phpmyadmin (v2.9.0.1) il me demande bien un login/password et cela fonctionne, sachant que je me connecte en root, mais par contre quand je clique sur "exit", il me redemande un login/password et là il ne reconnaît plus personne !!

    Et à distance, sur un autre PC du réseau, quand j'essaye d'accéder à phpmyadmin, j'ai directement : "Forbidden - you don't have permission to access /phpmyadmin/ on this server".

    Voilà, merci d'avance pour vos réponses !
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  11. #11
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Petite précision de plus, en fait quand je suis en 'root' si je clique sur exit, dans les login/password, si je mets ceux de 'pma' ça marche, et inversement !!!

    Décidement, ce n'est pas simple ce truc !!!
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

  12. #12
    Membre expérimenté Avatar de shkyo
    Homme Profil pro
    Développeur Robotique - Administrateur systèmes
    Inscrit en
    Juin 2003
    Messages
    841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Robotique - Administrateur systèmes

    Informations forums :
    Inscription : Juin 2003
    Messages : 841
    Points : 1 474
    Points
    1 474
    Par défaut
    Citation Envoyé par shkyo
    Petite précision de plus, en fait quand je suis en 'root' si je clique sur exit, dans les login/password, si je mets ceux de 'pma' ça marche, et inversement !!!

    Décidement, ce n'est pas simple ce truc !!!
    Après une journée de recherche, j'ai enfin trouvé !
    Il y a un autre fichier à modifier c'est : C:\wamp\Apache2\conf\alias\phpmyadmin.conf

    Dans lequel il faut remplacer : "Allow from 127.0.0.1" par "Allow from all" ...

    Comme d'habitude, c'est toujours à cause d'une bricole au fin fond d'un fichier que cela déconne, c'est dingue !

    Quand à l'histoire du "exit", il suffit de quitter le navigateur et c'est bon.
    L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

    Ma (petite...) chaine Youtube : https://www.youtube.com/channel/UCy-...P2tH5UwOtLaYKw
    Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.fr/
    Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30

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

Discussions similaires

  1. Mise en place d'une application multi-couche
    Par thomasaurelien dans le forum Débuter
    Réponses: 1
    Dernier message: 17/08/2012, 16h46
  2. [Apache] Mise en place d'une page de maintenance
    Par divail dans le forum Apache
    Réponses: 5
    Dernier message: 02/02/2006, 09h58
  3. Réponses: 2
    Dernier message: 06/10/2005, 16h10
  4. Mise en place d'une solution Data Guard 9i R2
    Par user_oracle dans le forum Oracle
    Réponses: 4
    Dernier message: 16/02/2005, 10h12
  5. [VB.NET] Mise en place d'une progress bar
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 14
    Dernier message: 19/10/2004, 09h23

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