Vous n'êtes pas identifié(e).
Bonjour
je travaille sur un petit site ecommerce bâti avec Odoo 10 et Postgresql 9.2.23 sur Centos 7.3
Je suis sysadmin, pas DBA, et je connais très mal Postgres, même si avec le métier, je me débrouille.
Depuis quelques jours j'ai une erreur assez classique de droits d'accès que je ne parviens pas à résoudre. Journal de Postgresql (debug activé) :
ERREUR: 42501: droit refusé pour la relation sale_report
EMPLACEMENT : aclcheck_error, aclchk.c:3352
Même erreur pour qq autres relations, souvent celles liées à des vues d'enregistrement dans le back office d'Odoo.
Je sêche un peu pour réparer, je ne vois rien d'anormal avec la console PSQL, lancer des GRANT USAGE n'a rien donné.
Une idée ? et une explication de ce qui a pu se passer ?
Merci
Dernière modification par zeroheure (15/11/2017 21:10:24)
Hors ligne
J'oubliais :
Un dump de la base installé sur un serveur local ne produit pas cette erreur.
Hors ligne
Comme ça…
Comme indiqué, il n'a pas le droit demandé. Quel est ce droit ? Quel est l'ordre SQL (il devrait être tracé au même endroit, puisqu'il est en erreur) ? Quel utilisateur exécute la requête ? Qui est propriétaire de la relation ? Quelles ACL sont dessus ?
Marc.
Hors ligne
Laissez tomber j'ai réparé !... Comme bien des fois, alors que ça bloquait depuis plusieurs jours, il suffit de poser la question pour que la p'tite cervelle s'éveille et "voit" l'erreur : ne pas oublier le point-virgule après les commandes SQL. Désolé pour le bruit.
Par contre si quelqu'un peut m'expliquer comment le problème a pu arriver ?
Hors ligne
L'absence de point virgule ?
Marc.
Hors ligne
Non pas le point-virgule :-) le problème de droits d'accès. Alors qu'une base fonctionne bien, comment des droits peuvent-ils être modifiés ? j'ai forcément fait qq chose avec l'applicatif qui a eu un inpact, mais ce n'était que des choses normale et habituelles avec cet applicatif (Odoo). Comment ça peut changer comme ça ? et surtout pourquoi en installant une copie sur un autre serveur le problème n'apparaissait pas ?
Hors ligne
Si vous exportez une base, il y a des objets qui ne suivent pas, ceux qui sont globaux à l'instance: roles, tablespaces, et quelques autres. Dans votre cas, il pourrait y avoir une différence de déclaration des roles ? par exemple le role de connexion qui a un grant sur un autre rôle qui lui a le droit de faire les opérations demandées.
Marc.
Hors ligne
En principe les deux serveurs sont identiques, mais l'un me servant pour des tests il se peut que les rôles soient légèrement différents. Merci pour l'explication.
Hors ligne