Dokumentet til lo_compat_privileges
forklarer situationen:
Bemærk, at dette kan indstilles pr. database med:
ALTER DATABASE dbname SET lo_compat_privileges=on;
Når lo_compat_privileges
er indstillet til standard OFF
, adgang er ikke begrænset til superbrugere, men kontrolleret. Hvert stort objekt har en ejer, og denne ejer har fulde rettigheder. Læsetilladelser kan gives for hvert stort objekt ad gangen (af ejer eller superbruger) med :
GRANT SELECT ON LARGE OBJECT loid TO rolename;
hvor rolename
kan også være PUBLIC
for at betyde "alle", se GRANT
for detaljerne.
På den anden side tror jeg ikke det er muligt at sætte tilladelser på alle store objekter i en database med en enkelt kommando eller på forhånd på endnu ikke eksisterende indhold, da ALTER DEFAULT PRIVILEGES
har ingen understøttelse af store objekter, og som du bemærker, er triggere ikke en mulighed.
En ikke-superbruger, der har SELECT-tilladelser på alle de store objekter i en database, kan pg_dumpe denne database uden fejl.