PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

pg_dump z użytkownikiem nie superadmin i dużymi obiektami

Dokumentacja dla lo_compat_privileges wyjaśnia sytuację:

Pamiętaj, że można to ustawić dla bazy danych za pomocą:

ALTER DATABASE dbname SET lo_compat_privileges=on;

Kiedy lo_compat_privileges jest ustawiony domyślnie OFF dostęp nie jest ograniczony do superużytkowników, ale kontrolowany. Każdy duży obiekt ma właściciela i ten właściciel ma pełne prawa. Uprawnienia do odczytu mogą być nadane dla każdego dużego obiektu na raz (przez właściciela lub superużytkownika) za pomocą :

GRANT SELECT ON LARGE OBJECT loid TO rolename;

gdzie rolename może być również PUBLIC co znaczy „wszyscy”, zobacz DOTACJE po szczegóły.

Z drugiej strony nie sądzę, aby można było ustawić uprawnienia do wszystkich dużych obiektów bazy danych za pomocą jednego polecenia lub z góry do nieistniejącej jeszcze zawartości, ponieważ ALTER DEFAULT PRIVILEGES nie obsługuje dużych obiektów, a jak zauważyłeś, wyzwalacze nie są opcją.

Użytkownik niebędący superużytkownikiem, który ma uprawnienia SELECT do wszystkich dużych obiektów bazy danych, może pg_dump tę bazę danych bez błędu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trendy PostgreSQL:najpopularniejsi dostawcy chmury, języki, VACUUM, strategie zarządzania zapytaniami i typy wdrożeń w przedsiębiorstwach

  2. Czy PostgreSQL przeprowadza optymalizację wydajności dla transakcji tylko do odczytu?

  3. jak wyświetlić pełny kod procedury składowanej?

  4. Aplikacja Spring Boot 2.1 bez puli połączeń HikariCP

  5. sql wybierz najwcześniejszą datę dla wielu wierszy