MTES-MCT / asgard-postgresql

ASGARD. Système de gestion des droits pour PostgreSQL.
https://snum.scenari-community.org/Asgard/Documentation/co/SiteReference.html
Other
2 stars 3 forks source link

Recréation d'un schéma dans la corbeille #7

Closed alhyss closed 2 years ago

alhyss commented 2 years ago

Actuellement, lorsqu'un schéma est recréé après avoir été mis à la corbeille puis supprimé, il est recréé dans la corbeille (cf. détail du processus ci-après). Ce comportement est contre-intuitif. Un nouveau schéma ne devrait être créé dans la corbeille que si son bloc est explicitement défini comme 'd' par la commande de création.

Création du schéma :

CREATE SCHEMA a_schema ;
NOTICE:  [table de gestion] Mise à jour du bloc pour le schéma a_schema (a).
NOTICE:  ... Le schéma a_schema a été enregistré dans la table de gestion.
CREATE SCHEMA
nom_schema bloc creation
a_schema a true

Mise à la corbeille :

UPDATE z_asgard.gestion_schema_usr SET bloc = 'd' WHERE nom_schema = 'a_schema' ;
NOTICE:  [table de gestion] Le schéma a_schema a été mis à la corbeille (bloc = 'd').
HINT:  Si vous basculez creation sur False, le schéma et son contenu seront automatiquement supprimés.
UPDATE 1
nom_schema bloc creation
a_schema d true

Suppression :

UPDATE z_asgard.gestion_schema_usr SET creation = False WHERE nom_schema = 'a_schema' ;
NOTICE:  ... La suppression du schéma a_schema a été enregistrée dans la table de gestion (creation = False).
NOTICE:  ... Le schéma a_schema a été supprimé.
UPDATE 0
nom_schema bloc creation
a_schema d false

NB: le résultat est le même avec une commande directe DROP SCHEMA.

Recréation :

UPDATE z_asgard.gestion_schema_usr SET creation = True WHERE nom_schema = 'a_schema' ;
NOTICE:  [table de gestion] Le schéma a_schema a été mis à la corbeille (bloc = 'd').
HINT:  Si vous basculez creation sur False, le schéma et son contenu seront automatiquement supprimés.
NOTICE:  ... Le schéma a_schema a été créé.
UPDATE 1
nom_schema bloc creation
a_schema d true

NB: le résultat est le même avec une commande directe CREATE SCHEMA.

alhyss commented 2 years ago

Correctif envisagé : réinitialiser le bloc dans la table de gestion au moment de la suppression du schéma.

alhyss commented 2 years ago

Correctif développé et testé, prêt pour déploiement avec la v1.4.0.

Ajout d'un paragraphe dans la partie Mécanismes de mise en cohérence des champs bloc et nom_schema de la documentation pour évoquer la réinitialisation du bloc lors de la suppression du schéma.