PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Erreur accès natif Postgresql 13
Erreur accès natif Postgresql 13
Débuté par Philippe SB, 04 déc. 2020 09:29 - 8 réponses
Membre enregistré
2 574 messages
Popularité : +222 (260 votes)
Posté le 04 décembre 2020 - 09:29
Bonjour,

Quelqu'un a-t-il réussi à se connecter sur une base postgresql 13 configurée avec une authentification scram-sha-256 ?

J'ai bien installé nouvelle couche client de postgresql 13, dans le répertoire framework et dans le répertoire de l'exe au cas où, mais rien à faire j'ai invariablement cette erreur
Erreur de l'accès natif PostgreSQL.
Numéro d'erreur = 22 
 
L'erreur suivante a été renvoyée par la base de données <192.168.0.215> :
Numéro d'erreur = <0>.
Message d'erreur :
authentication method 10 not supported


L'accès natif n'est-il pas compatible ??? Ce serait fort dommage car i l est bien spécifié dans l'aide:

Il est conseillé d'utiliser une couche cliente PostgreSQL récente, de préférence de la même version que votre serveur.
Pour cela, vous devez :
•Copier les DLLs de la couche client PostgreSQL dans le répertoire d'installation de WINDEV ou WEBDEV du poste de développement. 
•Copier les DLLs de la couche client PostgreSQL dans le répertoire de l'exécutable ou dans le répertoire de Windows du poste de déploiement.


Merci d'avance

--
Cordialement,

Philippe SAINT-BERTIN
Membre enregistré
88 messages
Popularité : +3 (3 votes)
Posté le 16 décembre 2020 - 19:06
Bonjour

J'ai eu le même problème. Il faut éditer le fichier C:\Program Files\PostgreSQL\13\data\pg_hba.conf et remplacer, tout en bas dans la "colonne" METHOD, scram-sha-256 par trust à toutes les lignes. Attention, la bd est donc moins sécurisée. Moi c'est pour un test sur ma machine de dev.

https://stackoverflow.com/questions/64474420/postgresql-authentication-method-10-not-supported

--
Bon dev.

Patrick Lalemand
Des outils pour développeurs sur https://www.lapalys.ca
Membre enregistré
2 574 messages
Popularité : +222 (260 votes)
Posté le 17 décembre 2020 - 08:18
J'ai eu une réponse du ST disant que la couche client n'est pas la bonne. Il faut que la couche client soit en 32 bits pour une application en 32 bits. Or il n'existe plus de version 32 bits de postgresql depuis la 11.

Cela implique de compiler tous les projets en 64 bits ce qui est une totale hérésie. De plus, j'utilise des applis tiers notamment DBeaver qui est une version 32 bits et qui fonctionne très bien avec les dlls en 64 bits.

J'ai donc beaucoup de mal à comprendre le fonctionnement...

--
Cordialement,

Philippe SAINT-BERTIN
Membre enregistré
2 574 messages
Popularité : +222 (260 votes)
Posté le 17 décembre 2020 - 10:24
D'ailleurs si je mets la dll Postgresql 10 en 32 bits je n'ai plus le problème.

--
Cordialement,

Philippe SAINT-BERTIN
Membre enregistré
173 messages
Popularité : +7 (7 votes)
Posté le 21 décembre 2020 - 12:26
Bonjour,

Surtout ne pas mettre en 'trust'. Trust = quiconque peut se connecter au serveur est autorisé à accéder à la base de données quel que soit le nom d'utilisateur de base de données qu'il fournit. L'authentification trust n'est pas appropriée sur une machine multi-utilisateur.

--
Cordialement
Olivier DUCTEIL
Posté le 21 décembre 2020 - 13:00
Vous pouvez utiliser "password", le mot de passe sera transmis en clair, mais c'est toujours mieux que trust.

Peut-être que l'utilisation de https en combinaison avec "password".
Posté le 21 décembre 2020 - 13:19
En fait j'ai trouvé une solution qui utilise un hash MD5 et devrait donc suffire pour la plupart des utilisateurs:
1) dans le fichier "postgresql.conf" modifier la ligne suivante en "md5" au lieu de "scram-sha-256"
password_encryption = md5 # md5 or scram-sha-256

2) dans le fichier pg_hba.conf, modifiez la méthode en md5:
host all all 127.0.0.1/32 md5

Puis à partir de pgAdmin4 (par exemple):
3) effectuez un reload du serveur

4) modifier le mot de passe de l'utilisateur: vous pouvez remettre le même, mais comme ça il sera en md5

Réessayer votre opération.

Cette solution est basée sur la page d'aide suivante, qui explique qu'en fonction du hash du mot de passe, la méthode scram-sha-256 sera automatique:
https://www.postgresql.org/docs/10/auth-methods.html

En espérant que ça vous aide
Membre enregistré
2 574 messages
Popularité : +222 (260 votes)
Posté le 21 décembre 2020 - 15:44
Par contre quand tu vas créer de nouveaux utilisateurs, le mot de passe sera en md5 et non en scram-sha-256. Je en vois plus que 2 solutions à mon problème.

1. Générer uniquement une version 64 bits de mon application (les dll 32 bits n'existant plus)
2. utiliser les dll 32 bits de la version 10

Je pense plutôt me diriger vers une version 64 bits.

--
Cordialement,

Philippe SAINT-BERTIN
Posté le 21 décembre 2020 - 16:16
Effectivement, ma proposition consiste à utiliser MD5 et non sha-256.

Si tu tiens absolument à sauver tes mots de passe en sha-256 alors effectivement tu dois trouver autre chose ou attendre que le client Windev soit mis à jour. A mon avis sur un réseau local, c'est inutile d'avoir ce type de hash et md5 devrait suffire.

Bon courage
Maël