PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

pg_dump с user dont superadmin и големи обекти

Документът за lo_compat_privileges обяснява ситуацията:

Обърнете внимание, че това може да се зададе за база данни с:

ALTER DATABASE dbname SET lo_compat_privileges=on;

Когато lo_compat_privileges е зададено на OFF по подразбиране , достъпът не е ограничен до суперпотребители, а е контролиран. Всеки голям обект има собственик и този собственик има пълни права. Разрешения за четене могат да бъдат дадени за всеки голям обект наведнъж (от собственик или суперпотребител) с:

GRANT SELECT ON LARGE OBJECT loid TO rolename;

където rolename може да бъде и PUBLIC за да означава „всеки“, вижте GRANT за подробности.

От друга страна, не мисля, че е възможно да се задават разрешения за всички големи обекти на база данни с една команда или предварително за все още несъществуващо съдържание, тъй като ALTER DEFAULT PRIVILEGES няма поддръжка за големи обекти и както забелязвате, тригерите не са опция.

Не-суперпотребител, който има SELECT разрешения за всички големи обекти на база данни, може да pg_dump тази база данни без грешка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Уникално ограничение за множество таблици

  2. Мигриране от MySQL към PostgreSQL

  3. Как да принудим оценка на подзаявката преди присъединяване/натискане надолу към чужд сървър

  4. Изтичане на памет на postgresql сървър след надграждане до Rails 4

  5. Съхранените процедури изпълняват ли се в транзакция на база данни в Postgres?