Closed alhyss closed 6 days ago
Solution palliative : créer manuellement le rôle "consult.defaut"
avant la première activation d'Asgard sur une base du serveur.
CREATE ROLE "consult.defaut" LOGIN PASSWORD '1*MotDePasseAssezRobuste' ;
CREATE EXTENSION asgard ;
Dans la prochaine version d'Asgard, on pourrait imaginer soit durcir le mot de passe du rôle "consult.defaut"
d'une manière générale, soit uniquement quand passwordcheck
est actif, en procédant par exemple de la manière suivante :
-- Role: "consult.defaut"
IF NOT 'consult.defaut' IN (SELECT rolname FROM pg_catalog.pg_roles)
THEN
IF NOT (
SELECT setting ~ '^(.*,\s*)passwordcheck\s*,'
FROM pg_settings
WHERE name = 'shared_preload_libraries'
)
THEN
CREATE ROLE "consult.defaut" WITH
LOGIN
PASSWORD 'consult.defaut'
NOSUPERUSER
INHERIT
NOCREATEDB
NOCREATEROLE
NOREPLICATION
NOBYPASSRLS ;
ELSE
CREATE ROLE "consult.defaut" WITH
LOGIN
PASSWORD '1*MotDePasseAssezRobuste'
NOSUPERUSER
INHERIT
NOCREATEDB
NOCREATEROLE
NOREPLICATION
NOBYPASSRLS ;
END IF ;
COMMENT ON ROLE "consult.defaut" IS 'Rôle de connexion générique pour la consultation des données publiques. Membre de g_consult.' ;
END IF ;
consult.defaut
est désormais créé avec le mot de passe 'AccèsDonnéesPubliques'
qui est visiblement acceptable du point de vue de passwordcheck. Si le rôle existe déjà, son mot de passe ne sera pas automatiquement modifié. Un changement manuel pourra être nécessaire en cas de migration sur un serveur où le module passwordcheck est activé.
Lorsque le module passwordcheck est actif sur le serveur, la première tentative d'activation d'Asgard v1.4.0 se solde par l'erreur suivante :
Il n'y a pas d'erreur si le rôle
"consult.defaut"
existe déjà, Asgard ne tentant alors pas de le recréer.