Vous n'êtes pas identifié(e).
Bonjour,
J'ai un serveur dont je fais la sauvegarde par pg_dump et la restauration par pg_restore.
PostGIS est installée comme extension sur le serveur.
Or, lors de la restauration, une erreur apparaît systématiquement lors de la restauration des droits sur la table spatial_ref_sys :
pg_restore: erreur : could not execute query: ERREUR: le rôle « 16430 » n'existe pas
La commande était : REVOKE ALL ON TABLE public.raster_columns FROM "16430";
Dans la vue système pg_role, il n'y a aucun utilisateur avec l'OID 16430 (qui doit correspondre à un utilisateur qui a existé puis a été supprimé, parce que j'ai des utilisateurs avec l'OID 16429 et 16431).
Quand j'affiche les droits sur la table via psql, aucune mention spéciale n'apparaît :
\dp spatial_ref_sys;
Droits d'accès
Schéma | Nom | Type | Droits d'accès | Droits d'accès à la colonne | Politiques
--------+-----------------+-------+---------------------------+-----------------------------+------------
public | spatial_ref_sys | table | postgres=arwdDxt/postgres+| |
| | | =r/postgres | |
(1 ligne)
Rien non plus dans les droits d'accès par défaut :
\ddp
Droits d'accès par défaut
Propriétaire | Schéma | Type | Droits d'accès
--------------+--------+------+----------------
(0 ligne)
D'où peut venir cette commande de restauration ?
Y a-t-il une solution pour enlever sa génération lors de la sauvegarde ?
Merci d'avance pour votre aide,
Cédric
Hors ligne
Bonjour,
Sauf erreur de ma part il s'agit de la table raster_columns, pas spatial_ref_sys?
Y a-t-il des erreurs durant la sauvegarde ? Que donne cette requête sur la base source:
select relowner, relacl from pg_class where relname = 'raster_columns'
Julien.
https://rjuju.github.io/
Hors ligne
Oui, exact, au temps pour moi...
Le résultat est de toute façon le même que sur spatial_ref_sys :
select relowner, relacl from pg_class where relname = 'raster_columns';
relowner | relacl
----------+-----------------------------------------
10 | {postgres=arwdDxt/postgres,=r/postgres}
(1 ligne)
Hors ligne
Et pg_dump n'emet aucun message lors de la création de la sauvegarde ?
Julien.
https://rjuju.github.io/
Hors ligne
Non, aucun message d'erreur à la création de la sauvegarde.
C'est très curieux...
Pour info, je suis en v12
Hors ligne
Le pg_dump et le pg_restore sont bien en version 12 ? je parle des outils, pas du serveur.
D'autre part, avec-vous un rôle de nom 16430 ?
Cela se produit aussi avec une nouvelle sauvegarde ?
Guillaume.
Hors ligne
Oui, pg_dump et pg_restore sont bien en version 12.8 tous les deux.
Et non, je n'ai aucun rôle nommé 16430. Par contre, cette valeur est très proche des OID des autres rôles de l'instance.
Le phénomène se produit avec une nouvelle sauvegarde (test effectué ce matin).
Merci pour votre aide à tous les deux.
Hors ligne
Je pense que la première chose à faire est de mettre à jour avec la dernière version corrective (12.10 actuellement), et tester si le problème a toujours lieu. Ensuite, je pense que je ferais un pg_dump avec le format plain pour regarder s'il y a bien une requête dans la sauvegarde indiquant un rôle "16430".
Guillaume.
Hors ligne
Je viens de faire la mise à niveau vers la version 12.10.
Un dump au format plain ne résolvait pas le problème.
En revanche, j'ai mis à jour PostGIS (y compris l'extension postgis_raster) et la ligne a disparu du dump.
Ça semblait donc être un bug plutôt au niveau de PostGIS, corrigé par l'upgrade.
Problème résolu. Encore merci pour votre aide à tous les deux.
Cédric
Hors ligne