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 PostgreSQL Discussion :

problème d'identification pour utilisateur X


Sujet :

Administration PostgreSQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut problème d'identification pour utilisateur X
    Bonjour,
    je travaille sur un projet de site avec utilisateurs enregistrés, et là je butte sur le role pgsql utilisé pour la lecture de la table des membres.

    D'après ce que j'en ai lu, c'est une erreur de beginner courante, mais aucune de solutions proposées ne m'a résolu mon problème. :'(

    Le message d'erreur en question (j'utilise PDO)
    Erreur de connexion : SQLSTATE[08006] [7] FATAL: authentification Ident échouée pour l'utilisateur « connecteur »
    Voici mon pg_hba.conf ( /etc/postgresql/8.3/main/pg_hba.conf)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # Database administrative login by UNIX sockets
    local   all         postgres                          ident trust
     
    # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
     
    # "local" is for Unix domain socket connections only
    local   all         all                             ident trust
    local   all         all                               trust
    # IPv4 local connections:
    host    all         all         127.0.0.1/32          trust
    # IPv6 local connections:
    host    all         all         ::1/128               trust

    Comme vous pouvez le voir j'ai petit à petit tout mis à trust comme il est conseillé partout. Et même rajouté une ligne "local all all ident trust" pour voir si ça pouvait régler le problème.

    Les mots de passe sont bien les mêmes entre ceux demandés et ceux requis, le role "connecteur" appartient au groupe de la base de donnée (j'ai cru comprendre que postgresql préférait qu'on ai un utilisateur qui ai le nom de la base de donnée, j'ai donc créé un role qui a tous les droits sur cette base et ayant le même nom).


    Ais-je oublié quelque chose? Fait une bourde par inadvertance?

    Merci de votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Ais-je oublié quelque chose?
    Dans la question oui, tu oublies de dire ce que tu veux faire:
    - est-ce que tu veux te connecter du serveur vers lui-même en socket unix?
    - est-ce que tu veux te connecter du serveur vers lui-même (localhost) en TCP?
    - est-ce que tu veux te connecter d'une autre machine vers le serveur?
    - et dans tous les cas, veux-tu utiliser un mot de passe ou pas?

    D'autre part je ne suis pas sûr de ident ET trust en même temps, ce sont deux méthodes alternatives.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    =A priori, je pense que se connecter en socket est la plus efficace et la plus simple des solutions.

    Pour l'instant le serveur apache et pgsql est le même, je modifierais en conséquence les scripts quand on divisera les deux.

    Pour le mot de passe, oui il y en a un mais je ne pensait pas que ça puisse changer quelque chose...
    En fait je crois que tout découle de ma non connaissance de la signification de trust.

    J'ai pas bien compris la doc...
    C'est quoi en fait la différence entre trust, ident, et md5? (bon md5 j'ai une petite idée, mais ça fera pas de mal de la vérifier)

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    trust signifie que pour l'entrée en question, le mot de passe n'est pas nécessaire.
    Par exemple pour l'entrée:
    LOCAL ALL ALL trust
    ça veut dire que toute connexion locale (socket unix) à n'importe quelle base est autorisée pour n'importe quel utilisateur, sans mot de passe.
    On met ce genre d'entrées quand on a confiance dans tous les processus et utilisateurs de la machine.

    ident sameuser permet aussi de se connecter sans mot de passe, mais quand l'utilisateur système est le même que l'utilisateur bdd.

    md5 implique la fourniture par le client d'un mot de passe encrypté

    D'après la description que tu fais, tu pourrais laisser uniquement
    LOCAL ALL ALL trust
    mais le principal est je crois est de ne PAS avoir à la fois ident et trust sur la même ligne, je soupçonne que dans ton cas c'est ce qui empêche la connexion locale.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai retiré indent comme tu me le conseille.

    Malheureusement il n'y avait pas que ça. (positivons: un problème de réglé! )
    En console il m'est impossible de me connecter, quelque soit la base et quelque soit l'utilisateur.

    J'ai du "casser" quelque chose dans mon postgreSQL...

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Donc tu aurais un pg_hba.conf qui ressemblerait à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # Database administrative login by UNIX sockets
    LOCAL   ALL         postgres                          trust
     
    # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
     
    # "local" is for Unix domain socket connections only
    LOCAL   ALL         ALL                             trust
     
    # IPv4 local connections:
    host    ALL         ALL         127.0.0.1/32          trust
    # IPv6 local connections:
    host    ALL         ALL         ::1/128               trust
    As tu pensé à faire un reload du serveur après la modif de ce fichier?

    Et sinon quelle est la ligne de commande que tu utilises pour te connecter en console, et quel est le message d'erreur qui apparait dans le fichier de log du serveur?

Discussions similaires

  1. problème connexion à sqlplus pour un utilisateur seulement
    Par Erielle dans le forum Connexions aux bases de données
    Réponses: 3
    Dernier message: 29/08/2011, 11h33
  2. Recherche template de site avec identification pour les utilisateurs
    Par davidkungfu dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 04/08/2010, 20h18
  3. [pam_mkhomedir] Problème de droit pour créer le profil utilisateur dans un dossier
    Par arnaudperfect dans le forum Administration système
    Réponses: 1
    Dernier message: 09/07/2010, 17h03
  4. Problème d'identification pour connection UNC
    Par Themacleod1980 dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 08/04/2010, 18h09
  5. Réponses: 3
    Dernier message: 13/12/2006, 22h21

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