Version 1.2

Droits du producteur d’une vue sur les sources

Dans la documentation, ajout de la partie Cas particulier des vues et vues matérialisées et d’un paragraphe dans la présentation du rôle g_consult pour évoquer la question des droits à attribuer lors de la création d’une vue, notamment les droits du producteur du schéma de la vue sur les données sources. Ceux-ci ne sont pas gérés automatiquement par ASGARD, car ils requièrent un choix de la part de l’administrateur.

La fonction de diagnostic asgard_diagnostic identifie désormais comme anomalies les cas de vues, matérialisées ou non, dont le propriétaire (producteur du schéma) n’est pas au moins lecteur sur les schémas contenant les sources.

De plus, lors de la création d’une vue ou vue matérialisée par l’éditeur de requêtes, l’utilisateur d’ASGARD sera désormais averti par un message si le producteur ne dispose pas des droits nécessaires sur les données sources.

Merci à Dominique Choquet (DDTM 40) pour son retour.

Choix de la cible de la fonction de diagnostic

La fonction de diagnostic peut désormais être appliquée à une liste restreinte de schémas.

Privilèges attribués « WITH GRANT OPTION »

La fonction de diagnostic signale désormais comme anomalies non critiques les privilèges attribués WITH GRANT OPTION.

Plus généralement, la partie Compatibilité avec les mécanismes usuels de gestion des droits de la documentation revient maintenant sur l’usage des différents mécanismes de gestion des droits dans le contexte d’une base asgardisée : privilèges définis manuellement avec GRANT/REVOKE, WITH GRANT OPTION, privilèges par défaut, WITH ADMIN OPTION et NOHINERIT.

Sur une autre note, g_admin reçoit désormais le privilège CREATE WITH GRANT OPTION – et plus simplement CREATE – sur les bases où ASGARD est installé, afin qu’il puisse déléguer ce privilège à d’autres rôles même s’il n’est pas propriétaire de la base (qui appartient souvent à un super-utilisateur).

Adaptation aux évolutions d’AsgardMenu

Depuis la version 0.1.2, le plugin QGIS AsgardMenu ne requiert plus ni la vue qgis_menubuilder_metadata, ni la table asgard_parametre. Toutes deux disparaissent en conséquence dans la présente version de l’extension PostgreSQL ASGARD.

La vue asgardmenu_metadata a été amendée pour fournir les informations sur les droits de l’utilisateur qui permettent l’usage d’icônes différentes dans le menu lorsque l’utilisateur est producteur ou éditeur du schéma contenant les données.

En parallèle, la vue asgardmenu_metadata a été fortement simplifiée – les jointures avec les tables pg_class (table système de PostgreSQL contenant les informations relatives aux tables et vues) et geometry_columns (table de l’extension PostGIS contenant les informations relatives aux champs de géométrie) sont reportées dans le code d’AsgardMenu – afin qu’à l’avenir les évolutions du plugin ne soient plus systématiquement conditionnées par des évolutions de l’extension ASGARD PostgreSQL.

Suite à ce changement, l’extension PostgreSQL ASGARD n’est plus dépendante de l’extension PostGIS. Cette dernière a donc été retirée de la liste des extensions requises spécifiée dans le fichier asgard.control. À noter qu’AsgardMenu reste, lui, dépendant de PostGIS et renverra un message d’erreur s’il est activé sur une base où l’extension PostGIS n’est pas installée.

La documentation tient compte de ces modifications. Elle a également été actualisée pour intégrer les fonctionnalités nouvelles apportées par les dernières versions d’AsgardMenu.

Attention

ASGARD 1.2.1 n’est plus compatible avec les versions d’AsgardMenu antérieures à la 0.2.0.

Adaptation aux évolutions d’AsgardManager

Ajout de la vue asgardmanager_metadata, qui met à disposition les données de gestion_schema nécessaires au fonctionnement du plugin QGIS AsgardManager.

Import de données

La documentation a été enrichie d’un passage sur l'import de données, qui explique notamment comment procéder avec les scripts SQL qui contiennent des commandes de création de schémas.

Merci à Dominique Choquet (DDTM 40) pour son retour.

Détection des dépendances dans d’autres bases par la fonction de ré-affection/suppression des droits

La fonction asgard_reaffecte_role retourne désormais la liste des bases dans lesquelles le rôle a encore des droits. Ceci pourra notamment être utile en cas de préparation de la suppression d’un rôle, pour identifier rapidement toutes les bases sur lesquelles la fonction asgard_reaffecte_role devra être lancée.

Présentation de la « gamme ASGARD » dans la documentation

La documentation d’ASGARD prend désormais en compte l’existence d’AsgardManager. L’introduction a été largement retravaillée et complétée pour une présentation plus claire de ces trois outils.

Distribution automatique des scripts d’ASGARD sur les serveurs EOLE/PostgreSQL

La version 1.2 sera la première à être distribuée automatiquement sur les serveurs de l’offre EOLE/PostgreSQL MTE-MCTRCT-Mer. Ainsi, l’installation ou la mise à jour sur ces serveurs ne nécessitera plus d’intervention de l’administrateur système.

La partie relative à l'installation de l'extension a été ré-écrite en conséquence. À titre informatif, elle comprend un descriptif des options de paramétrage des serveurs EOLE relatives à ASGARD.

Merci à Philippe Loustaunau (MTE-MCTRCT-Mer/SG/SNUM) et à l’équipe du pôle produits serveurs du SNUM pour la mise en place du processus de synchronisation.

Corrections d’anomalies et divers

Correctif de robustesse sur la (non) détection par la fonction asgard_admin_proprietaire des types générés automatiquement par PostgreSQL. Dans le même esprit, asgard_diagnostic ne signale plus les anomalies sur les types générés automatiquement et le paragraphe de la documentation expliquant comment réagir face à ces anomalies a été supprimé.

Correction d’une anomalie sur asgard_synthese_role et asgard_synthese_role_obj, qui entraînait la production de requêtes invalides pour les types array.

Dans asgard_diagnostic, suppression des appels à la fonction parse_ident, qui n’existe pas sous PostrgreSQL 9.5. Cela a nécessité la création d’une petite fonction supplémentaire, asgard_parse_relident. Merci à Didier Leclerc (MTE-MCTRCT-Mer/SG/SNUM) pour son signalement.

Correction d’une anomalie qui faisait échouer la fonction asgard_diagnostic sous PostgreSQL 9.5 (valeur de type indéfini renvoyée dans le résultat de la fonction).

Correction d’une anomalie qui faisait échouer les fonctions asgard_deplace_obj et asgard_initialise_obj lorsqu’elles étaient appliquées à un type sous PostgreSQL 9.5 (valeur de type indéfini dans le résultat d’une requête).

Mise en compatibilité et exécution de la recette sous PostgreSQL 9.5 et 13 (initialement écrite pour PostgreSQL 10).

Ajout dans la documentation d’une partie décrivant très brièvement la mécanique interne d’ASGARD.