PostgreSQL

Software screenshot:
PostgreSQL
Software informatie:
Versie: 10.5 / 11 Beta 3 Bijgewerkt
Upload datum: 16 Aug 18
Licentie: Gratis
Populariteit: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL is een open source, krachtig, betrouwbaar, stabiel, bedrijfsgereed en gratis object-relationeel databasesysteem in de stijl van MariaDB-, MySQL- of SQLite-projecten. Het is een ACID (Atomicity, Consistency, Isolation, Durability) compliant databaseserver / engine die sterk kan worden aangepast en beschikt over tal van aantrekkelijke functies, die een geweldige vervanging vormen voor de eerder genoemde database-engines.


Functies in één oogopslag

Belangrijkste functies zijn ondersteuning voor externe sleutels, views, joins, triggers en opgeslagen procedures, ondersteuning voor meerdere talen, ondersteuning voor een breed scala aan SQL-gegevenstypen, waaronder BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP en DATE.

Bovendien wordt de software geleverd met ondersteuning voor het opslaan van binaire grote objecten, waaronder allerlei multimediabestanden (video, audio en foto), en biedt ontwikkelaars native programmeerinterfaces voor de C, C ++, Python, Perl, Ruby, Java, .Net, Tcl en ODBC programmeertalen.

Naast andere interessante functies kunnen we MVCC (Multi-Version Concurrency Control), tablespaces, multibyte-karaktercoderingen, point in time recovery, een mature query-optimizer en -planner, asynchrone replicatie, online back-ups en geneste transacties vermelden (in de volksmond bekend als opslagpunten), hot-backs, logboeken voor de toekomst voor fouttolerantie, ondersteuning voor internationale tekensets en Unicode-ondersteuning.


PostgreSQL in cijfers

Op dit moment ondersteunt de PostgreSQL-databaseserver een onbeperkte grootte voor databases, 32 TB zou de maximale grootte voor tabellen moeten zijn, 1,6 TB per rij, 1 GB per veld, onbeperkte rijen per tabel, ondersteunt tussen 250 en 1600 kolommen per tabel , afhankelijk van kolomtypen, en ondersteunt onbeperkte indexen per tabel.


Ondersteunde besturingssystemen

De PostgreSQL is met succes getest op alle reguliere besturingssystemen, waaronder GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X en Microsoft Windows. PostgreSQL is beschikbaar om te downloaden als een universeel bronarchief, evenals vooraf gecompileerde binaire pakketten voor veel Linux-distributies, die zowel 32-bits als 64-bits architecturen ondersteunen.

Wat is nieuw

sterk> in deze release:

  • Deze versie lost twee beveiligingsproblemen op. Deze versie lost ook problemen op met VACUUM-, GIN & hash-indexen, parallelle query's, logische replicatie en andere bugs die in de afgelopen drie maanden zijn gerapporteerd. Alle gebruikers die de betreffende versies van PostgreSQL gebruiken, moeten zo snel mogelijk updaten.

Wat is nieuw in versie 10.4 / 11 Beta 1:

  • Deze versie lost twee beveiligingsproblemen op. Deze versie lost ook problemen op met VACUUM-, GIN & hash-indexen, parallelle query's, logische replicatie en andere bugs die in de afgelopen drie maanden zijn gerapporteerd. Alle gebruikers die de betreffende versies van PostgreSQL gebruiken, moeten zo snel mogelijk updaten.

