Dokument pro lo_compat_privileges
vysvětluje situaci:
Všimněte si, že to lze nastavit pro každou databázi pomocí:
ALTER DATABASE dbname SET lo_compat_privileges=on;
Když lo_compat_privileges
je nastaveno na výchozí hodnotu OFF
, přístup není omezen na superuživatele, ale je řízen. Každý velký objekt má vlastníka a ten má plná práva. Oprávnění ke čtení lze udělit pro každý velký objekt najednou (vlastníkem nebo superuživatelem) pomocí :
GRANT SELECT ON LARGE OBJECT loid TO rolename;
kde rolename
může být také PUBLIC
znamenat „všichni“, viz GRANT
pro podrobnosti.
Na druhou stranu si nemyslím, že je možné nastavit oprávnění pro všechny velké objekty databáze jediným příkazem nebo předem pro dosud neexistující obsah, protože ALTER DEFAULT PRIVILEGES
nemá žádnou podporu pro velké objekty, a jak jste si všimli, spouštěče nejsou možné.
Ne-superuživatel, který má oprávnění SELECT pro všechny velké objekty databáze, může tuto databázi bez chyby pg_dumpovat.