Dokumentet för lo_compat_privileges
förklarar situationen:
Observera att detta kan ställas in per databas med:
ALTER DATABASE dbname SET lo_compat_privileges=on;
När lo_compat_privileges
är inställd på dess standard OFF
, åtkomst är inte begränsad till superanvändare, utan kontrollerad. Varje stort objekt har en ägare och den ägaren har fulla rättigheter. Läsbehörigheter kan ges för varje stort objekt åt gången (av ägare eller superanvändare) med :
GRANT SELECT ON LARGE OBJECT loid TO rolename;
där rolename
kan också vara PUBLIC
för att betyda "alla", se GRANTA
för detaljer.
Å andra sidan tror jag inte att det är möjligt att ställa in behörigheter för alla stora objekt i en databas med ett enda kommando, eller i förväg på ännu inte existerande innehåll, eftersom ALTER DEFAULT PRIVILEGES
har inget stöd för stora objekt, och som du noterar är triggers inte ett alternativ.
En icke-superanvändare som har SELECT-behörigheter för alla stora objekt i en databas kan pg_dumpa denna databas utan fel.