PostgreSQL

Screenshot Software:
PostgreSQL
Szczegóły programowe:
Wersja: 10.5 / 11 Beta 3 Aktualizowane
Filmu: 16 Aug 18
Licencja: Wolny
Popularność: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL to open source, potężny, niezawodny, stabilny, gotowy do użycia w przedsiębiorstwie i wolny obiektowo-relacyjny system baz danych w stylu projektów MariaDB, MySQL lub SQLite. Jest to serwer / silnik bazy danych ACID (Atomicity, Consistency, Isolation, Durability), który może być wysoce spersonalizowany i zawiera wiele atrakcyjnych funkcji, stanowiąc wspaniały zamiennik wyżej wymienionych silników baz danych.


Funkcje na pierwszy rzut oka

Najważniejsze funkcje obejmują obsługę kluczy obcych, widoków, połączeń, wyzwalaczy i procedur przechowywanych, obsługę wielu języków, obsługę szerokiego zakresu typów danych SQL, w tym BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP i DATA.

Ponadto oprogramowanie obsługuje przechowywanie dużych obiektów binarnych, w tym wszelkiego rodzaju plików multimedialnych (wideo, audio i zdjęć), a także zapewnia programistom natywne interfejsy programistyczne dla języków C, C ++, Python, Perl, Ruby, Języki programowania Java, .Net, Tcl i ODBC.

Wśród innych ciekawych funkcji można wymienić MVCC (Multi-Version Concurrency Control), obszary tablicowe, kodowanie znaków wielobajtowych, odzyskiwanie punktów w czasie, dojrzały optymalizator zapytań i planer, replikację asynchroniczną, kopie zapasowe online, transakcje zagnieżdżone (popularnie zwane savepoints), hot backups, zapisz logowanie z wyprzedzeniem w celu sprawdzenia odporności na błędy, obsługę międzynarodowych zestawów znaków, a także obsługę Unicode.


PostgreSQL w liczbach

Obecnie serwer baz danych PostgreSQL obsługuje nieograniczoną wielkość baz danych, 32 TB powinno być maksymalnym rozmiarem dla tabel, 1,6 TB na wiersz, 1 GB na pole, nieograniczoną liczbą wierszy na tabelę, obsługuje od 250 do 1600 kolumn na tabelę , w zależności od typów kolumn i obsługuje nieograniczoną liczbę indeksów na tabelę.


Obsługiwane systemy operacyjne

PostgreSQL został pomyślnie przetestowany na wszystkich popularnych systemach operacyjnych, w tym GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X i Microsoft Windows. PostgreSQL jest dostępny do pobrania jako uniwersalne archiwum źródłowe, a także wstępnie skompilowane pakiety binarne dla wielu dystrybucji Linuksa, obsługujące zarówno architektury 32-bitowe, jak i 64-bitowe.

Co nowego w tej wersji:

  • Ta wersja rozwiązuje dwa problemy z zabezpieczeniami. Ta wersja rozwiązuje również problemy wykryte w VACUUM, GIN i indeksach hashowych, zapytaniach równoległych, replikacji logicznej i innych błędach zgłoszonych w ciągu ostatnich trzech miesięcy. Wszyscy użytkownicy korzystający z wersji PostgreSQL, których dotyczy problem, powinni zaktualizować się jak najszybciej.

Co nowego w wersji 10.4 / 11 Beta 1:

  • Ta wersja rozwiązuje dwa problemy z zabezpieczeniami. Ta wersja rozwiązuje również problemy wykryte w VACUUM, GIN i indeksach hashowych, zapytaniach równoległych, replikacji logicznej i innych błędach zgłoszonych w ciągu ostatnich trzech miesięcy. Wszyscy użytkownicy korzystający z wersji PostgreSQL, których dotyczy problem, powinni zaktualizować się jak najszybciej.