Wat is nieuw in versie:

  • Verdere beperking van de zichtbaarheid van pg_user_mappings.umoptions om wachtwoorden te beschermen die zijn opgeslagen als gebruikersmappingopties (Noah Misch)
  • De correctie voor CVE-2017-7486 klopte niet: het stond een gebruiker toe om de opties in haar eigen gebruikerstoewijzing te zien, zelfs als ze geen USAGE-machtiging had op de bijbehorende buitenlandse server. Zulke opties kunnen een wachtwoord bevatten dat eerder door de eigenaar van de server was verstrekt dan door de gebruiker zelf. Aangezien information_schema.user_mapping_options de opties in dergelijke gevallen niet laat zien, zou pg_user_mappings dat ook niet moeten doen. (CVE-2017-7547)
  • Op zichzelf zal deze patch alleen het gedrag repareren in nieuw geïndeerde databases. Als u deze wijziging in een bestaande database wilt toepassen, moet u het volgende doen:
  • Start de postmaster opnieuw op nadat je allow_system_table_mods = true hebt toegevoegd aan postgresql.conf. (In versies die ALTER SYSTEM ondersteunen, kunt u dat gebruiken om de configuratie te wijzigen, maar u moet nog steeds opnieuw worden opgestart.)
  • Voer in elke database van het cluster de volgende opdrachten uit als superuser:
  • SET search_path = pg_catalog;
  • CREËREN OF VERVANGEN BEKIJKEN pg_user_mappings AS
  • SELECT
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • CASE WHEN U.umuser = 0 THEN
  • 'public'
  • ELSE
  • A.rolname
  • END AS usename,
  • CASE WHEN (U.umuser 0 AND A.rolname = current_user
  • EN (pg_has_role (S.srvowner, 'USAGE')
  • OF has_server_privilege (S.oid, 'USAGE')))
  • OF (U.umuser = 0 AND pg_has_role (S.srvowner, 'USAGE'))
  • OF (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • DAN U.umoptions
  • ELSE NULL END AS umoptions
  • FROM pg_user_mapping U
  • LINKS JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Vergeet niet de databases template0 en template1 op te nemen, anders bestaat het beveiligingslek nog steeds in databases die u later maakt. Als u sjabloon0 wilt repareren, moet u dit tijdelijk toestaan ​​om verbindingen te accepteren. In PostgreSQL 9.5 en hoger kunt u
  • gebruiken
  • ALTER DATABASE-sjabloon0 MET ALLOW_CONNECTIONS true;
  • en dan na het repareren van template0, maak dat ongedaan met
  • ALTER DATABASE-sjabloon0 MET ALLOW_CONNECTIONS false;
  • Gebruik in eerdere versies
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Verwijder ten slotte de configuratie-instelling allow_system_table_mods en start de postmaster opnieuw opnieuw.
  • Geen lege wachtwoorden meer toestaan ​​in alle op wachtwoord gebaseerde verificatiemethoden (Heikki Linnakangas)
  • libpq negeert lege wachtwoordspecificaties en verzendt deze niet naar de server. Dus als het wachtwoord van een gebruiker is ingesteld op de lege reeks, is het onmogelijk om met dat wachtwoord in te loggen via psql of andere libpq-gebaseerde clients. Een beheerder kan daarom denken dat het instellen van het wachtwoord te legen equivalent is aan het uitschakelen van wachtwoordaanmelding. Met een aangepaste of niet-libpq-gebaseerde client kan inloggen echter mogelijk zijn, afhankelijk van welke authenticatiemethode is geconfigureerd. In het bijzonder de meest gebruikelijke methode, md5, geaccepteerde lege wachtwoorden. Wijzig de server om in alle gevallen lege wachtwoorden af ​​te wijzen. (CVE-2017-7546)
  • Laat lo_put () controleren op UPDATE privilege voor het grote doelobject (Tom Lane, Michael Paquier)
  • lo_put () zou zeker dezelfde rechten moeten hebben als lowrite (), maar de controle ontbrak, waardoor elke gebruiker de gegevens in een groot object kon veranderen. (CVE-2017-7548)
  • Corrigeer de documentatie over het proces voor het upgraden van stand-byservers met pg_upgrade (Bruce Momjian)
  • In de vorige documentatie werden gebruikers geïnstrueerd om de primaire server te starten / stoppen na het uitvoeren van pg_upgrade, maar voordat de standby-servers werden gesynchroniseerd. Deze reeks is onveilig.
  • Gelijktijdige vergrendeling van tuple-updateketens (Alvaro Herrera)
  • repareren
  • Als meerdere sessies gelijktijdig een tuple-updateketen vergrendelen met niet-conflicterende vergrendelingsmodi met een oude momentopname en ze allemaal slagen, was het voor sommigen van hen mogelijk toch mislukken (en concludeer dat er geen live tuple-versie is) vanwege een race staat. Dit had gevolgen, zoals het controleren van buitenlandse sleutels die geen tuple zagen die wel degelijk bestaat, maar tegelijkertijd wordt bijgewerkt.
  • Corrigeer mogelijke datacorruptie bij het bevriezen van een tuple waarvan de XMAX een multixact is met precies één nog interessant lid (Teodor Sigaev)
  • Vermijd overmatige overloop en een daaruit voortvloeiende crash bij het sorteren van meer dan een miljard tuples in het geheugen (Sergey Koposov)
  • Probeer in Windows opnieuw het maken van processen als we niet het adresbereik reserveren voor ons gedeelde geheugen in het nieuwe proces (Tom Lane, Amit Kapila)
  • Er wordt verwacht dat dit onregelmatige fouten in de kinderproces-lancering verhelpt die waarschijnlijk te wijten zijn aan interferentie van antivirusproducten.
  • Correctie van corruptie met een lage waarschijnlijkheid van gedeelde predicate-lock hash-tabel in Windows builds (Thomas Munro, Tom Lane)
  • Vermijd het aanmelden van een schone sluiting van een SSL-verbinding alsof het een reset van de verbinding was (Michael Paquier)
  • Voorkomen dat SSL-sessietickets naar klanten worden verzonden (Tom Lane)
  • Deze correctie voorkomt herverbindingsfouten met SSL-code voor klantbewuste client-side.
  • Fix-code voor het instellen van tcp_keepalives_idle op Solaris (Tom Lane)
  • Gegevensverzamelaar repareren om enquêteberichten te honoreren die zijn uitgegeven net na een shutdown van de postmaster en onmiddellijke herstart (Tom Lane)
  • Statistiekenvragen die binnen een halve seconde van de vorige afsluiting van de postmaster werden uitgegeven, werden effectief genegeerd.
  • Zorg ervoor dat de buffergrootte van de statistische verzamelaar minimaal 100 KB (Tom Lane)
  • bedraagt
  • Hierdoor wordt het risico verkleind dat statistieken minder vaak worden weergegeven op oudere platforms waarvan de standaard ontvangstbuffer kleiner is.
  • Herstel mogelijke creatie van een ongeldig WAL-segment wanneer een standby wordt gepromoot net nadat het een XLOG_SWITCH WAL-record (Andres Freund) verwerkt
  • Fix walsender om snel af te sluiten als client om afsluiten vraagt ​​(Tom Lane)
  • Fix SIGHUP en SIGUSR1 verwerking in walsender processen (Petr Jelinek, Andres Freund)
  • Walsender-geactiveerde paniek voorkomen tijdens shutdown-checkpoints (Andres Freund, Michael Paquier)
  • Herstel onnodig langzame herstart van walreceiver-processen als gevolg van raceomstandigheden in de postmaster (Tom Lane)
  • Fix lekkage van kleine subtransacties gemorst op schijf tijdens logische decodering (Andres Freund)
  • Dit resulteerde in tijdelijke bestanden die te veel schijfruimte in beslag namen.
  • Verminder het werk dat nodig is om snapshots te maken tijdens het maken van logische decoderingsslots (Andres Freund, Petr Jelinek)
  • Het vorige algoritme was onzichtbaar duur op een server met veel open transacties.
  • Herstel raceomstandigheden die het maken van logische decoderingsslots (Andres Freund, Petr Jelinek) voor onbepaalde tijd kunnen vertragen
  • Reduceer overheadkosten bij het verwerken van gebeurtenissen voor het ongeldig maken van syscache (Tom Lane)
  • Dit is met name handig voor logische decodering, die veelvuldige ongeldigheid van de cache in gang zet.
  • Onjuiste heuristiek die in sommige gevallen wordt gebruikt om join-selectiviteit te schatten op basis van de aanwezigheid van beperkingen met externe sleutels (David Rowley) te verwijderen
  • In sommige gevallen waarin een externe sleutelrestrictie met meerdere kolommen bestond maar niet exact overeenkwam met de joinstructuur van een query, maakte de planner gebruik van een schattingsheuristiek die helemaal niet goed bleek te werken. Zet dergelijke gevallen terug naar de manier waarop ze vóór 9.6 werden geschat.
  • Kwesties herstellen waarbij een INSERT of UPDATE aan meer dan één element van een kolom toewijst die van het type domain-over-array (Tom Lane) is
  • Toestaan ​​dat vensterfuncties worden gebruikt in sub-selecties die binnen de argumenten van een verzamelfunctie (Tom Lane) vallen
  • Zorg ervoor dat de CONTROLEOPENING-clausule van een weergave correct wordt afgedwongen als de onderliggende tabel een buitenlandse tabel is (Etsuro Fujita)
  • Voordien werd de update mogelijk volledig naar de buitenlandse server doorgestuurd, maar de noodzaak om de weergaveomstandigheden te verifiëren, werd gemist.
  • Verplaats automatisch gegenereerde arraytypen uit de weg tijdens ALTER ... RENAME (Vik Fearing)
  • Eerder hebben we tijdens CREATE een conflicterend automatisch gegenereerde array type uit de weg gehaald; deze correctie breidt dit gedrag uit naar hernoemen.
  • Plaats de bungelende aanwijzer in ALTER TABLE wanneer er een opmerking is over een beperking die bij de tabel hoort (David Rowley)
  • Het opnieuw toepassen van de opmerking op de gereconstrueerde beperking kan mislukken met een vreemd foutbericht of zelfs een crash.
  • Zorg ervoor dat ALTER USER ... SET alle syntaxisvarianten accepteert die ALTER ROL ... SET (Peter Eisentraut)
  • Laat de CHECK-beperkingen van een buitenlandse tabel in eerste instantie NIET GELDIG (Amit Langote)
  • CREATE TABLE daalt stilletjes NIET GELDIGE specificatoren voor CHECK-beperkingen, redeneer dat de tabel leeg moet zijn, zodat de beperking onmiddellijk kan worden gevalideerd. Maar dit is verkeerd voor CREATE BUITENLANDSE TABEL, waar er geen reden is om aan te nemen dat de onderliggende tabel leeg is, en zelfs als het geen zaak van ons is om te beslissen dat de beperking als geldig kan worden beschouwd. Sla deze & quot; optimalisatie & quot; over voor buitenlandse tabellen.
  • Update afhankelijkheidsinformatie bij het wijzigen van het argument van een datatype I / O-functie of retourneer type van ondoorzichtig naar het juiste type (Heikki Linnakangas)
  • CREATE TYPE updates I / O-functies gedeclareerd in deze lang verouderde stijl, maar het vergat een afhankelijkheid van het type op te nemen, waardoor een volgend DROP TYPE gebroken functiedefinities achter kon laten.
  • Sta parallellisme toe in het queryplan wanneer COPY kopieert van het resultaat van een query (Andres Freund)
  • Verminder het geheugengebruik wanneer ANALYSE een tsvector-kolom verwerkt (Heikki Linnakangas)
  • Onnodig precisieverlies en slordige afronding corrigeren bij het vermenigvuldigen of delen van geldwaarden met gehele getallen of drijvers (Tom Lane)
  • Verbeter de controles op witruimte in functies die ID's parseren, zoals regeasonin () (Tom Lane)
  • Afhankelijk van de heersende locale, kunnen deze functies fragmenten van multibyte-tekens als witruimte verkeerd interpreteren.
  • Gebruik relevante #define-symbolen van Perl tijdens het compileren van PL / Perl (Ashutosh Sharma, Tom Lane)
  • Hiermee vermijdt u problemen met de draagbaarheid, die zich meestal manifesteren als een 'handdruk'. komt niet overeen tijdens bibliotheekbelasting, bij het werken met recente Perl-versies.
  • Reset in libpq de GSS / SASL- en SSPI-authenticatietoestand correct na een mislukte verbindingspoging (Michael Paquier)
  • Als dit niet het geval was, betekende het dat bij een terugval van SSL naar niet-SSL-verbindingen, een GSS / SASL-fout in de SSL-poging altijd zou veroorzaken dat de niet-SSL-poging mislukte. SSPI faalde niet, maar het lekte geheugen.
  • Herstel in psql de fout wanneer COPY FROM STDIN wordt beëindigd met een toetsenbord-EOF-signaal en vervolgens wordt een ander COPY FROM STDIN geprobeerd (Thomas Munro)
  • Dit wangedrag is waargenomen op platforms die zijn afgeleid van BSD (inclusief macOS), maar niet op de meeste andere platforms.
  • Repareer pg_dump en pg_restore om de laatste REFRESH MATERIALIZED VIEW-opdrachten (Tom Lane) uit te zenden
  • Dit voorkomt fouten tijdens dumpen / herstellen wanneer een gematerialiseerde weergave verwijst naar tabellen die eigendom zijn van een andere gebruiker.
  • Verbetering van pg_dump / pg_restore's rapportage van foutcondities afkomstig van zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Repareer pg_dump met de --clean optie om gebeurtenistriggers te droppen zoals verwacht (Tom Lane)
  • Het wijst nu ook correct het eigendom van gebeurtenistriggers toe; voorheen werden ze hersteld als eigendom van de superuser die het herstelscript draaide.
  • Repareer pg_dump met de --clean optie om niet te falen als het publieke schema niet bestaat (Stephen Frost)
  • Repareer pg_dump om geen ongeldige SQL uit te zenden voor een lege operatorklasse (Daniel Gustafsson)
  • Repareer pg_dump uitvoer naar stdout op Windows (Kuntal Ghosh)
  • Een gecomprimeerde platte-tekstdump die naar stdout is geschreven, bevat corrupte gegevens omdat de bestandsdescriptor niet in de binaire modus kan worden geplaatst.
  • Repareer pg_get_ruledef () om de juiste uitvoer voor de ON SELECT-regel af te drukken van een weergave waarvan de kolommen zijn hernoemd (Tom Lane)
  • In sommige hoekgevallen is pg_dump afhankelijk van pg_get_ruledef () om views te dumpen, zodat deze fout kan resulteren in dump / reload-fouten.
  • Fix dumping van outer joins met lege beperkingen, zoals het resultaat van een NATURAL LEFT JOIN zonder gemeenschappelijke kolommen (Tom Lane)
  • Probleem bij het dumpen van functie-uitdrukkingen in de FROM-component in gevallen waarin de uitdrukking niet vervalt in iets dat lijkt op een functieaanroep (Tom Lane)
  • Repareer pg_basebackup-uitvoer naar stdout op Windows (Haribabu Kommi)
  • Een back-up die naar stdout is geschreven, bevat corrupte gegevens omdat de bestandsdescriptor niet in de binaire modus kan worden geplaatst.
  • Repareer pg_rewind om bestanden van meer dan 2 GB correct te verwerken (Kuntal Ghosh, Michael Paquier)
  • Normaal verschijnen dergelijke bestanden niet in PostgreSQL-gegevensdirectory's, maar in sommige gevallen kunnen ze aanwezig zijn.
  • Repareer pg_upgrade om er zeker van te zijn dat het eind-WAL-record geen wal_level = minimum (Bruce Momjian) heeft
  • Deze voorwaarde kan voorkomen dat bijgewerkte stand-byservers opnieuw verbinding maken.
  • Repareer pg_xlogdump's berekening van WAL-recordlengte (Andres Freund)
  • Breng in postgres_fdw verbindingen met externe servers opnieuw aan na ALTER SERVER of ALTER USER MAPPING-opdrachten (Kyotaro Horiguchi)
  • Dit zorgt ervoor dat wijzigingen in de opties die van invloed zijn op verbindingsparameters, onmiddellijk worden toegepast.
  • In postgres_fdw toestaan ​​dat opdrachten voor externe transactiecontrole worden geannuleerd (Robert Haas, Rafia Sabih)
  • Met deze wijziging kunnen we in veel meer gevallen dan eerder snel wachten op een niet-reagerende externe server.
  • Verhoog MAX_SYSCACHE_CALLBACKS om meer ruimte voor extensies te bieden (Tom Lane)
  • Gebruik altijd -fPIC, niet -fpic, bij het bouwen van gedeelde bibliotheken met gcc (Tom Lane)
  • Dit ondersteunt grotere extensiebibliotheken op platforms waar het een verschil maakt.
  • Behandel in MSVC builds het geval waarin de openssl-bibliotheek zich niet in een VC-submap bevindt (Andrew Dunstan)
  • Voeg in MSVC-build het juiste include-pad voor libxml2 header-bestanden (Andrew Dunstan) toe
  • Dit lost een eerdere behoefte op om dingen te verplaatsen in standaard Windows-installaties van libxml2.
  • In MSVC-builds een Tcl-bibliotheek herkennen met de naam tcl86.lib (Noah Misch)
  • Veronderstel in MSVC-build de PROVE_FLAGS-instellingen op de opdrachtregel van vcregress.pl (Andrew Dunstan)

Wat is nieuw in versie 9.6.4:

  • Verdere beperking van de zichtbaarheid van pg_user_mappings.umoptions om wachtwoorden te beschermen die zijn opgeslagen als gebruikersmappingopties (Noah Misch)
  • De correctie voor CVE-2017-7486 klopte niet: het stond een gebruiker toe om de opties in haar eigen gebruikerstoewijzing te zien, zelfs als ze geen USAGE-machtiging had op de bijbehorende buitenlandse server. Zulke opties kunnen een wachtwoord bevatten dat eerder door de eigenaar van de server was verstrekt dan door de gebruiker zelf. Aangezien information_schema.user_mapping_options de opties in dergelijke gevallen niet laat zien, zou pg_user_mappings dat ook niet moeten doen. (CVE-2017-7547)
  • Op zichzelf zal deze patch alleen het gedrag repareren in nieuw geïndeerde databases. Als u deze wijziging in een bestaande database wilt toepassen, moet u het volgende doen:
  • Start de postmaster opnieuw op nadat je allow_system_table_mods = true hebt toegevoegd aan postgresql.conf. (In versies die ALTER SYSTEM ondersteunen, kunt u dat gebruiken om de configuratie te wijzigen, maar u moet nog steeds opnieuw worden opgestart.)
  • Voer in elke database van het cluster de volgende opdrachten uit als superuser:
  • SET search_path = pg_catalog;
  • CREËREN OF VERVANGEN BEKIJKEN pg_user_mappings AS
  • SELECT
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvnaam AS srvnaam,
  • U.umuser AS umuser,
  • CASE WHEN U.umuser = 0 THEN
  • 'public'
  • ELSE
  • A.rolname
  • END AS usename,
  • CASE WHEN (U.umuser 0 AND A.rolname = current_user
  • EN (pg_has_role (S.srvowner, 'USAGE')
  • OF has_server_privilege (S.oid, 'USAGE')))
  • OF (U.umuser = 0 AND pg_has_role (S.srvowner, 'USAGE'))
  • OF (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • DAN U.umoptions
  • ELSE NULL END AS umoptions
  • FROM pg_user_mapping U
  • LINKS JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Vergeet niet de databases template0 en template1 op te nemen, anders bestaat het beveiligingslek nog steeds in databases die u later maakt. Als u sjabloon0 wilt repareren, moet u dit tijdelijk toestaan ​​om verbindingen te accepteren. In PostgreSQL 9.5 en hoger kunt u
  • gebruiken
  • ALTER DATABASE-sjabloon0 MET ALLOW_CONNECTIONS true;
  • en dan na het repareren van template0, maak dat ongedaan met
  • ALTER DATABASE-sjabloon0 MET ALLOW_CONNECTIONS false;
  • Gebruik in eerdere versies
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Verwijder ten slotte de configuratie-instelling allow_system_table_mods en start de postmaster opnieuw opnieuw.
  • Geen lege wachtwoorden meer toestaan ​​in alle op wachtwoord gebaseerde verificatiemethoden (Heikki Linnakangas)
  • libpq negeert lege wachtwoordspecificaties en verzendt deze niet naar de server. Dus als het wachtwoord van een gebruiker is ingesteld op de lege reeks, is het onmogelijk om met dat wachtwoord in te loggen via psql of andere libpq-gebaseerde clients. Een beheerder kan daarom denken dat het instellen van het wachtwoord te legen equivalent is aan het uitschakelen van wachtwoordaanmelding. Met een aangepaste of niet-libpq-gebaseerde client kan inloggen echter mogelijk zijn, afhankelijk van welke authenticatiemethode is geconfigureerd. In het bijzonder de meest gebruikelijke methode, md5, geaccepteerde lege wachtwoorden. Wijzig de server om in alle gevallen lege wachtwoorden af ​​te wijzen. (CVE-2017-7546)
  • Laat lo_put () controleren op UPDATE privilege voor het grote doelobject (Tom Lane, Michael Paquier)
  • lo_put () zou zeker dezelfde rechten moeten hebben als lowrite (), maar de controle ontbrak, waardoor elke gebruiker de gegevens in een groot object kon veranderen. (CVE-2017-7548)
  • Corrigeer de documentatie over het proces voor het upgraden van stand-byservers met pg_upgrade (Bruce Momjian)
  • In de vorige documentatie werden gebruikers geïnstrueerd om de primaire server te starten / stoppen na het uitvoeren van pg_upgrade, maar voordat de standby-servers werden gesynchroniseerd. Deze reeks is onveilig.
  • Gelijktijdige vergrendeling van tuple-updateketens (Alvaro Herrera)
  • repareren
  • Als meerdere sessies gelijktijdig een tuple-updateketen vergrendelen met niet-conflicterende vergrendelingsmodi met een oude momentopname en ze allemaal slagen, was het voor sommigen van hen mogelijk toch mislukken (en concludeer dat er geen live tuple-versie is) vanwege een race staat. Dit had gevolgen, zoals het controleren van buitenlandse sleutels die geen tuple zagen die wel degelijk bestaat, maar tegelijkertijd wordt bijgewerkt.
  • Corrigeer mogelijke datacorruptie bij het bevriezen van een tuple waarvan de XMAX een multixact is met precies één nog interessant lid (Teodor Sigaev)
  • Vermijd overmatige overloop en een daaruit voortvloeiende crash bij het sorteren van meer dan een miljard tuples in het geheugen (Sergey Koposov)
  • Probeer in Windows opnieuw het maken van processen als we niet het adresbereik reserveren voor ons gedeelde geheugen in het nieuwe proces (Tom Lane, Amit Kapila)
  • Er wordt verwacht dat dit onregelmatige fouten in de kinderproces-lancering verhelpt die waarschijnlijk te wijten zijn aan interferentie van antivirusproducten.
  • Correctie van corruptie met een lage waarschijnlijkheid van gedeelde predicate-lock hash-tabel in Windows builds (Thomas Munro, Tom Lane)
  • Vermijd het aanmelden van een schone sluiting van een SSL-verbinding alsof het een reset van de verbinding was (Michael Paquier)
  • Voorkomen dat SSL-sessietickets naar klanten worden verzonden (Tom Lane)
  • Deze correctie voorkomt herverbindingsfouten met SSL-code voor klantbewuste client-side.
  • Fix-code voor het instellen van tcp_keepalives_idle op Solaris (Tom Lane)
  • Gegevensverzamelaar repareren om enquêteberichten te honoreren die zijn uitgegeven net na een shutdown van de postmaster en onmiddellijke herstart (Tom Lane)
  • Statistiekenvragen die binnen een halve seconde van de vorige afsluiting van de postmaster werden uitgegeven, werden effectief genegeerd.
  • Zorg ervoor dat de buffergrootte van de statistische verzamelaar minimaal 100 KB (Tom Lane)
  • bedraagt
  • Hierdoor wordt het risico verkleind dat statistieken minder vaak worden weergegeven op oudere platforms waarvan de standaard ontvangstbuffer kleiner is.
  • Herstel mogelijke creatie van een ongeldig WAL-segment wanneer een standby wordt gepromoot net nadat het een XLOG_SWITCH WAL-record (Andres Freund) verwerkt
  • Fix walsender om snel af te sluiten als client om afsluiten vraagt ​​(Tom Lane)
  • Fix SIGHUP en SIGUSR1 verwerking in walsender processen (Petr Jelinek, Andres Freund)
  • Walsender-geactiveerde paniek voorkomen tijdens shutdown-checkpoints (Andres Freund, Michael Paquier)
  • Herstel onnodig langzame herstart van walreceiver-processen als gevolg van raceomstandigheden in de postmaster (Tom Lane)
  • Fix lekkage van kleine subtransacties gemorst op schijf tijdens logische decodering (Andres Freund)
  • Dit resulteerde in tijdelijke bestanden die te veel schijfruimte in beslag namen.
  • Verminder het werk dat nodig is om snapshots te maken tijdens het maken van logische decoderingsslots (Andres Freund, Petr Jelinek)
  • Het vorige algoritme was onzichtbaar duur op een server met veel open transacties.
  • Herstel raceomstandigheden die het maken van logische decoderingsslots (Andres Freund, Petr Jelinek) voor onbepaalde tijd kunnen vertragen
  • Reduceer overheadkosten bij het verwerken van gebeurtenissen voor het ongeldig maken van syscache (Tom Lane)
  • Dit is met name handig voor logische decodering, die veelvuldige ongeldigheid van de cache in gang zet.
  • Onjuiste heuristiek die in sommige gevallen wordt gebruikt om join-selectiviteit te schatten op basis van de aanwezigheid van beperkingen met externe sleutels (David Rowley) te verwijderen
  • In sommige gevallen waarin een externe sleutelrestrictie met meerdere kolommen bestond maar niet exact overeenkwam met de joinstructuur van een query, maakte de planner gebruik van een schattingsheuristiek die helemaal niet goed bleek te werken. Zet dergelijke gevallen terug naar de manier waarop ze vóór 9.6 werden geschat.
  • Kwesties herstellen waarbij een INSERT of UPDATE aan meer dan één element van een kolom toewijst die van het type domain-over-array (Tom Lane) is
  • Toestaan ​​dat vensterfuncties worden gebruikt in sub-selecties die binnen de argumenten van een verzamelfunctie (Tom Lane) vallen
  • Zorg ervoor dat de CONTROLEOPENING-clausule van een weergave correct wordt afgedwongen als de onderliggende tabel een buitenlandse tabel is (Etsuro Fujita)
  • Voordien werd de update mogelijk volledig naar de buitenlandse server doorgestuurd, maar de noodzaak om de weergaveomstandigheden te verifiëren, werd gemist.
  • Verplaats automatisch gegenereerde arraytypen uit de weg tijdens ALTER ... RENAME (Vik Fearing)
  • Eerder hebben we tijdens CREATE een conflicterend automatisch gegenereerde array type uit de weg gehaald; deze correctie breidt dit gedrag uit naar hernoemen.
  • Plaats de bungelende aanwijzer in ALTER TABLE wanneer er een opmerking is over een beperking die bij de tabel hoort (David Rowley)
  • Het opnieuw toepassen van de opmerking op de gereconstrueerde beperking kan mislukken met een vreemd foutbericht of zelfs een crash.
  • Zorg ervoor dat ALTER USER ... SET alle syntaxisvarianten accepteert die ALTER ROL ... SET (Peter Eisentraut)
  • Laat de CHECK-beperkingen van een buitenlandse tabel in eerste instantie NIET GELDIG (Amit Langote)
  • CREATE TABLE daalt stilletjes NIET GELDIGE specificatoren voor CHECK-beperkingen, redeneer dat de tabel leeg moet zijn, zodat de beperking onmiddellijk kan worden gevalideerd. Maar dit is verkeerd voor CREATE BUITENLANDSE TABEL, waar er geen reden is om aan te nemen dat de onderliggende tabel leeg is, en zelfs als het geen zaak van ons is om te beslissen dat de beperking als geldig kan worden beschouwd. Sla deze "optimalisatie" over voor buitenlandse tabellen.
  • Update afhankelijkheidsinformatie bij het wijzigen van het argument van een datatype I / O-functie of retourneer type van ondoorzichtig naar het juiste type (Heikki Linnakangas)
  • CREATE TYPE updates I / O-functies gedeclareerd in deze lang verouderde stijl, maar het vergat een afhankelijkheid van het type op te nemen, waardoor een volgend DROP TYPE gebroken functiedefinities achter kon laten.
  • Sta parallellisme toe in het queryplan wanneer COPY kopieert van het resultaat van een query (Andres Freund)
  • Verminder het geheugengebruik wanneer ANALYSE een tsvector-kolom verwerkt (Heikki Linnakangas)
  • Onnodig precisieverlies en slordige afronding corrigeren bij het vermenigvuldigen of delen van geldwaarden met gehele getallen of drijvers (Tom Lane)
  • Verbeter de controles op witruimte in functies die ID's parseren, zoals regeasonin () (Tom Lane)
  • Afhankelijk van de heersende locale, kunnen deze functies fragmenten van multibyte-tekens als witruimte verkeerd interpreteren.
  • Gebruik relevante #define-symbolen van Perl tijdens het compileren van PL / Perl (Ashutosh Sharma, Tom Lane)
  • Hiermee vermijdt u problemen met de draagbaarheid, die zich meestal manifesteren als een "handshake" -verschil tijdens het laden van de bibliotheek, wanneer u met recente Perl-versies werkt.
  • Reset in libpq de GSS / SASL- en SSPI-authenticatietoestand correct na een mislukte verbindingspoging (Michael Paquier)
  • Als dit niet het geval was, betekende het dat bij een terugval van SSL naar niet-SSL-verbindingen, een GSS / SASL-fout in de SSL-poging altijd zou veroorzaken dat de niet-SSL-poging mislukte. SSPI faalde niet, maar het lekte geheugen.
  • Herstel in psql de fout wanneer COPY FROM STDIN wordt beëindigd met een toetsenbord-EOF-signaal en vervolgens wordt een ander COPY FROM STDIN geprobeerd (Thomas Munro)
  • Dit wangedrag is waargenomen op platforms die zijn afgeleid van BSD (inclusief macOS), maar niet op de meeste andere platforms.
  • Repareer pg_dump en pg_restore om de laatste REFRESH MATERIALIZED VIEW-opdrachten (Tom Lane) uit te zenden
  • Dit voorkomt fouten tijdens dumpen / herstellen wanneer een gematerialiseerde weergave verwijst naar tabellen die eigendom zijn van een andere gebruiker.
  • Verbetering van pg_dump / pg_restore's rapportage van foutcondities afkomstig van zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Repareer pg_dump met de --clean optie om gebeurtenistriggers te droppen zoals verwacht (Tom Lane)
  • Het wijst nu ook correct het eigendom van gebeurtenistriggers toe; voorheen werden ze hersteld als eigendom van de superuser die het herstelscript draaide.
  • Repareer pg_dump met de --clean optie om niet te falen als het publieke schema niet bestaat (Stephen Frost)
  • Repareer pg_dump om geen ongeldige SQL uit te zenden voor een lege operatorklasse (Daniel Gustafsson)
  • Repareer pg_dump uitvoer naar stdout op Windows (Kuntal Ghosh)
  • Een gecomprimeerde platte-tekstdump die naar stdout is geschreven, bevat corrupte gegevens omdat de bestandsdescriptor niet in de binaire modus kan worden geplaatst.
  • Repareer pg_get_ruledef () om de juiste uitvoer voor de ON SELECT-regel af te drukken van een weergave waarvan de kolommen zijn hernoemd (Tom Lane)
  • In sommige hoekgevallen is pg_dump afhankelijk van pg_get_ruledef () om views te dumpen, zodat deze fout kan resulteren in dump / reload-fouten.
  • Fix dumping van outer joins met lege beperkingen, zoals het resultaat van een NATURAL LEFT JOIN zonder gemeenschappelijke kolommen (Tom Lane)
  • Probleem bij het dumpen van functie-uitdrukkingen in de FROM-component in gevallen waarin de uitdrukking niet vervalt in iets dat lijkt op een functieaanroep (Tom Lane)
  • Repareer pg_basebackup-uitvoer naar stdout op Windows (Haribabu Kommi)
  • Een back-up die naar stdout is geschreven, bevat corrupte gegevens omdat de bestandsdescriptor niet in de binaire modus kan worden geplaatst.
  • Repareer pg_rewind om bestanden van meer dan 2 GB correct te verwerken (Kuntal Ghosh, Michael Paquier)
  • Normaal verschijnen dergelijke bestanden niet in PostgreSQL-gegevensdirectory's, maar in sommige gevallen kunnen ze aanwezig zijn.
  • Repareer pg_upgrade om er zeker van te zijn dat het eind-WAL-record geen wal_level = minimum (Bruce Momjian) heeft
  • Deze voorwaarde kan voorkomen dat bijgewerkte stand-byservers opnieuw verbinding maken.
  • Repareer pg_xlogdump's berekening van WAL-recordlengte (Andres Freund)
  • Breng in postgres_fdw verbindingen met externe servers opnieuw aan na ALTER SERVER of ALTER USER MAPPING-opdrachten (Kyotaro Horiguchi)
  • Dit zorgt ervoor dat wijzigingen in de opties die van invloed zijn op verbindingsparameters onmiddellijk worden toegepast.
  • In postgres_fdw toestaan ​​dat opdrachten voor externe transactiecontrole worden geannuleerd (Robert Haas, Rafia Sabih)
  • Met deze wijziging kunnen we in veel meer gevallen dan eerder snel wachten op een niet-reagerende externe server.
  • Verhoog MAX_SYSCACHE_CALLBACKS om meer ruimte voor extensies te bieden (Tom Lane)
  • Gebruik altijd -fPIC, niet -fpic, bij het bouwen van gedeelde bibliotheken met gcc (Tom Lane)
  • Dit ondersteunt grotere extensiebibliotheken op platforms waar het een verschil maakt.
  • Behandel in MSVC builds het geval waarin de openssl-bibliotheek zich niet in een VC-submap bevindt (Andrew Dunstan)
  • Voeg in MSVC-build het juiste include-pad voor libxml2 header-bestanden (Andrew Dunstan) toe
  • Dit lost een eerdere behoefte op om dingen te verplaatsen in standaard Windows-installaties van libxml2.
  • In MSVC-builds een Tcl-bibliotheek herkennen met de naam tcl86.lib (Noah Misch)
  • Veronderstel in MSVC-build de PROVE_FLAGS-instellingen op de opdrachtregel van vcregress.pl (Andrew Dunstan)

Vergelijkbare software

Redis
Redis

28 Sep 15

Postgres Plus
Postgres Plus

3 Jun 15

ArangoDB
ArangoDB

17 Feb 15

GOODS
GOODS

11 May 15

Reacties op PostgreSQL

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!