O documento para
lo_compat_privileges
explica a situação:Observe que isso pode ser definido por banco de dados com:
ALTER DATABASE dbname SET lo_compat_privileges=on;
Quando
lo_compat_privileges
está definido para o padrão OFF
, o acesso não é limitado a superusuários, mas controlado. Cada objeto grande tem um proprietário e esse proprietário tem direitos totais. As permissões de leitura podem ser concedidas para cada objeto grande de cada vez (pelo proprietário ou superusuário) com:GRANT SELECT ON LARGE OBJECT loid TO rolename;
onde
rolename
também pode ser PUBLIC
para significar "todos", veja GRANT
para os detalhes. Por outro lado, não acho que seja possível definir permissões em todos os objetos grandes de um banco de dados com um único comando, ou antecipadamente em conteúdos ainda não existentes, pois
ALTER DEFAULT PRIVILEGES
não tem suporte para objetos grandes e, como você observa, os gatilhos não são uma opção. Um não superusuário que tenha permissões SELECT em todos os objetos grandes de um banco de dados pode pg_dump nesse banco de dados sem erros.