Problème d'installation avec BDD PostgreSQL

Cec_IdF
Messages : 6
Inscription : jeu. juil. 04, 2019 5:15 pm

cross Problème d'installation avec BDD PostgreSQL

Message par Cec_IdF » mar. juil. 30, 2019 1:24 pm

Bonjour,

Je rencontre un problème d'installation/démarrage de Squash TM avec une base de données PostgreSQL.
Je pense que mon problème peut être référencé aux conversations suivantes, qui décrivent possiblement le même problème : topics n°3737 et 3946

Voici l'environnement monomachine sur lequel je tente l'installation et le paramétrage :
- Windows Server 2012
- Java version 8 update 221
- PostgreSQL 9.5.18 (testé aussi avec la version 10.3 avec les mêmes résultats)
- Squash TM 1.20.0 (testé aussi sur la version 1.19.3 avec les mêmes résultats)

Après avoir bien déroulé toutes les étapes, en utilisant le package universel compatible Windows, le démarrage s'interrompt. Je ne peux apparemment pas charger de PJ donc j'ai mis à disposition le log à l'URL suivante pour une semaine : https://we.tl/t-qbZP9WzHYr

Je vous remercie par avance pour votre aide.

Cordialement, Cécile.

agoethals
Messages : 60
Inscription : mer. août 08, 2018 12:08 pm

Re: Problème d'installation avec BDD PostgreSQL

Message par agoethals » mar. juil. 30, 2019 2:26 pm

Bonjour,

il s'agit d'un problème de droits sur la base de données:
Caused by: org.postgresql.util.PSQLException: ERREUR: droit refusé pour la relation core_config
Cela survient par exemple quand c'est le rôle postgres qui a créé et peuplé la base, alors que c'est un autre rôle qui est défini pour la connexion de l'applicatif squash-tm à sa base de données (sur postgresql, un GRANT ALL ON DATABASE ne suffit pas, cela ne confère pas les droits sur les objets déjà créés de la base de données).
La meilleure façon d'éviter ce problème est de peupler la base de données de squash directement avec le rôle qui sera utilisé par l'applicatif.

Il faut altérer chaque table, chaque séquence, et chaque vue de la base de données de squash-tm pour en conférer la propriété au rôle utilisé par squash-tm. Cela peut être fastidieux, selon l'environnement de travail.
Dans le cas d'un serveur postgresql sur GNU/Linux, il est possible de le faire avec trois boucles for dans un shell:

Code : Tout sélectionner

Tables:
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" squashtm` ; do  psql -c "alter table \"$tbl\" owner to squashtm" squashtm ; done
Séquences:
for tbl in `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" squashtm` ; do  psql -c "alter sequence \"$tbl\" owner to squashtm" squashtm ; done
Vues:
for tbl in `psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" squashtm` ; do  psql -c "alter view \"$tbl\" owner to squashtm" squashtm ; done
Dans le cas où l'environnement n'est pas sensible (pré-production, recette), vous pouvez changer la configuration de squash-tm pour qu'il utilise le rôle postgres pour se connecter à la base de données.

Cec_IdF
Messages : 6
Inscription : jeu. juil. 04, 2019 5:15 pm

Re: Problème d'installation avec BDD PostgreSQL

Message par Cec_IdF » mar. juil. 30, 2019 3:43 pm

Bonjour agoethals,

Et tout d'abord merci pour votre réponse très rapide.
Je vais de ce pas procéder à ces modifications et je fais un retour dans la discussion quant aux résultats obtenus.

Cordialement, Cécile.

Cec_IdF
Messages : 6
Inscription : jeu. juil. 04, 2019 5:15 pm

solved Re: Problème d'installation avec BDD PostgreSQL

Message par Cec_IdF » mar. juil. 30, 2019 4:12 pm

Voici mon retour, après les manips suivantes :

- Suppression de la base PostgreSQL "squashtm" (elle était vide)
- Conservation du user "squash-tm" + affectation du rôle superuser : ALTER USER "squash-tm" WITH SUPERUSER;
- Re-création de la base "squashtm": CREATE DATABASE "squashtm" WITH ENCODING='UTF8';
- GRANT ALL PRIVILEGES ON DATABASE "squashtm" TO "squash-tm";
- Connexion à la base "squashtm" avec le user "squash-tm"
- Lancement du script de peuplement de la base avec cette connexion
- Révocation du rôle supersuser au user "squash-tm" : ALTER USER "squash-tm" WITH NOSUPERUSER;

Puis lancement du startup.bat paramétré : ça fonctionne.

Encore merci pour votre aide, j'espère que cela aidera quelques autres utilisateurs/trices pas très averti(e)s sur PostgreSQL :-)

Cécile.

Cec_IdF
Messages : 6
Inscription : jeu. juil. 04, 2019 5:15 pm

solved Re: Problème d'installation avec BDD PostgreSQL

Message par Cec_IdF » mar. juil. 30, 2019 5:19 pm

J'ai oublié de préciser que j'ai attribué le rôle superuser temporairement à l'utilisateur squash-tm car sans cela le script de peuplement de la base plantait du fait que l'utilisateur n'avait pas les droits nécessaires pour créer l'extension uuid_ossp.

Répondre