Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je souhaite travailler sur l’application ODOO. De ce fait j’ai installé PostgreSQL 13, ODOO 14 et Python 3.9.
Malheureusement ODOO ne se connecte pas au serveur PostgreSQL, dans les log j’ai le message suivant :
2021-09-22 16:02:05.758 CEST [17280] FATAL: le rôle « AurélieFougère » n'existe pas
La connection à PostgreSQL se fait via mon identifiant Windows, et nom via le user « odoo ».
J’ai suivi les conseils de différents utilisateurs, et ai crée un rôle en respectant les majuscules ou tout en minuscules…sans succès
postgres=# \du
Liste des r¶les
Nom du r¶le | Attributs | Membre de
-----------------+---------------------------------------------------------------------------------+-----------
AurÚlieFougÞre | Superutilisateur, CrÚer un r¶le, CrÚer une base | {}
AurélieFougère | Superutilisateur, CrÚer un r¶le, CrÚer une base | {}
auréliefougère | Superutilisateur, CrÚer un r¶le, CrÚer une base | {}
odoo | Superutilisateur, CrÚer un r¶le, CrÚer une base, RÚplication | {}
postgres | Superutilisateur, CrÚer un r¶le, CrÚer une base, RÚplication, Contournement RLS | {}
testuser | Superutilisateur, CrÚer un r¶le, CrÚer une base | {}
A chaque modification, j’ai redémarré le serveur postgresql.
Merci pour votre aide
Hors ligne
Votre soucis vient probablement des accents. Personnellement, j'aurais plutôt tendance à n'utiliser que les caractères ASCII pour le nommage des objets (rôles comme bases, tables, vues, etc). Les problèmes liés aux encodages sont trop faciles pour s'embêter avec ça.
Guillaume.
Hors ligne
Merci pour ta réponse.
Je suis d'accord avec toi, je pense que c'est un problème d'accent mais je ne peux pas modifier mon identifiant Windows...donc j'espère que quelqu'un qui a rencontré le même problème et qui l'a solutionné, saura me conseiller ;-)
Hors ligne
Le logiciel force l'utilisateur de connexion? Cela me semble un bien mauvaise idée mais soit.
Le problème vient bien de l'encodage, il faudrait savoir quel est l'encodage utilisé soit par odoo soit par windows pour votre user. Peut être que copier/coller le nom d'utilisateur depuis les logs suffirait créer le bon rôle.
Julien.
https://rjuju.github.io/
Hors ligne
Merci pour ta réponse Julien.
J'ai testé en faisant un copier/coller du user mentionné dans les log, mais ça n'a pas fonctionné j'ai toujours le même message d'erreur.
Hors ligne
Quand se produit l'erreur "FATAL: le rôle « AurélieFougère » n'existe pas" alors que \du montre que "AurélieFougère" est un rôle existant, c'est que les deux termes n'ont pas le même encodage.
Typiquement celui mentionné dans le fichier de log est encodé en UTF-8 alors que celui de la base est en LATIN1 ou vice versa.
Pour savoir quel est l'encodage en base, on peut afficher les codes des caractères via une requête. Par exemple:
test=> create user "Aurélie";
CREATE ROLE
test=> select r,r::bytea from pg_user, regexp_split_to_table(usename,'') as r where usename like 'Aur%';
r | r
---+--------
A | \x41
u | \x75
r | \x72
é | \xc3a9
l | \x6c
i | \x69
e | \x65
(7 lignes)
Le code \xc3a9 en face du 'é' montre que c'est de l'UTF-8 ,ce qui correspond effectivement à mon environnement quand je fais CREATE USER. Si c'était \xe9 ça montrerait que c'est du LATIN1. Si l'authentification n'utilise pas le même encodage que ce qui est en base, ça explique pourquoi ça n'arrive pas à se connecter.
En principe on privilégie l'UTF-8 parce qu'il englobe tous les caractères de toutes les langues. Si nom d'utilisateur n'est pas stocké dans le bon encodage, il faudrait le recréer dans un environnement UTF-8 sûr (c.a.d. à mon sens pas la console Windows).
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Merci Daniel pour ta réponse
J'ai exécuté la commande que tu as indiqué, et j'obtiens ceci :
A | \x41
u | \x75
r | \x72
é | \xe2809a
l | \x6c
i | \x69
e | \x65
F | \x46
o | \x6f
u | \x75
g | \x67
è | \xc5a0
r | \x72
e | \x65
A | \x41
u | \x75
r | \x72
é | \xe2809a
l | \x6c
i | \x69
e | \x65
Je n'ai pas trouvé de correspondance avec le caractère \xe2809a...en tout cas ce n'est pas de l'UTF-8!
Je vais essayé de voir si je peux renommer mon identifiant Windows.
Hors ligne
Pages : 1