El documento para lo_compat_privileges
explica la situación:
Tenga en cuenta que esto se puede configurar por base de datos con:
ALTER DATABASE dbname SET lo_compat_privileges=on;
Cuando lo_compat_privileges
está configurado en su valor predeterminado OFF
, el acceso no se limita a los superusuarios, sino que se controla. Cada objeto grande tiene un dueño y ese dueño tiene todos los derechos. Se pueden otorgar permisos de lectura para cada objeto grande a la vez (por propietario o superusuario) con:
GRANT SELECT ON LARGE OBJECT loid TO rolename;
donde rolename
también puede ser PUBLIC
para significar "todos", consulte GRANT
para los detalles.
Por otro lado, no creo que sea posible establecer permisos sobre todos los objetos grandes de una base de datos con un solo comando, o de antemano sobre contenidos que aún no existen, ya que ALTER DEFAULT PRIVILEGES
no admite objetos grandes y, como observa, los disparadores no son una opción.
Un no superusuario que tenga permisos SELECT en todos los objetos grandes de una base de datos puede pg_dump esta base de datos sin error.