Документът за lo_compat_privileges
обяснява ситуацията:
Обърнете внимание, че това може да се зададе за база данни с:
ALTER DATABASE dbname SET lo_compat_privileges=on;
Когато lo_compat_privileges
е зададено на OFF
по подразбиране , достъпът не е ограничен до суперпотребители, а е контролиран. Всеки голям обект има собственик и този собственик има пълни права. Разрешения за четене могат да бъдат дадени за всеки голям обект наведнъж (от собственик или суперпотребител) с:
GRANT SELECT ON LARGE OBJECT loid TO rolename;
където rolename
може да бъде и PUBLIC
за да означава „всеки“, вижте GRANT
за подробности.
От друга страна, не мисля, че е възможно да се задават разрешения за всички големи обекти на база данни с една команда или предварително за все още несъществуващо съдържание, тъй като ALTER DEFAULT PRIVILEGES
няма поддръжка за големи обекти и както забелязвате, тригерите не са опция.
Не-суперпотребител, който има SELECT разрешения за всички големи обекти на база данни, може да pg_dump тази база данни без грешка.