sql >> Databasteknik >  >> RDS >> PostgreSQL

pg_dump med user dont superadmin och stora objekt

Dokumentet för lo_compat_privileges förklarar situationen:

Observera att detta kan ställas in per databas med:

ALTER DATABASE dbname SET lo_compat_privileges=on;

När lo_compat_privileges är inställd på dess standard OFF , åtkomst är inte begränsad till superanvändare, utan kontrollerad. Varje stort objekt har en ägare och den ägaren har fulla rättigheter. Läsbehörigheter kan ges för varje stort objekt åt gången (av ägare eller superanvändare) med :

GRANT SELECT ON LARGE OBJECT loid TO rolename;

där rolename kan också vara PUBLIC för att betyda "alla", se GRANTA för detaljer.

Å andra sidan tror jag inte att det är möjligt att ställa in behörigheter för alla stora objekt i en databas med ett enda kommando, eller i förväg på ännu inte existerande innehåll, eftersom ALTER DEFAULT PRIVILEGES har inget stöd för stora objekt, och som du noterar är triggers inte ett alternativ.

En icke-superanvändare som har SELECT-behörigheter för alla stora objekt i en databas kan pg_dumpa denna databas utan fel.




  1. Aggregera distinkta värden i samlingar i SQL GROUP BY

  2. AWS Python Lambda med Oracle - OID Generation misslyckades även efter att ha lagt till HOSTALIASES

  3. Hur man installerar MySQL 8.0 på CentOS 8 / RHEL 8

  4. Mysql:omöjligt där det märks efter att ha läst const-tabeller