Het document voor lo_compat_privileges
legt de situatie uit:
Merk op dat dit per database kan worden ingesteld met:
ALTER DATABASE dbname SET lo_compat_privileges=on;
Wanneer lo_compat_privileges
is ingesteld op de standaard OFF
, is de toegang niet beperkt tot superusers, maar gecontroleerd. Elk groot object heeft een eigenaar en die eigenaar heeft alle rechten. Leesrechten kunnen voor elk groot object tegelijk worden gegeven (door eigenaar of supergebruiker) met:
GRANT SELECT ON LARGE OBJECT loid TO rolename;
waar rolename
kan ook PUBLIC
zijn om "iedereen" te betekenen, zie GRANT
voor de details.
Aan de andere kant denk ik niet dat het mogelijk is om machtigingen in te stellen voor alle grote objecten van een database met een enkele opdracht, of van tevoren voor nog niet bestaande inhoud, aangezien ALTER DEFAULT PRIVILEGES
heeft geen ondersteuning voor grote objecten, en zoals je opmerkt, zijn triggers geen optie.
Een niet-supergebruiker die SELECT-machtigingen heeft voor alle grote objecten van een database, kan deze database zonder fouten pg_dumpen.