Co nowego w wersji:

  • Dalsze ograniczenie widoczności pg_user_mappings.umoptions, aby chronić hasła przechowywane jako opcje mapowania użytkownika (Noah Misch)
  • Poprawka dla CVE-2017-7486 była niepoprawna: pozwalała użytkownikowi zobaczyć opcje w jej własnym mapowaniu użytkowników, nawet jeśli nie posiadała ona uprawnienia UŻYTKOWNIKA na powiązanym serwerze zagranicznym. Takie opcje mogą obejmować hasło dostarczone przez właściciela serwera, a nie samego użytkownika. Ponieważ options_schema.user_mapping_options nie pokazuje opcji w takich przypadkach, pg_user_mappings również nie powinno. (CVE-2017-7547)
  • Sam w sobie, ta poprawka naprawi tylko zachowanie w nowych bazach danych initdb'd. Jeśli chcesz zastosować tę zmianę w istniejącej bazie danych, musisz wykonać następujące czynności:
  • Zrestartuj postmaster'a po dodaniu pliku allow_system_table_mods = true do postgresql.conf. (W wersjach obsługujących ALTER SYSTEM można go użyć do zmiany konfiguracji, ale nadal będzie potrzebny restart.)
  • W każdej bazie danych klastra uruchom następujące polecenia jako administrator:
  • SET search_path = pg_catalog;
  • UTWÓRZ LUB WYMIEŃ WIDOK pg_user_mappings AS
  • WYBIERZ
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • CASE WHEN U.umuser = 0 THEN
  • "publiczny"
  • ELSE
  • A.rolname
  • END AS usename,
  • CASE WHEN (U.umuser 0 AND A.rolname = current_user
  • AND (pg_has_role (S.svvierger, "USGE")
  • OR has_server_privilege (S.oid, "USAGE")))
  • OR (U.umuser = 0 AND pg_has_role (S.svvierger, "USGE"))
  • LUB (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • TO U.umoptions
  • ELSE NULL END AS umoptions
  • OD pg_user_mapping U
  • LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Nie zapomnij o dołączeniu baz danych template0 i template1, ponieważ luka nadal będzie istniała w bazach danych tworzonych później. Aby naprawić szablon0, musisz tymczasowo zaakceptować połączenia. W PostgreSQL 9.5 i nowszych możesz użyć
  • ALTER DATABASE template0 Z ALLOW_CONNECTIONS true;
  • , a następnie po naprawieniu szablonu0, cofnij to za pomocą
  • ALTER DATABASE template0 Z ALLOW_CONNECTIONS false;
  • W poprzednich wersjach zamiast tego użyj
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Na koniec usuń ustawienie konfiguracji allow_system_table_mods i ponownie uruchom postmaster.
  • Nie zezwalaj na puste hasła we wszystkich metodach uwierzytelniania opartych na haseł (Heikki Linnakangas)
  • libpq ignoruje puste specyfikacje hasła i nie przesyła ich na serwer. Tak więc, jeśli hasło użytkownika zostało ustawione na pusty ciąg znaków, niemożliwe jest zalogowanie się za pomocą tego hasła za pośrednictwem psql lub innych klientów bazujących na libpq. Administrator może więc sądzić, że ustawienie hasła do opróżnienia jest równoznaczne z wyłączeniem logowania hasła. Jednak w przypadku klienta zmodyfikowanego lub nie-libpq logowanie może być możliwe, w zależności od konfiguracji metody uwierzytelniania. W szczególności najpopularniejsza metoda, md5, przyjęła puste hasła. Zmień serwer, aby odrzucał puste hasła we wszystkich przypadkach. (CVE-2017-7546)
  • Spraw, aby lo_put () sprawdzało uprawnienie UPDATE na docelowym dużym obiekcie (Tom Lane, Michael Paquier)
  • lo_put () powinien z pewnością wymagać tych samych uprawnień, co lowrite (), ale brakowało sprawdzenia, pozwalając każdemu użytkownikowi na zmianę danych w dużym obiekcie. (CVE-2017-7548)
  • Popraw dokumentację dotyczącą procesu uaktualniania serwerów w trybie gotowości za pomocą pg_upgrade (Bruce Momjian)
  • Poprzednia dokumentacja instruowała użytkowników do uruchamiania / zatrzymywania serwera głównego po uruchomieniu pg_upgrade, ale przed synchronizacją serwerów rezerwowych. Ta sekwencja jest niebezpieczna.
  • Napraw jednoczesne blokowanie łańcuchów aktualizacji krotek (Alvaro Herrera)
  • Jeśli kilka sesji jednocześnie blokuje łańcuch uaktualnień krotki z nieskonfliktowymi trybami blokowania za pomocą starej migawki, a wszystkie się powiodą, niektórym z nich udało się jednak zawieść (i stwierdzić, że nie ma wersji live tuple) z powodu wyścigu stan. Miało to konsekwencje, takie jak sprawdzanie kluczem obcym, że nie udało się zobaczyć krotki, która zdecydowanie istnieje, ale jest aktualizowana jednocześnie.
  • Napraw potencjalne uszkodzenie danych podczas zamrażania krotki, której XMAX jest multikulturą z dokładnie jednym wciąż interesującym członkiem (Teodor Sigaev)
  • Unikaj przepełnienia liczby całkowitej i następującego po nim awaria podczas sortowania więcej niż jednego miliarda krotek w pamięci (Sergey Koposov)
  • W systemie Windows spróbuj ponownie utworzyć proces, jeśli nie zarezerwujemy zakresu adresów dla naszej pamięci współużytkowanej w nowym procesie (Tom Lane, Amit Kapila)
  • Spowoduje to naprawienie nieczęstych niepowodzeń uruchomienia procesu potomnego, które prawdopodobnie wynikają z zakłóceń pochodzących od produktów antywirusowych.
  • Naprawiono niskoprzyczynowe uszkodzenie tabeli mieszania szyfru współdzielonego predykatu w kompilacjach Windows (Thomas Munro, Tom Lane)
  • Unikaj logowania czystego zamknięcia połączenia SSL tak, jakby to był reset połączenia (Michael Paquier)
  • Zapobiegaj wysyłaniu biletów sesji SSL do klientów (Tom Lane)
  • Ta poprawka zapobiega awariom ponownego połączenia dzięki kodowi SSL po stronie klienta, który zna kod bezpieczeństwa.
  • Napraw kod do ustawienia tcp_keepalives_idle w systemie Solaris (Tom Lane)
  • Napraw kolekcjoner statystyk, aby docenić komunikaty z zapytaniem wydane tuż po zamknięciu postmasterów i natychmiastowym ponownym uruchomieniu (Tom Lane)
  • Zapytania dotyczące statystyk wydane w ciągu pół sekundy wcześniejszego zamknięcia postmaster zostały skutecznie zignorowane.
  • Upewnij się, że rozmiar bufora odbioru kolektora statystycznego wynosi co najmniej 100 KB (Tom Lane)
  • Zmniejsza to ryzyko upuszczenia danych statystycznych na starszych platformach, których domyślny rozmiar bufora odbioru jest mniejszy.
  • Napraw ewentualne utworzenie nieprawidłowego segmentu WAL, gdy stan gotowości jest promowany tuż po przetworzeniu rekordu WAL XLOG_SWITCH (Andres Freund)
  • Napraw walsender, aby szybko wyjść, gdy klient zażąda wyłączenia (Tom Lane)
  • Naprawianie obsługi SIGHUP i SIGUSR1 w procesach nadprzestrzeni (Petr Jelinek, Andres Freund)
  • Zapobiegaj panice wywołanej przez panikę podczas punktów kontrolnych zamknięcia (Andres Freund, Michael Paquier)
  • Napraw zbyt powolne restartowanie procesów walreceiver ze względu na stan wyścigu w poczmistrzu (Tom Lane)
  • Napraw wyciek małych subtransakcjach rozlanych na dysk podczas dekodowania logicznego (Andres Freund)
  • Powodowało to tymczasowe pliki zużywające zbyt dużo miejsca na dysku.
  • Zredukuj prace potrzebne do tworzenia migawek podczas tworzenia szczelin logicznych (Andres Freund, Petr Jelinek)
  • Poprzedni algorytm był nieosiągalnie drogi na serwerze z wieloma otwartymi transakcjami.
  • Napraw warunki wyścigu, które mogą w nieskończoność opóźniać tworzenie logicznych dekodowań (Andres Freund, Petr Jelinek)
  • Zredukuj obciążenie podczas przetwarzania zdarzeń unieważniania syscache (Tom Lane)
  • Jest to szczególnie przydatne w przypadku dekodowania logicznego, które powoduje częste unieważnianie pamięci podręcznej.
  • Usunięto niepoprawną heurystykę używaną w niektórych przypadkach do oszacowania selektywności łączenia na podstawie obecności ograniczeń klucza obcego (David Rowley)
  • W niektórych przypadkach, w których istniało więz o kluczu obcym z wieloma kolumnami, ale nie było ono dokładnie zgodne ze strukturą łączenia zapytania, program planujący użył heurystyki szacowania, która okazała się w ogóle nie działać dobrze. Przywróć takie przypadki tak, jak zostały oszacowane przed 9.6.
  • Naprawianie przypadków, w których INSERT lub UPDATE przypisuje więcej niż jeden element kolumny, która jest typu z tablicą (Tom Lane)
  • Zezwalaj na używanie funkcji okna w pod-SELEKTACH, które znajdują się w argumentach funkcji agregującej (Tom Lane)
  • Upewnij się, że klauzula CHECK OPCJE widoku jest poprawnie egzekwowana, gdy tabela podstawowa jest tabelą obcą (Etsuro Fujita)
  • Wcześniej aktualizacja mogła zostać całkowicie przekazana na serwer zagraniczny, ale w takim przypadku pominięto potrzebę weryfikacji warunków wyświetlania.
  • Przenoszenie automatycznie generowanych typów macierzy podczas zmiany ... RENAME (Vick Fearing)
  • Wcześniej podczas tworzenia CREATE zmieniliśmy nazwę kolidującego typu generowanego automatycznie. poprawka ta rozszerza to zachowanie na operacje zmiany nazwy.
  • Napraw zwisający wskaźnik w ALTER TABLE, gdy pojawi się komentarz dotyczący ograniczenia należącego do tabeli (David Rowley)
  • Ponowne zastosowanie komentarza do zrekonstruowanego ograniczenia może się nie udać z dziwnym komunikatem o błędzie, a nawet z awarią.
  • Upewnij się, że ALTER USER ... SET akceptuje wszystkie warianty składni, które ma ALTER ROLE ... SET (Peter Eisentraut)
  • Zezwalanie na ograniczenia CHECK z obcej tabeli jest początkowo NIEWAŻNE (Amit Langote)
  • CREATE TABLE po cichu odrzuca NIEPRAWIDŁOWE specyfikatory dla ograniczeń CHECK, uzasadniając, że tabela musi być pusta, aby wiązanie mogło zostać natychmiast sprawdzone. Ale jest to błędne w STWORZENIU STANU ZAGRANICZNEGO, gdzie nie ma powodu przypuszczać, że podstawowa tabela jest pusta, a nawet jeśli to nie nasza sprawa, aby zdecydować, że ograniczenie może być traktowane jako ważne w przyszłości. Pomiń tę "optymalizację" w przypadku stołów zagranicznych.
  • Poprawnie zaktualizuj informacje o zależnościach podczas zmiany argumentu funkcji we / wy typu danych lub typu powrotu z nieprzezroczystego na poprawny typ (Heikki Linnakangas)
  • CREATE TYPE aktualizuje funkcje wejścia / wyjścia zadeklarowane w tym stylu długo przestarzałym, ale zapomniało zarejestrować zależność od typu, pozwalając kolejnemu typowi DROP pozostawić zepsute definicje funkcji.
  • Pozwól na równoległość w planie zapytań, gdy kopie COPY pochodzą z wyniku zapytania (Andres Freund)
  • Zmniejsz zużycie pamięci, gdy ANALYZE przetworzy kolumnę tsvector (Heikki Linnakangas)
  • Napraw niepotrzebne straty precyzji i niedbałe zaokrąglenia podczas mnożenia lub dzielenia wartości pieniężnych przez liczby całkowite lub zmienne (Tom Lane)
  • Dokonywanie kontroli odstępów w funkcjach analizujących identyfikatory, takich jak regprocedurein () (Tom Lane)
  • W zależności od panujących ustawień narodowych funkcje te mogą źle interpretować fragmenty znaków wielobajtowych jako białe znaki.
  • Użyj odpowiednich symboli #define z Perla podczas kompilacji PL / Perl (Ashutosh Sharma, Tom Lane)
  • Pozwala to uniknąć problemów z przenośnością, zwykle objawiając się jako "uścisk ręki". niedopasowanie podczas ładowania biblioteki podczas pracy z najnowszymi wersjami Perla.
  • W libpq, poprawnie zresetuj stan uwierzytelniania GSS / SASL i SSPI po nieudanej próbie połączenia (Michael Paquier)
  • Niewykonanie tej czynności oznaczało, że po powrocie z protokołu SSL do połączeń innych niż SSL, niepowodzenie GSS / SASL w próbie SSL zawsze powodowałoby niepowodzenie próby nieudostępniania protokołu SSL. SSPI nie zawiódł, ale wyciekło z pamięci.
  • W psql napraw błąd, gdy KOPIUJ Z STDIN zostanie zakończony sygnałem EOF klawiatury, a następnie zostanie podjęta kolejna KOPIA Z STDIN (Thomas Munro)
  • To złe zachowanie zaobserwowano na platformach pochodnych BSD (w tym macOS), ale nie na większości innych.
  • Napraw pg_dump i pg_restore, aby emitować polecenia REFRESH MATERIALIZED VIEW (Tom Lane)
  • Zapobiega to błędom podczas zrzutu / przywracania, gdy zmaterializowany widok odnosi się do tabel należących do innego użytkownika.
  • Popraw raportowanie błędów pg_dump / pg_restore pochodzących z zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Napraw pg_dump z opcją --clean, aby usunąć wyzwalacze zdarzeń zgodnie z oczekiwaniami (Tom Lane)
  • Teraz również poprawnie przypisuje prawa własności do wyzwalaczy zdarzeń; wcześniej zostały przywrócone jako należące do superużytkownika uruchamiającego skrypt przywracania.
  • Napraw pg_dump z opcją --clean, aby nie zawieść, gdy publiczny schemat nie istnieje (Stephen Frost)
  • Napraw pg_dump, aby nie emitował nieprawidłowych instrukcji SQL dla pustej klasy operatora (Daniel Gustafsson)
  • Napraw wyjście pg_dump na standardowe wyjście w systemie Windows (Kuntal Ghosh)
  • Skompresowany zwykły zrzut tekstowy zapisany na stdout zawierałby uszkodzone dane z powodu niewykonania deskryptora pliku w trybie binarnym.
  • Napraw pg_get_ruledef (), aby wydrukować prawidłowe dane wyjściowe dla reguły ON SELECT widoku, którego kolumny zostały zmienione (Tom Lane)
  • W niektórych przypadkach narożnych pg_dump opiera się na pg_get_ruledef () na zrzutach widoków, więc ten błąd może spowodować awarie zrzutu / przeładowania.
  • Napraw usuwanie złączy zewnętrznych z pustymi ograniczeniami, na przykład wyniku NATURAL LEFT JOIN bez wspólnych kolumn (Tom Lane)
  • Naprawianie wyrzucania wyrażeń funkcji w klauzuli FROM w przypadkach, gdy wyrażenie nie jest zubożone w coś, co wygląda jak wywołanie funkcji (Tom Lane)
  • Napraw wyjście pg_basebackup na standardowe wyjście w systemie Windows (Haribabu Kommi)
  • Kopia zapasowa zapisana na stdout zawierałaby uszkodzone dane z powodu niewykonania deskryptora pliku w trybie binarnym.
  • Napraw pg_rewind, aby poprawnie obsługiwać pliki przekraczające 2 GB (Kuntal Ghosh, Michael Paquier)
  • Zazwyczaj takie pliki nie pojawiają się w katalogach danych PostgreSQL, ale mogą być obecne w niektórych przypadkach.
  • Napraw pg_upgrade, aby mieć pewność, że końcowy rekord WAL nie ma wal_level = minimum (Bruce Momjian)
  • Ten warunek może uniemożliwić ponownym połączeniom zmodernizowane serwery zapasowe.
  • Naprawiono obliczanie przez pg_xlogdump długości rekordu WAL (Andres Freund)
  • W postgres_fdw ponownie nawiąż połączenia ze zdalnymi serwerami po poleceniu ALTER SERVER lub ALTER USER MAPPING (Kyotaro Horiguchi)
  • Zapewnia to, że zmiany opcji wpływające na parametry połączenia zostaną zastosowane niezwłocznie.
  • W postgres_fdw zezwalaj na anulowanie komend zdalnego sterowania transakcjami (Robert Haas, Rafia Sabih)
  • Ta zmiana pozwala nam szybko uniknąć oczekiwania na zdalny serwer zdalny w wielu innych przypadkach niż wcześniej.
  • Zwiększ MAX_SYSCACHE_CALLBACKS, aby zapewnić więcej miejsca na rozszerzenia (Tom Lane)
  • Zawsze używaj opcji -fPIC, nie -fpic, podczas budowania bibliotek współdzielonych za pomocą gcc (Tom Lane)
  • Obsługuje większe biblioteki rozszerzeń na platformach, na których ma znaczenie.
  • W kompilacjach MSVC zajmij się przypadkiem, w którym biblioteka openssl nie znajduje się w podkatalogu VC (Andrew Dunstan)
  • W kompilacjach MSVC dodaj odpowiednią ścieżkę do plików nagłówkowych libxml2 (Andrew Dunstan)
  • To naprawia dawną potrzebę przeniesienia elementów w standardowych instalacjach systemu Windows libxml2.
  • W kompilacjach MSVC rozpoznawaj bibliotekę Tcl o nazwie tcl86.lib (Noah Misch)
  • W kompilacjach MSVC honoruj ​​ustawienia PROVE_FLAGS na linii poleceń vcregress.pl (Andrew Dunstan)

Co nowego w wersji 9.6.4:

  • Dalsze ograniczenie widoczności pg_user_mappings.umoptions, aby chronić hasła przechowywane jako opcje mapowania użytkownika (Noah Misch)
  • Poprawka dla CVE-2017-7486 była niepoprawna: pozwalała użytkownikowi zobaczyć opcje w jej własnym mapowaniu użytkowników, nawet jeśli nie posiadała ona uprawnienia UŻYTKOWNIKA na powiązanym serwerze zagranicznym. Takie opcje mogą obejmować hasło dostarczone przez właściciela serwera, a nie samego użytkownika. Ponieważ options_schema.user_mapping_options nie pokazuje opcji w takich przypadkach, pg_user_mappings również nie powinno. (CVE-2017-7547)
  • Sam w sobie, ta poprawka naprawi tylko zachowanie w nowych bazach danych initdb'd. Jeśli chcesz zastosować tę zmianę w istniejącej bazie danych, musisz wykonać następujące czynności:
  • Zrestartuj postmaster'a po dodaniu pliku allow_system_table_mods = true do postgresql.conf. (W wersjach obsługujących ALTER SYSTEM można go użyć do zmiany konfiguracji, ale nadal będzie potrzebny restart.)
  • W każdej bazie danych klastra uruchom następujące polecenia jako administrator:
  • SET search_path = pg_catalog;
  • UTWÓRZ LUB WYMIEŃ WIDOK pg_user_mappings AS
  • WYBIERZ
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • CASE WHEN U.umuser = 0 THEN
  • "publiczny"
  • ELSE
  • A.rolname
  • END AS usename,
  • CASE WHEN (U.umuser 0 AND A.rolname = current_user
  • AND (pg_has_role (S.svvierger, "USGE")
  • OR has_server_privilege (S.oid, "USAGE")))
  • OR (U.umuser = 0 AND pg_has_role (S.svvierger, "USGE"))
  • LUB (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • TO U.umoptions
  • ELSE NULL END AS umoptions
  • OD pg_user_mapping U
  • LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Nie zapomnij o dołączeniu baz danych template0 i template1, ponieważ luka nadal będzie istniała w bazach danych tworzonych później. Aby naprawić szablon0, musisz tymczasowo zaakceptować połączenia. W PostgreSQL 9.5 i nowszych możesz użyć
  • ALTER DATABASE template0 Z ALLOW_CONNECTIONS true;
  • , a następnie po naprawieniu szablonu0, cofnij to za pomocą
  • ALTER DATABASE template0 Z ALLOW_CONNECTIONS false;
  • W poprzednich wersjach zamiast tego użyj
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Na koniec usuń ustawienie konfiguracji allow_system_table_mods i ponownie uruchom postmaster.
  • Nie zezwalaj na puste hasła we wszystkich metodach uwierzytelniania opartych na haseł (Heikki Linnakangas)
  • libpq ignoruje puste specyfikacje hasła i nie przesyła ich na serwer. Tak więc, jeśli hasło użytkownika zostało ustawione na pusty ciąg znaków, niemożliwe jest zalogowanie się za pomocą tego hasła za pośrednictwem psql lub innych klientów bazujących na libpq. Administrator może więc sądzić, że ustawienie hasła do opróżnienia jest równoznaczne z wyłączeniem logowania hasła. Jednak w przypadku klienta zmodyfikowanego lub nie-libpq logowanie może być możliwe, w zależności od konfiguracji metody uwierzytelniania. W szczególności najpopularniejsza metoda, md5, przyjęła puste hasła. Zmień serwer, aby odrzucał puste hasła we wszystkich przypadkach. (CVE-2017-7546)
  • Spraw, aby lo_put () sprawdzało uprawnienie UPDATE na docelowym dużym obiekcie (Tom Lane, Michael Paquier)
  • lo_put () powinien z pewnością wymagać tych samych uprawnień, co lowrite (), ale brakowało sprawdzenia, pozwalając każdemu użytkownikowi na zmianę danych w dużym obiekcie. (CVE-2017-7548)
  • Popraw dokumentację dotyczącą procesu uaktualniania serwerów w trybie gotowości za pomocą pg_upgrade (Bruce Momjian)
  • Poprzednia dokumentacja instruowała użytkowników do uruchamiania / zatrzymywania serwera głównego po uruchomieniu pg_upgrade, ale przed synchronizacją serwerów rezerwowych. Ta sekwencja jest niebezpieczna.
  • Napraw jednoczesne blokowanie łańcuchów aktualizacji krotek (Alvaro Herrera)
  • Jeśli kilka sesji jednocześnie blokuje łańcuch uaktualnień krotki z nieskonfliktowymi trybami blokowania za pomocą starej migawki, a wszystkie się powiodą, niektórym z nich udało się jednak zawieść (i stwierdzić, że nie ma wersji live tuple) z powodu wyścigu stan. Miało to konsekwencje, takie jak sprawdzanie kluczem obcym, że nie udało się zobaczyć krotki, która zdecydowanie istnieje, ale jest aktualizowana jednocześnie.
  • Napraw potencjalne uszkodzenie danych podczas zamrażania krotki, której XMAX jest multikulturą z dokładnie jednym wciąż interesującym członkiem (Teodor Sigaev)
  • Unikaj przepełnienia liczby całkowitej i następującego po nim awaria podczas sortowania więcej niż jednego miliarda krotek w pamięci (Sergey Koposov)
  • W systemie Windows spróbuj ponownie utworzyć proces, jeśli nie zarezerwujemy zakresu adresów dla naszej pamięci współużytkowanej w nowym procesie (Tom Lane, Amit Kapila)
  • Spowoduje to naprawienie nieczęstych niepowodzeń uruchomienia procesu potomnego, które prawdopodobnie wynikają z zakłóceń pochodzących od produktów antywirusowych.
  • Naprawiono niskoprzyczynowe uszkodzenie tabeli mieszania szyfru współdzielonego predykatu w kompilacjach Windows (Thomas Munro, Tom Lane)
  • Unikaj logowania czystego zamknięcia połączenia SSL tak, jakby to był reset połączenia (Michael Paquier)
  • Zapobiegaj wysyłaniu biletów sesji SSL do klientów (Tom Lane)
  • Ta poprawka zapobiega awariom ponownego połączenia dzięki kodowi SSL po stronie klienta, który zna kod bezpieczeństwa.
  • Napraw kod do ustawienia tcp_keepalives_idle w systemie Solaris (Tom Lane)
  • Napraw kolekcjoner statystyk, aby docenić komunikaty z zapytaniem wydane tuż po zamknięciu postmasterów i natychmiastowym ponownym uruchomieniu (Tom Lane)
  • Zapytania dotyczące statystyk wydane w ciągu pół sekundy wcześniejszego zamknięcia postmaster zostały skutecznie zignorowane.
  • Upewnij się, że rozmiar bufora odbioru kolektora statystycznego wynosi co najmniej 100 KB (Tom Lane)
  • Zmniejsza to ryzyko upuszczenia danych statystycznych na starszych platformach, których domyślny rozmiar bufora odbioru jest mniejszy.
  • Napraw ewentualne utworzenie nieprawidłowego segmentu WAL, gdy stan gotowości jest promowany tuż po przetworzeniu rekordu WAL XLOG_SWITCH (Andres Freund)
  • Napraw walsender, aby szybko wyjść, gdy klient zażąda wyłączenia (Tom Lane)
  • Naprawianie obsługi SIGHUP i SIGUSR1 w procesach nadprzestrzeni (Petr Jelinek, Andres Freund)
  • Zapobiegaj panice wywołanej przez panikę podczas punktów kontrolnych zamknięcia (Andres Freund, Michael Paquier)
  • Napraw zbyt powolne restartowanie procesów walreceiver ze względu na stan wyścigu w poczmistrzu (Tom Lane)
  • Napraw wyciek małych subtransakcjach rozlanych na dysk podczas dekodowania logicznego (Andres Freund)
  • Powodowało to tymczasowe pliki zużywające zbyt dużo miejsca na dysku.
  • Zredukuj prace potrzebne do tworzenia migawek podczas tworzenia szczelin logicznych (Andres Freund, Petr Jelinek)
  • Poprzedni algorytm był nieosiągalnie drogi na serwerze z wieloma otwartymi transakcjami.
  • Napraw warunki wyścigu, które mogą w nieskończoność opóźniać tworzenie logicznych dekodowań (Andres Freund, Petr Jelinek)
  • Zredukuj obciążenie podczas przetwarzania zdarzeń unieważniania syscache (Tom Lane)
  • Jest to szczególnie przydatne w przypadku dekodowania logicznego, które powoduje częste unieważnianie pamięci podręcznej.
  • Usunięto niepoprawną heurystykę używaną w niektórych przypadkach do oszacowania selektywności łączenia na podstawie obecności ograniczeń klucza obcego (David Rowley)
  • W niektórych przypadkach, w których istniało więz o kluczu obcym z wieloma kolumnami, ale nie było ono dokładnie zgodne ze strukturą łączenia zapytania, program planujący użył heurystyki szacowania, która okazała się w ogóle nie działać dobrze. Przywróć takie przypadki tak, jak zostały oszacowane przed 9.6.
  • Naprawianie przypadków, w których INSERT lub UPDATE przypisuje więcej niż jeden element kolumny, która jest typu z tablicą (Tom Lane)
  • Zezwalaj na używanie funkcji okna w pod-SELEKTACH, które znajdują się w argumentach funkcji agregującej (Tom Lane)
  • Upewnij się, że klauzula CHECK OPCJE widoku jest poprawnie egzekwowana, gdy tabela podstawowa jest tabelą obcą (Etsuro Fujita)
  • Wcześniej aktualizacja mogła zostać całkowicie przekazana na serwer zagraniczny, ale w takim przypadku pominięto potrzebę weryfikacji warunków wyświetlania.
  • Przenoszenie automatycznie generowanych typów macierzy podczas zmiany ... RENAME (Vick Fearing)
  • Wcześniej podczas tworzenia CREATE zmieniliśmy nazwę kolidującego typu generowanego automatycznie. poprawka ta rozszerza to zachowanie na operacje zmiany nazwy.
  • Napraw zwisający wskaźnik w ALTER TABLE, gdy pojawi się komentarz dotyczący ograniczenia należącego do tabeli (David Rowley)
  • Ponowne zastosowanie komentarza do zrekonstruowanego ograniczenia może się nie udać z dziwnym komunikatem o błędzie, a nawet z awarią.
  • Upewnij się, że ALTER USER ... SET akceptuje wszystkie warianty składni, które ma ALTER ROLE ... SET (Peter Eisentraut)
  • Zezwalanie na ograniczenia CHECK z obcej tabeli jest początkowo NIEWAŻNE (Amit Langote)
  • CREATE TABLE po cichu odrzuca NIEPRAWIDŁOWE specyfikatory dla ograniczeń CHECK, uzasadniając, że tabela musi być pusta, aby wiązanie mogło zostać natychmiast sprawdzone. Ale jest to błędne w STWORZENIU STANU ZAGRANICZNEGO, gdzie nie ma powodu przypuszczać, że podstawowa tabela jest pusta, a nawet jeśli to nie nasza sprawa, aby zdecydować, że ograniczenie może być traktowane jako ważne w przyszłości. Pomiń tę "optymalizację" dla tabel zagranicznych.
  • Poprawnie zaktualizuj informacje o zależnościach podczas zmiany argumentu funkcji we / wy typu danych lub typu powrotu z nieprzezroczystego na poprawny typ (Heikki Linnakangas)
  • CREATE TYPE aktualizuje funkcje wejścia / wyjścia zadeklarowane w tym stylu długo przestarzałym, ale zapomniało zarejestrować zależność od typu, pozwalając kolejnemu typowi DROP pozostawić zepsute definicje funkcji.
  • Pozwól na równoległość w planie zapytań, gdy kopie COPY pochodzą z wyniku zapytania (Andres Freund)
  • Zmniejsz zużycie pamięci, gdy ANALYZE przetworzy kolumnę tsvector (Heikki Linnakangas)
  • Napraw niepotrzebne straty precyzji i niedbałe zaokrąglenia podczas mnożenia lub dzielenia wartości pieniężnych przez liczby całkowite lub zmienne (Tom Lane)
  • Dokonywanie kontroli odstępów w funkcjach analizujących identyfikatory, takich jak regprocedurein () (Tom Lane)
  • W zależności od panujących ustawień narodowych funkcje te mogą źle interpretować fragmenty znaków wielobajtowych jako białe znaki.
  • Użyj odpowiednich symboli #define z Perla podczas kompilacji PL / Perl (Ashutosh Sharma, Tom Lane)
  • Pozwala to uniknąć problemów związanych z przenośnością, zwykle przejawiających się jako niedopasowanie "uścisku dłoni" podczas ładowania biblioteki podczas pracy z najnowszymi wersjami Perla.
  • W libpq, poprawnie zresetuj stan uwierzytelniania GSS / SASL i SSPI po nieudanej próbie połączenia (Michael Paquier)
  • Niewykonanie tej czynności oznaczało, że po powrocie z protokołu SSL do połączeń innych niż SSL, niepowodzenie GSS / SASL w próbie SSL zawsze powodowałoby niepowodzenie próby nieudostępniania protokołu SSL. SSPI nie zawiódł, ale wyciekło z pamięci.
  • W psql napraw błąd, gdy KOPIUJ Z STDIN zostanie zakończony sygnałem EOF klawiatury, a następnie zostanie podjęta kolejna KOPIA Z STDIN (Thomas Munro)
  • To złe zachowanie zaobserwowano na platformach pochodnych BSD (w tym macOS), ale nie na większości innych.
  • Napraw pg_dump i pg_restore, aby emitować polecenia REFRESH MATERIALIZED VIEW (Tom Lane)
  • Zapobiega to błędom podczas zrzutu / przywracania, gdy zmaterializowany widok odnosi się do tabel należących do innego użytkownika.
  • Popraw raportowanie błędów pg_dump / pg_restore pochodzących z zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Napraw pg_dump z opcją --clean, aby usunąć wyzwalacze zdarzeń zgodnie z oczekiwaniami (Tom Lane)
  • Teraz również poprawnie przypisuje prawa własności do wyzwalaczy zdarzeń; wcześniej zostały przywrócone jako należące do superużytkownika uruchamiającego skrypt przywracania.
  • Napraw pg_dump z opcją --clean, aby nie zawieść, gdy publiczny schemat nie istnieje (Stephen Frost)
  • Napraw pg_dump, aby nie emitował nieprawidłowych instrukcji SQL dla pustej klasy operatora (Daniel Gustafsson)
  • Napraw wyjście pg_dump na standardowe wyjście w systemie Windows (Kuntal Ghosh)
  • Skompresowany zwykły zrzut tekstowy zapisany na stdout zawierałby uszkodzone dane z powodu niewykonania deskryptora pliku w trybie binarnym.
  • Napraw pg_get_ruledef (), aby wydrukować prawidłowe dane wyjściowe dla reguły ON SELECT widoku, którego kolumny zostały zmienione (Tom Lane)
  • W niektórych przypadkach narożnych pg_dump opiera się na pg_get_ruledef () na zrzutach widoków, więc ten błąd może spowodować awarie zrzutu / przeładowania.
  • Napraw usuwanie złączy zewnętrznych z pustymi ograniczeniami, na przykład wyniku NATURAL LEFT JOIN bez wspólnych kolumn (Tom Lane)
  • Naprawianie wyrzucania wyrażeń funkcji w klauzuli FROM w przypadkach, gdy wyrażenie nie jest zubożone w coś, co wygląda jak wywołanie funkcji (Tom Lane)
  • Napraw wyjście pg_basebackup na standardowe wyjście w systemie Windows (Haribabu Kommi)
  • Kopia zapasowa zapisana na stdout zawierałaby uszkodzone dane z powodu niewykonania deskryptora pliku w trybie binarnym.
  • Napraw pg_rewind, aby poprawnie obsługiwać pliki przekraczające 2 GB (Kuntal Ghosh, Michael Paquier)
  • Zazwyczaj takie pliki nie pojawiają się w katalogach danych PostgreSQL, ale mogą być obecne w niektórych przypadkach.
  • Napraw pg_upgrade, aby mieć pewność, że końcowy rekord WAL nie ma wal_level = minimum (Bruce Momjian)
  • Ten warunek może uniemożliwić ponownym połączeniom zmodernizowane serwery zapasowe.
  • Naprawiono obliczanie przez pg_xlogdump długości rekordu WAL (Andres Freund)
  • W postgres_fdw ponownie nawiąż połączenia ze zdalnymi serwerami po poleceniu ALTER SERVER lub ALTER USER MAPPING (Kyotaro Horiguchi)
  • Zapewnia to, że zmiany opcji wpływające na parametry połączenia zostaną zastosowane niezwłocznie.
  • W postgres_fdw zezwalaj na anulowanie komend zdalnego sterowania transakcjami (Robert Haas, Rafia Sabih)
  • Ta zmiana pozwala nam szybko uniknąć oczekiwania na zdalny serwer zdalny w wielu innych przypadkach niż wcześniej.
  • Zwiększ MAX_SYSCACHE_CALLBACKS, aby zapewnić więcej miejsca na rozszerzenia (Tom Lane)
  • Zawsze używaj opcji -fPIC, nie -fpic, podczas budowania bibliotek współdzielonych za pomocą gcc (Tom Lane)
  • Obsługuje większe biblioteki rozszerzeń na platformach, na których ma znaczenie.
  • W kompilacjach MSVC zajmij się przypadkiem, w którym biblioteka openssl nie znajduje się w podkatalogu VC (Andrew Dunstan)
  • W kompilacjach MSVC dodaj odpowiednią ścieżkę do plików nagłówkowych libxml2 (Andrew Dunstan)
  • To naprawia dawną potrzebę przeniesienia elementów w standardowych instalacjach systemu Windows libxml2.
  • W kompilacjach MSVC rozpoznawaj bibliotekę Tcl o nazwie tcl86.lib (Noah Misch)
  • W kompilacjach MSVC honoruj ​​ustawienia PROVE_FLAGS na linii poleceń vcregress.pl (Andrew Dunstan)

Podobne oprogramowanie

Free-Vote
Free-Vote

3 Jun 15

MySQL Sandbox
MySQL Sandbox

20 Feb 15

Jaxer
Jaxer

3 Jun 15

Komentarze do PostgreSQL

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!