sql >> Databáze >  >> RDS >> PostgreSQL

pg_dump s uživatelem dont superadmin a velkými objekty

Dokument pro lo_compat_privileges vysvětluje situaci:

Všimněte si, že to lze nastavit pro každou databázi pomocí:

ALTER DATABASE dbname SET lo_compat_privileges=on;

Když lo_compat_privileges je nastaveno na výchozí hodnotu OFF , přístup není omezen na superuživatele, ale je řízen. Každý velký objekt má vlastníka a ten má plná práva. Oprávnění ke čtení lze udělit pro každý velký objekt najednou (vlastníkem nebo superuživatelem) pomocí :

GRANT SELECT ON LARGE OBJECT loid TO rolename;

kde rolename může být také PUBLIC znamenat „všichni“, viz GRANT pro podrobnosti.

Na druhou stranu si nemyslím, že je možné nastavit oprávnění pro všechny velké objekty databáze jediným příkazem nebo předem pro dosud neexistující obsah, protože ALTER DEFAULT PRIVILEGES nemá žádnou podporu pro velké objekty, a jak jste si všimli, spouštěče nejsou možné.

Ne-superuživatel, který má oprávnění SELECT pro všechny velké objekty databáze, může tuto databázi bez chyby pg_dumpovat.




  1. Chyba MySQL 1005?

  2. Připojte se k MySQL v MAMP

  3. Spočítejte, kolik záznamů je v databázi v 5minutových intervalech

  4. Postgres NENÍ v poli