PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

pg_dump avec l'utilisateur dont superadmin et les gros objets

La doc pour lo_compat_privileges explique la situation :

Notez que cela peut être défini par base de données avec :

ALTER DATABASE dbname SET lo_compat_privileges=on;

Lorsque lo_compat_privileges est réglé sur sa valeur par défaut OFF , l'accès n'est pas limité aux superutilisateurs, mais contrôlé. Chaque grand objet a un propriétaire et ce propriétaire a tous les droits. Les autorisations de lecture peuvent être accordées pour chaque objet volumineux à la fois (par le propriétaire ou le superutilisateur) avec :

GRANT SELECT ON LARGE OBJECT loid TO rolename;

rolename peut aussi être PUBLIC pour signifier "tout le monde", voir GRANT pour les détails.

En revanche, je ne pense pas qu'il soit possible de définir des permissions sur tous les gros objets d'une base de données avec une seule commande, ou à l'avance sur des contenus pas encore existants, puisque ALTER DEFAULT PRIVILEGES ne prend pas en charge les objets volumineux et, comme vous le notez, les déclencheurs ne sont pas une option.

Un non-superutilisateur qui a des permissions SELECT sur tous les gros objets d'une base de données peut pg_dumper cette base de données sans erreur.