sql >> Base de Datos >  >> RDS >> PostgreSQL

pg_dump con el usuario no superadministrador y objetos grandes

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.