PostgreSQL

Programinė įranga Screenshot:
PostgreSQL
Programinė detalės:
Versija: 10.5 / 11 Beta 3 Atnaujintas
Įkėlimo datą: 16 Aug 18
Licencija: Nemokamai
Populiarumas: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL yra atviro kodo, galinga, patikima, stabili, įmonėje paruošta ir nemokama objektų reliacinė duomenų bazių sistema pagal MariaDB, MySQL arba SQLite projektų stilių. Tai yra "ACID" (Atomicity, Consistency, Isolation, Durability) suderinamas duomenų bazių serveris / variklis, kuris gali būti labai pritaikytas ir apima daugybę patrauklių funkcijų, todėl puikiai pakeičia pirmiau minėtų duomenų bazių variklius.


Savybės iš pirmo žvilgsnio

Pagrindinės funkcijos apima paramą išoriniams raktams, peržiūras, prisijungimus, paleidiklius ir išsaugotas procedūras, daugiakalbių kalbų palaikymą, daugybės SQL duomenų tipų palaikymą, įskaitant BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP ir DATA.

Be to, programinė įranga palaiko didelės apimties dvejetainius objektus, įskaitant įvairius daugialypės terpės failus (vaizdo, garso ir nuotraukų), ir teikia programuotojams gimtąją programavimo sąsają C, C ++, Python, Perl, Ruby, Java, .Net, Tcl ir ODBC programavimo kalbos.

Be kitų įdomių funkcijų, galime paminėti MVCC (Multi-Version Concurrency Control), stalo erdves, multibyte simbolių kodus, atkūrimo tašką, subrendusią užklausų optimizavimo priemonę ir planuotoją, asinchroninę replikaciją, internetines atsargines kopijas, įdėtas operacijas (žinomas kaip " taupymo taškai), karštos atsarginės kopijos, parašykite į priekį, registruojame atsilikimą nuo pažeidimų, palaikykite tarptautinius simbolių rinkinius, taip pat palaikykite "Unicode".


PostgreSQL skaičiais

Šiuo metu "PostgreSQL" duomenų bazės serveris palaiko neribotą duomenų bazių dydį, 32 TB turėtų būti maksimalus lentelių dydis, 1.6 TB eilutėje, 1 GB kiekviename lauke, neribotos eilutės lentelėje, palaikomos 250-1600 stulpelių skaičius lentelėje , priklausomai nuo stulpelių tipų, ir palaiko neribotą indeksų skaičių lentelėje.


Palaikomos operacinės sistemos

PostgreSQL buvo sėkmingai išbandytas visose pagrindinėse operacinėse sistemose, įskaitant GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X ir Microsoft Windows. "PostgreSQL" galima atsisiųsti kaip universalus šaltinio archyvas, taip pat iš anksto kompiliuoti dvejetainiai paketai daugeliui "Linux" paskirstymų, palaikančių tiek 32 bitų, tiek 64 bitų architektūras.

Kas naujo šiame leidime:

  • Šis leidimas pašalina du saugumo klausimus. Šis leidimas taip pat nustato problemas, nustatytas naudojant "VACUUM", "GIN" ir "hash" indeksus, lygiagrečią užklausą, loginį replikavimą ir kitus klaidas, apie kurias pranešta per pastaruosius tris mėnesius. Visi vartotojai, naudojantys paveiktas PostgreSQL versijas, turėtų būti atnaujinti kuo greičiau.

Kas naujo versija 10.4 / 11 Beta 1:

  • Šis leidimas pašalina du saugumo klausimus. Šis leidimas taip pat nustato problemas, nustatytas naudojant "VACUUM", "GIN" ir "hash" indeksus, lygiagrečią užklausą, loginį replikavimą ir kitus klaidas, apie kurias pranešta per pastaruosius tris mėnesius. Visi vartotojai, naudojantys paveiktas PostgreSQL versijas, turėtų būti atnaujinti kuo greičiau.

Kas naujo versijoje:

  • Toliau apriboti pg_user_mappings.umoptions matomumą, siekiant apsaugoti slaptažodžius, saugomus kaip naudotojo kartografavimo parinktys (Noah Misch).
  • CVE-2017-7486 pataisymas buvo neteisingas: jis leido naudotojui pamatyti pasirinkimus savo vartotojo kartografavime, net jei ji neturėjo USAGE leidimo susijusiu užsienio serveriu. Tokios parinktys gali būti slaptažodis, kurį pateikė serverio savininkas, o ne pats vartotojas. Kadangi informacijos_schema.user_mapping_options tokių atvejų nerodo, pg_user_mappings taip pat neturėtų. (CVE-2017-7547)
  • Paprastai šis pataisymas sureguliuos elgesį tik initdb'd duomenų bazėse. Jei norite pritaikyti šį pakeitimą esamoje duomenų bazėje, turėsite atlikti šiuos veiksmus:
  • Iš naujo paleisk postmasterį pridedant allow_system_table_mods = true į postgresql.conf. (Versijose, palaikančiose ALTER SYSTEM, galite naudoti ją, kad atliktumėte konfigūracijos pakeitimą, bet vis tiek reikės iš naujo paleisti.)
  • Kiekvienoje klasterio duomenų bazėje paleiskite šias komandas kaip "Superuser":
  • SET search_path = pg_catalog;
  • Kurti arba pakeisti vaizdą pg_user_mappings AS
  • SELECT
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • ATVEJIS, KUR U.UMUSER = 0 TADA
  • "viešas"
  • ELSE
  • A.role pavadinimas
  • Baigti kaip usename,
  • ATVEJIS, KADA (U.umuser 0 ir A.rolname = current_user
  • IR (pg_has_role (S.srvowner, "USAGE")
  • ARBA has_server_privilege (S.oid, 'USAGE')))
  • ARBA (U.umuser = 0 IR pg_has_role (S.srvowner, 'USAGE'))
  • ARBA (SELECT rolsuper IŠ pg_authid WHERE rolname = current_user)
  • Tada U.umoptions
  • KITAS NULL END KAIP UMOPRACIJOS
  • Iš pg_user_mapping U
  • Kairysis prisijungti pg_authid A ON (A.oid = U.umuser) PRISIJUNGTI
  • pg_foreign_server S ON (U.mserver = S.oid);
  • Nepamirškite įtraukti "template0" ir "template1" duomenų bazių, arba pažeidžiamumas vis dar bus duomenų bazėse, kurias sukursite vėliau. Norėdami išspręsti šabloną0, turėsite laikinai priimti priėmimo jungtis. PostgreSQL 9.5 ir naujesnėse versijose galite naudoti
  • ALTER DATABASE template0 su ALLOW_CONNECTIONS true;
  • , tada po to, kai nustatote šabloną0, atšaukite tai naudodami
  • ALTER DATABASE template0 su ALLOW_CONNECTIONS klaidinga;
  • Iš ankstesnių versijų naudokite
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE filename = 'template0';
  • Galiausiai pašalinkite "allow_system_table_mods" konfigūracijos parametrą ir iš naujo paleisk postmasterį.
  • Neleiskite tuščių slaptažodžių visuose slaptažodžio autentifikavimo metoduose (Heikki Linnakangas)
  • libpq ignoruoja tuščias slaptažodžio specifikacijas ir neperduoda juos į serverį. Taigi, jei vartotojo slaptažodis buvo nustatytas kaip tuščia eilutė, neįmanoma prisijungti naudojant šį slaptažodį naudojant psql ar kitus libpq klientus. Todėl administratorius gali manyti, kad slaptažodžio nustatymas tuščiai yra lygiavertis slaptažodžio prisijungimo neleidimui. Tačiau su modifikuotu arba ne "libpq" pagrindu sukurtu klientu gali būti įmanoma prisijungti, priklausomai nuo to, kuris autentifikavimo metodas yra sukonfigūruotas. Visų pirma dažniausiai naudojamas metodas, md5, priėmė tuščius slaptažodžius. Pakeiskite serverį, jei norite atmesti tuščius slaptažodžius visais atvejais. (CVE-2017-7546)
  • Sukurkite lo_put () patikrinti UPDATE privilegiją tiksliniame dideliame objekte (Tom Lane, Michael Paquier)
  • lo_put () turėtų tikrai reikalauti tų pačių teisių kaip lowrite (), bet trūko patikrinimo, leidžiančio bet kuriam vartotojui pakeisti duomenis dideliame objekte. (CVE-2017-7548)
  • Ištaisykite dokumentaciją apie budėjimo serverių atnaujinimo procesą naudodami pg_upgrade (Bruce Momjian)
  • Ankstesniuose dokumentuose naudotojams buvo nurodyta paleisti / sustabdyti pagrindinį serverį paleidus pg_upgrade, bet prieš sinchronizuojant budėjimo serverius. Ši seka yra nesaugi.
  • Fiksuokite lygiagrečių atnaujinimo grandinių užrakinimą (Alvaro Herrera)
  • Jei keletas sesijų tuo pačiu metu užrakina grobų atnaujinimo grandinę su nekonfliktiniais užrakto režimais naudojant seną nuotrauką, ir visi jie sėkmingai, kai kuriems iš jų vis dėlto buvo neįmanoma (ir daroma išvada, kad nėra gyvos kartos versijos) dėl lenktynių sąlyga. Tai turėjo pasekmių, tokių kaip patikrinimai užsienyje, nesugebėjome pamatyti, kas tikrai egzistuoja, tačiau atnaujinama vienu metu.
  • Nustatykite galimą duomenų korupciją užšaldant grupę, kurios XMAX yra daugiapakopis su tiksliai dar vienu įdomiu nariu (Teodor Sigaev).
  • Ištrinkite integruotą perpildymą ir įvykusį klaidą, kai rūšiuojate daugiau nei vieną milijardą laukų atmintyje (Sergejus Koposovas)
  • "Windows" pakartokite proceso kūrimą, jei mes nesugebėsime rezervuoti bendros atminties adresų diapazono naujame procese (Tom Lane, Amit Kapila)
  • Tikimasi, kad ištaisys dažnus vaiko proceso paleidimo gedimus, kurie tikriausiai yra dėl antivirusinių produktų trikdymų.
  • Nustatykite, ar "Windows" sistemoje naudojama bendroji pranašinių rakinių hash lentelių korekcija yra maža tikimybė (Thomas Munro, Tom Lane)
  • Venkite prisijungti prie švaraus SSL jungties uždarymo, nes tai būtų ryšio atkūrimas (Michael Paquier)
  • Neleisti siųsti SSL seanso bilietus klientams (Tom Lane)
  • Šis nustatymas užkerta kelią pakartotinio prisijungimo triktims, kai kliento pusėje esantis SSL kodas yra pažymėtas bilietu.
  • Pataisykite tcp_keepalives_idle nustatymo kodą Solaris (Tom Lane)
  • Nustatykite statistikos rinkintį, kad gautumėte užklausos pranešimus, išleistus iškart po postmasterio išjungimo ir nedelsiant paleiskite iš naujo (Tom Lane)
  • Statistiniai tyrimai, išleisti per pusę sekundžių nuo ankstesnio postmasterio išjungimo, iš tikrųjų buvo ignoruojami.
  • Įsitikinkite, kad statistinių duomenų surinkėjo buferio dydis yra mažiausiai 100 KB (Tom Lane)
  • Tai sumažina statistikos duomenų sumažėjimą rizikingesnėse platformose, kurių numatytasis priimto buferio dydis yra mažesnis.
  • Pataisyti galimą neteisingo WAL segmento kūrimą, kai pasirenkamas atsarginis režimas, kai jis apdoroja XLOG_SWITCH WAL įrašą (Andres Freund)
  • Nustatykite "walsender", jei norite išeiti iš karto, kai kliento užklausos išjungtos (Tom Lane)
  • Nustatyti SIGHUP ir SIGUSR1 tvarkymą kalbos procesuose (Petr Jelinek, Andres Freundas)
  • Užkirsti kelią walsendero sukeltai panikai išjungimo kontrolės punktuose (Andres Freundas, Michael Paquier)
  • Ištaisykite pernelyg lėtą walreceiver procesų paleidimą dėl posto kapitono (Tom Lane) lenktynių būklės
  • Ištaisykite mažų pervarų, išsiliejusių į diską, nuotėkį loginio dekodavimo metu (Andres Freundas)
  • Dėl to laikinuose failuose buvo per daug vietos diske.
  • Sumažinti darbą, kurio reikia kuriant loginius dekodavimo laiko tarpsnius (Andres Freund, Petr Jelinek)
  • Ankstesnis algoritmas buvo nepaprastai brangus serveryje, kuriame buvo daug atvirų operacijų.
  • Nustatykite lenktynių būklę, galinčią neribotą laiką atidėti loginio dekodavimo laiko tarpsnių kūrimą (Andresas Freundas, Petras Jelinekas)
  • Siųskite "Syscache" negaliojimo įvykių apdorojimo pridėtines išlaidas (Tom Lane)
  • Tai ypač naudinga loginiam dekodavimui, kuris dažnai sukelia talpyklos negaliojimą.
  • Pašalinkite neteisingą heuristicą, naudojamą tam tikrais atvejais, kad įvertintumėte prisijungimo selektyvumą, atsižvelgiant į užsienio rakto apribojimus (David Rowley)
  • Kai kuriais atvejais, kai buvo keletas stulpelių išorinių raktų apribojimų, tačiau jie nevisiškai atitiko užklausos prisijungimo struktūrą, planuotojas naudojo įvertinimo euristiką, kuris apskritai pasirodė netinkamas. Panaikinkite tokius atvejus, kaip jie buvo įvertinti prieš 9.6.
  • Nustatykite atvejus, kai INSERT arba UPDATE priskiriama daugiau nei vienam stulpelio elementui, kuris yra domeno perpildymo tipo (Tom Lane)
  • Leisti langų funkcijas naudoti sub-SELECT, kurie yra sudedamųjų funkcijų argumentuose (Tom Lane)
  • Įsitikinkite, kad išlygos CHECK OPTIONS parinktys yra tinkamai vykdomos, kai pagrindinė lentelė yra užsienio lentelė (Etsuro Fujita)
  • Anksčiau atnaujinimas galėjo būti visiškai įstumtas į užsienio serverį, tačiau, jei taip, reikėjo patikrinti, ar nėra peržiūros sąlygų.
  • Pakeiskite autogeneruoto masyvo tipus per ALTER ... RENAME (Vik Bearing)
  • Anksčiau CREATE metu turėtume pervadinti nesuderintą autogeneruoto masyvo tipą; ši pataisa pratęsia elgesį pakeičiant operacijas.
  • Nustatykite rodomą žymeklį ALTER TABLE, kai yra pastabos dėl apribojimo, priklausančio stalui (David Rowley)
  • Jei pakartotinai pritaikysite komentarą į rekonstruotą apribojimą, gali įvykti keista klaida ar net sugadinti.
  • Įsitikinkite, kad ALTER USER ... SET priima visus sintaksės variantus, kuriuos ALTER ROLE ... SET daro (Peter Eisentraut)
  • Leiskite užsienio lentelės "CHECK" apribojimus iš pradžių nesuteikti (Amit Langote)
  • CREATE TABLE tyliai nuleidžia NE VALSTYBĖS specifikacijas CHECK apribojimams, pagrįstą, kad lentelė turi būti tuščia, kad apribojimas būtų galima patvirtinti nedelsiant. Tačiau tai yra neteisingas dėl CREATE FOREIGN TABLE, kur nėra pagrindo manyti, kad pagrindinė lentelė yra tuščia, ir net jei mūsų nėra verslo nuspręsti, kad apribojimas gali būti traktuojamas kaip galiojantis eiti į priekį. Praleisti šį & quot; optimizavimą & quot; užsienio lenteles.
  • Tinkamai atnaujinkite priklausomybės informaciją, kai pakeičiate duomenų tipo I / O funkcijos argumentą arba grąžinimo tipą nuo nepermatomo iki teisingo tipo (Heikki Linnakangas)
  • TYPE "CREATE TYPE" atnaujina įvesties / išvesties funkcijas, kurios buvo deklaruotos šiame ilgaamžiškame stiliuje, tačiau ji pamiršo įrašyti priklausomybę nuo tipo, todėl vėlesniam DROP TYPE palikti sugedusius funkcijų apibrėžimus.
  • Leisti lygiagretumą užklausos plane, kai COPY kopijuoja iš užklausos rezultato (Andres Freundas)
  • Sumažinti atminties naudojimą, kai ANALYZE apdoroja tsvektoriaus stulpelį (Heikki Linnakangas)
  • Nustatykite nereikalingus tikslumo nuostolius ir aptemptą apvalinimą, padauginus ar dalijant pinigų vertes sveikuosius ar plūdinius (Tom Lane)
  • Pritvirtinkite funkcijų, kurios analizuoja identifikatorius, pvz., regprocedurein () (Tom Lane), skaidrumo tarpą.
  • Priklausomai nuo vyraujančios vietos, šios funkcijos gali neteisingai suprasti daugybinių simbolių fragmentus kaip tarpus.
  • naudodamiesi atitinkamais #define simboliais iš Perl sudarant PL / Perl (Ashutosh Sharma, Tom Lane)
  • Taip išvengiama perkeliamumo problemų, paprastai pasireiškiančių kaip "rankos" & quot; neatitikimas bibliotekos apkrovos metu, kai dirbate su naujausiomis "Perl" versijomis.
  • "libpq" tinkamai iš naujo nustatykite GSS / SASL ir SSPI autentifikavimo būseną po nesėkmingo bandymo prisijungti (Michael Paquier)
  • Nesugebėjimas tai padaryti reiškia, kad jei SSL nesusijęs su SSL ryšiu, GSS / SASL nesėkmė bandant SSL visada sukelia nesėkmingą SSL bandymą. SSPI nepavyko, bet jis sugadino atmintį.
  • "psql" nustatykite gedimą, kai COPY FROM STDIN baigia klaviatūros EOF signalą ir tada bandoma atlikti kitą "COPY FROM STDIN" (Thomas Munro)
  • Šis netinkamas elgesys buvo pastebėtas BSD platformose (įskaitant "macOS"), bet ne daugeliui kitų.
  • Pataisykite pg_dump ir pg_restore, kad išleistų paskutines "REFRESH MATERIALIZUOTOS ŽIŪROS" komandas (Tom Lane)
  • Tai užtikrina, kad atliekant paketą / atkūrimą bus išvengta klaidų, kai materializuotas rodinys susijęs su skirtingo vartotojo priklausančiomis lentelėmis.
  • Patobulinkite pgl_dump / pg_restore pranešimus apie zlibo kilusių klaidų (Vladimiras Kunšikovas, Alvaro Herrera)
  • Pataisykite pg_dump, naudodami "--clean" parinktį, kad sumažintumėte įvykių trigerius, kaip tikėtasi (Tom Lane)
  • Dabar taip pat teisingai priskiriama įvykių aktyviklių nuosavybė; anksčiau jie buvo atstatyti kaip priklausantys superuseriui paleidus atkūrimo scenarijų.
  • Pataisykite pg_dump naudodami -clean parinktį, kad nepavyktumėte, kai viešoji schema neegzistuoja (Stephen Frost)
  • Pataisykite pg_dump, kad negalėtumėte išleisti negaliojančio SQL tuščiai operatoriaus klasei (Daniel Gustafsson)
  • Pataisykite pg_dump išėjimą į stdout sistemoje "Windows" (Kuntal Ghosh)
  • Suspausto standžiojo teksto išvestis, parašyta į stdout, turėtų sugadintus duomenis, nes failo deskriptorius nebuvo įdėtas į dvejetainį režimą.
  • Pataisykite pg_get_ruledef (), kad spausdintumėte teisingą išvaizdą ON SELECT nuostatai, kurios stulpeliai buvo pervardyti (Tom Lane)
  • Kai kuriuose kampuose pg_dump remiasi pg_get_ruledef (), kad iškrautų peržiūras, taigi ši klaida gali sukelti nukritimo / perkrovimo gedimus.
  • Nustatykite išorinių jungčių dempingą su tuščiais apribojimais, pvz., "NATURAL LEFT JOIN" rezultatas be bendrų stulpelių (Tom Lane)
  • Ištaisykite funkcijų išraiškų ištrynimą iš FROM clause tais atvejais, kai išraiška neišnyksta į kažką panašaus į funkcijos skambutį (Tom Lane)
  • Pataisykite pg_basebackup išvestį į stdout sistemoje "Windows" ("Haribabu Kommi")
  • Į atsarginę kopiją, parašytą stdout, būtų sugadintų duomenų, nes failo deskriptorius nebuvo įdėtas į dvejetainį režimą.
  • Pataisykite pg_rewind, kad teisingai tvarkytų daugiau nei 2 GB failus (Kuntal Ghosh, Michael Paquier)
  • Paprastai tokie failai nebus rodomi "PostgreSQL" duomenų kataloguose, tačiau kai kuriais atvejais jie gali būti.
  • Pataisykite pg_upgrade, norėdami įsitikinti, kad WAL įrašo pabaigoje nėra wal_level = minimalaus (Bruce Momjian)
  • Ši sąlyga gali užkirsti kelią naujovintam budėjimo režimo serveriams iš naujo prisijungti.
  • Pataisykite pg_xlogdump WAL įrašų ilgio skaičiavimą (Andres Freundas)
  • Po postgres_fdw atkurkite jungtis prie nuotolinių serverių po ALTER SERVER ar ALTER USER MAPPING komandų (Kyotaro Horiguchi)
  • Tai užtikrina, kad pasirinkimo pakeitimai, susiję su ryšio parametrais, bus taikomi nedelsiant.
  • "postgres_fdw" leidžia atšaukti nuotolines operacijų valdymo komandas (Robert Haas, Rafia Sabih)
  • Šis pakeitimas leidžia mums greitai išvengti neatsakingo nuotolinio serverio laukimo daugeliu atvejų nei anksčiau.
  • Padidinkite MAX_SYSCACHE_CALLBACKS, kad suteiktumėte daugiau vietos pratęsimams (Tom Lane)
  • Visada naudokite -fPIC, o ne -fpic, kai kuriate bendrinamas bibliotekas su gcc (Tom Lane)
  • Tai palaiko didesnes bibliotekų išplėtimą tose platformose, kuriose jie skiriasi.
  • Kuriant MSVC tvarkykite atvejį, kai "openssl" biblioteka nėra aplanke VC (Andrew Dunstan)
  • Kuriant MSVC, pridėkite tinkamą kelią libxml2 antraščių failams (Andrew Dunstan)
  • Tai pašalina ankstesnį poreikį perkelti įprastus "libxml2" "Windows" įrenginius.
  • Į MSVC kūrimą atpažįsta Tcl biblioteką, pavadintą tcl86.lib (Noah Misch)
  • Kuriant MSVC, gaukite PROVE_FLAGS nustatymus komandinėje eilutėje vcregress.pl (Andrew Dunstan)

Kas naujo versijoje 9.6.4:

  • Toliau apriboti pg_user_mappings.umoptions matomumą, siekiant apsaugoti slaptažodžius, saugomus kaip naudotojo kartografavimo parinktys (Noah Misch).
  • CVE-2017-7486 pataisymas buvo neteisingas: jis leido naudotojui pamatyti pasirinkimus savo vartotojo kartografavime, net jei ji neturėjo USAGE leidimo susijusiu užsienio serveriu. Tokios parinktys gali būti slaptažodis, kurį pateikė serverio savininkas, o ne pats vartotojas. Kadangi informacijos_schema.user_mapping_options tokių atvejų nerodo, pg_user_mappings taip pat neturėtų. (CVE-2017-7547)
  • Paprastai šis pataisymas sureguliuos elgesį tik initdb'd duomenų bazėse. Jei norite pritaikyti šį pakeitimą esamoje duomenų bazėje, turėsite atlikti šiuos veiksmus:
  • Iš naujo paleisk postmasterį pridedant allow_system_table_mods = true į postgresql.conf. (Versijose, palaikančiose ALTER SYSTEM, galite naudoti ją, kad atliktumėte konfigūracijos pakeitimą, bet vis tiek reikės iš naujo paleisti.)
  • Kiekvienoje klasterio duomenų bazėje paleiskite šias komandas kaip "Superuser":
  • SET search_path = pg_catalog;
  • Kurti arba pakeisti vaizdą pg_user_mappings AS
  • SELECT
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • ATVEJIS, KUR U.UMUSER = 0 TADA
  • "viešas"
  • ELSE
  • A.role pavadinimas
  • Baigti kaip usename,
  • atvejis, kai (U.umuser 0 IR A.rolname = current_user
  • IR (pg_has_role (S.srvowner, "USAGE")
  • ARBA has_server_privilege (S.oid, 'USAGE')))
  • ARBA (U.umuser = 0 IR pg_has_role (S.srvowner, 'USAGE'))
  • ARBA (SELECT rolsuper IŠ pg_authid WHERE rolname = current_user)
  • Tada U.umoptions
  • KITAS NULL END KAIP UMOPRACIJOS
  • Iš pg_user_mapping U
  • Kairysis prisijungti pg_authid A ON (A.oid = U.umuser) PRISIJUNGTI
  • pg_foreign_server S ON (U.mserver = S.oid);
  • Nepamirškite įtraukti "template0" ir "template1" duomenų bazių, arba pažeidžiamumas vis dar bus duomenų bazėse, kurias sukursite vėliau. Norėdami išspręsti šabloną0, turėsite laikinai priimti priėmimo jungtis. PostgreSQL 9.5 ir naujesnėse versijose galite naudoti
  • ALTER DATABASE template0 su ALLOW_CONNECTIONS true;
  • , tada po to, kai nustatote šabloną0, atšaukite tai naudodami
  • ALTER DATABASE template0 su ALLOW_CONNECTIONS klaidinga;
  • Iš ankstesnių versijų naudokite
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE filename = 'template0';
  • Galiausiai pašalinkite "allow_system_table_mods" konfigūracijos parametrą ir iš naujo paleisk postmasterį.
  • Neleiskite tuščių slaptažodžių visuose slaptažodžio autentifikavimo metoduose (Heikki Linnakangas)
  • libpq ignoruoja tuščias slaptažodžio specifikacijas ir neperduoda juos į serverį. Taigi, jei vartotojo slaptažodis buvo nustatytas kaip tuščia eilutė, neįmanoma prisijungti naudojant šį slaptažodį naudojant psql ar kitus libpq klientus. Todėl administratorius gali manyti, kad slaptažodžio nustatymas tuščiai yra lygiavertis slaptažodžio prisijungimo neleidimui. Tačiau su modifikuotu arba ne "libpq" pagrindu sukurtu klientu gali būti įmanoma prisijungti, priklausomai nuo to, kuris autentifikavimo metodas yra sukonfigūruotas. Visų pirma dažniausiai naudojamas metodas, md5, priėmė tuščius slaptažodžius. Pakeiskite serverį, jei norite atmesti tuščius slaptažodžius visais atvejais. (CVE-2017-7546)
  • Sukurkite lo_put () patikrinti UPDATE privilegiją tiksliniame dideliame objekte (Tom Lane, Michael Paquier)
  • lo_put () turėtų tikrai reikalauti tų pačių teisių kaip lowrite (), bet trūko patikrinimo, leidžiančio bet kuriam vartotojui pakeisti duomenis dideliame objekte. (CVE-2017-7548)
  • Ištaisykite dokumentaciją apie budėjimo serverių atnaujinimo procesą naudodami pg_upgrade (Bruce Momjian)
  • Ankstesniuose dokumentuose naudotojams buvo nurodyta paleisti / sustabdyti pagrindinį serverį paleidus pg_upgrade, bet prieš sinchronizuojant budėjimo serverius. Ši seka yra nesaugi.
  • Fiksuokite lygiagrečių atnaujinimo grandinių užrakinimą (Alvaro Herrera)
  • Jei keletas sesijų tuo pačiu metu užrakina grobų atnaujinimo grandinę su nekonfliktiniais užrakto režimais naudojant seną nuotrauką, ir visi jie sėkmingai, kai kuriems iš jų vis dėlto buvo neįmanoma (ir daroma išvada, kad nėra gyvos kartos versijos) dėl lenktynių sąlyga. Tai turėjo pasekmių, tokių kaip patikrinimai užsienyje, nesugebėjome pamatyti, kas tikrai egzistuoja, tačiau atnaujinama vienu metu.
  • Nustatykite galimą duomenų korupciją užšaldant grupę, kurios XMAX yra daugiapakopis su tiksliai dar vienu įdomiu nariu (Teodor Sigaev).
  • Ištrinkite integruotą perpildymą ir įvykusį klaidą, kai rūšiuojate daugiau nei vieną milijardą laukų atmintyje (Sergejus Koposovas)
  • "Windows" pakartokite proceso kūrimą, jei mes nesugebėsime rezervuoti bendros atminties adresų diapazono naujame procese (Tom Lane, Amit Kapila)
  • Tikimasi, kad ištaisys dažnus vaiko proceso paleidimo gedimus, kurie tikriausiai yra dėl antivirusinių produktų trikdymų.
  • Nustatykite, ar "Windows" sistemoje naudojama bendroji pranašinių rakinių hash lentelių korekcija yra maža tikimybė (Thomas Munro, Tom Lane)
  • Venkite prisijungti prie švaraus SSL jungties uždarymo, nes tai būtų ryšio atkūrimas (Michael Paquier)
  • Neleisti siųsti SSL seanso bilietus klientams (Tom Lane)
  • Šis nustatymas užkerta kelią pakartotinio prisijungimo triktims, kai kliento pusėje esantis SSL kodas yra pažymėtas bilietu.
  • Pataisykite tcp_keepalives_idle nustatymo kodą Solaris (Tom Lane)
  • Nustatykite statistikos rinkintį, kad gautumėte užklausos pranešimus, išleistus iškart po postmasterio išjungimo ir nedelsiant paleiskite iš naujo (Tom Lane)
  • Statistiniai tyrimai, išleisti per pusę sekundžių nuo ankstesnio postmasterio išjungimo, iš tikrųjų buvo ignoruojami.
  • Įsitikinkite, kad statistinių duomenų surinkėjo buferio dydis yra mažiausiai 100 KB (Tom Lane)
  • Tai sumažina statistikos duomenų sumažėjimą rizikingesnėse platformose, kurių numatytasis priimto buferio dydis yra mažesnis.
  • Pataisyti galimą neteisingo WAL segmento kūrimą, kai pasirenkamas atsarginis režimas, kai jis apdoroja XLOG_SWITCH WAL įrašą (Andres Freund)
  • Nustatykite "walsender", jei norite išeiti iš karto, kai kliento užklausos išjungtos (Tom Lane)
  • Nustatyti SIGHUP ir SIGUSR1 tvarkymą kalbos procesuose (Petr Jelinek, Andres Freundas)
  • Užkirsti kelią walsendero sukeltai panikai išjungimo kontrolės punktuose (Andres Freundas, Michael Paquier)
  • Ištaisykite pernelyg lėtą walreceiver procesų paleidimą dėl posto kapitono (Tom Lane) lenktynių būklės
  • Ištaisykite mažų pervarų, išsiliejusių į diską, nuotėkį loginio dekodavimo metu (Andres Freundas)
  • Dėl to laikinuose failuose buvo per daug vietos diske.
  • Sumažinti darbą, kurio reikia kuriant loginius dekodavimo laiko tarpsnius (Andres Freund, Petr Jelinek)
  • Ankstesnis algoritmas buvo nepaprastai brangus serveryje, kuriame buvo daug atvirų operacijų.
  • Nustatykite lenktynių būklę, galinčią neribotą laiką atidėti loginio dekodavimo laiko tarpsnių kūrimą (Andresas Freundas, Petras Jelinekas)
  • Siųskite "Syscache" negaliojimo įvykių apdorojimo pridėtines išlaidas (Tom Lane)
  • Tai ypač naudinga loginiam dekodavimui, kuris dažnai sukelia talpyklos negaliojimą.
  • Pašalinkite neteisingą heuristicą, naudojamą tam tikrais atvejais, kad įvertintumėte prisijungimo selektyvumą, atsižvelgiant į užsienio rakto apribojimus (David Rowley)
  • Kai kuriais atvejais, kai buvo keletas stulpelių išorinių raktų apribojimų, tačiau jie nevisiškai atitiko užklausos prisijungimo struktūrą, planuotojas naudojo įvertinimo euristiką, kuris apskritai pasirodė netinkamas. Panaikinkite tokius atvejus, kaip jie buvo įvertinti prieš 9.6.
  • Nustatykite atvejus, kai INSERT arba UPDATE priskiriama daugiau nei vienam stulpelio elementui, kuris yra domeno perpildymo tipo (Tom Lane)
  • Leisti langų funkcijas naudoti sub-SELECT, kurie yra sudedamųjų funkcijų argumentuose (Tom Lane)
  • Įsitikinkite, kad išlygos CHECK OPTIONS parinktys yra tinkamai vykdomos, kai pagrindinė lentelė yra užsienio lentelė (Etsuro Fujita)
  • Anksčiau atnaujinimas galėjo būti visiškai įstumtas į užsienio serverį, tačiau, jei taip, reikėjo patikrinti, ar nėra peržiūros sąlygų.
  • Pakeiskite autogeneruoto masyvo tipus per ALTER ... RENAME (Vik Bearing)
  • Anksčiau CREATE metu turėtume pervadinti nesuderintą autogeneruoto masyvo tipą; ši pataisa pratęsia elgesį pakeičiant operacijas.
  • Nustatykite rodomą žymeklį ALTER TABLE, kai yra pastabos dėl apribojimo, priklausančio stalui (David Rowley)
  • Jei pakartotinai pritaikysite komentarą į rekonstruotą apribojimą, gali įvykti keista klaida ar net sugadinti.
  • Įsitikinkite, kad ALTER USER ... SET priima visus sintaksės variantus, kuriuos ALTER ROLE ... SET daro (Peter Eisentraut)
  • Leiskite užsienio lentelės "CHECK" apribojimus iš pradžių nesuteikti (Amit Langote)
  • CREATE TABLE tyliai nuleidžia NE VALSTYBĖS specifikacijas CHECK apribojimams, pagrįstą, kad lentelė turi būti tuščia, kad apribojimas būtų galima patvirtinti nedelsiant. Tačiau tai yra neteisingas dėl CREATE FOREIGN TABLE, kur nėra pagrindo manyti, kad pagrindinė lentelė yra tuščia, ir net jei mūsų nėra verslo nuspręsti, kad apribojimas gali būti traktuojamas kaip galiojantis eiti į priekį. Praleiskite šį "optimizavimą" užsienio lentelėms.
  • Tinkamai atnaujinkite priklausomybės informaciją, kai pakeičiate duomenų tipo I / O funkcijos argumentą arba grąžinimo tipą nuo nepermatomo iki teisingo tipo (Heikki Linnakangas)
  • TYPE "CREATE TYPE" atnaujina įvesties / išvesties funkcijas, kurios buvo deklaruotos šiame ilgaamžiškame stiliuje, tačiau ji pamiršo įrašyti priklausomybę nuo tipo, todėl vėlesniam DROP TYPE palikti sugedusius funkcijų apibrėžimus.
  • Leisti lygiagretumą užklausos plane, kai COPY kopijuoja iš užklausos rezultato (Andres Freundas)
  • Sumažinti atminties naudojimą, kai ANALYZE apdoroja tsvektoriaus stulpelį (Heikki Linnakangas)
  • Nustatykite nereikalingus tikslumo nuostolius ir aptemptą apvalinimą, padauginus ar dalijant pinigų vertes sveikuosius ar plūdinius (Tom Lane)
  • Pritvirtinkite funkcijų, kurios analizuoja identifikatorius, pvz., regprocedurein () (Tom Lane), skaidrumo tarpą.
  • Priklausomai nuo vyraujančios vietos, šios funkcijos gali neteisingai suprasti daugybinių simbolių fragmentus kaip tarpus.
  • naudodamiesi atitinkamais #define simboliais iš Perl sudarant PL / Perl (Ashutosh Sharma, Tom Lane)
  • Taip išvengiama perkėlimo problemų, kurios dažnai pasireiškia kaip "rankos" neatitikimas bibliotekos apkrovos metu, kai dirbate su naujausiomis "Perl" versijomis.
  • "libpq" tinkamai iš naujo nustatykite GSS / SASL ir SSPI autentifikavimo būseną po nesėkmingo bandymo prisijungti (Michael Paquier)
  • Nesugebėjimas tai padaryti reiškia, kad jei SSL nesusijęs su SSL ryšiu, GSS / SASL nesėkmė bandant SSL visada sukelia nesėkmingą SSL bandymą. SSPI nepavyko, bet jis sugadino atmintį.
  • "psql" nustatykite gedimą, kai COPY FROM STDIN baigia klaviatūros EOF signalą ir tada bandoma atlikti kitą "COPY FROM STDIN" (Thomas Munro)
  • Šis netinkamas elgesys buvo pastebėtas BSD platformose (įskaitant "macOS"), bet ne daugeliui kitų.
  • Pataisykite pg_dump ir pg_restore, kad išleistų paskutines "REFRESH MATERIALIZUOTOS ŽIŪROS" komandas (Tom Lane)
  • Tai užtikrina, kad atliekant paketą / atkūrimą bus išvengta klaidų, kai materializuotas rodinys susijęs su skirtingo vartotojo priklausančiomis lentelėmis.
  • Patobulinkite pgl_dump / pg_restore pranešimus apie zlibo kilusių klaidų (Vladimiras Kunšikovas, Alvaro Herrera)
  • Pataisykite pg_dump, naudodami "--clean" parinktį, kad sumažintumėte įvykių trigerius, kaip tikėtasi (Tom Lane)
  • Dabar taip pat teisingai priskiriama įvykių aktyviklių nuosavybė; anksčiau jie buvo atstatyti kaip priklausantys superuseriui paleidus atkūrimo scenarijų.
  • Pataisykite pg_dump naudodami -clean parinktį, kad nepavyktumėte, kai viešoji schema neegzistuoja (Stephen Frost)
  • Pataisykite pg_dump, kad negalėtumėte išleisti negaliojančio SQL tuščiai operatoriaus klasei (Daniel Gustafsson)
  • Pataisykite pg_dump išėjimą į stdout sistemoje "Windows" (Kuntal Ghosh)
  • Suspausto standžiojo teksto išvestis, parašyta į stdout, turėtų sugadintus duomenis, nes failo deskriptorius nebuvo įdėtas į dvejetainį režimą.
  • Pataisykite pg_get_ruledef (), kad spausdintumėte teisingą išvaizdą ON SELECT nuostatai, kurios stulpeliai buvo pervardyti (Tom Lane)
  • Kai kuriuose kampuose pg_dump remiasi pg_get_ruledef (), kad iškrautų peržiūras, taigi ši klaida gali sukelti nukritimo / perkrovimo gedimus.
  • Nustatykite išorinių jungčių dempingą su tuščiais apribojimais, pvz., "NATURAL LEFT JOIN" rezultatas be bendrų stulpelių (Tom Lane)
  • Ištaisykite funkcijų išraiškų ištrynimą iš FROM clause tais atvejais, kai išraiška neišnyksta į kažką panašaus į funkcijos skambutį (Tom Lane)
  • Pataisykite pg_basebackup išvestį į stdout sistemoje "Windows" ("Haribabu Kommi")
  • Į atsarginę kopiją, parašytą stdout, būtų sugadintų duomenų, nes failo deskriptorius nebuvo įdėtas į dvejetainį režimą.
  • Pataisykite pg_rewind, kad teisingai tvarkytų daugiau nei 2 GB failus (Kuntal Ghosh, Michael Paquier)
  • Paprastai tokie failai nebus rodomi "PostgreSQL" duomenų kataloguose, tačiau kai kuriais atvejais jie gali būti.
  • Pataisykite pg_upgrade, norėdami įsitikinti, kad WAL įrašo pabaigoje nėra wal_level = minimalaus (Bruce Momjian)
  • Ši sąlyga gali užkirsti kelią naujovintam budėjimo režimo serveriams iš naujo prisijungti.
  • Pataisykite pg_xlogdump WAL įrašų ilgio skaičiavimą (Andres Freundas)
  • Po postgres_fdw atkurkite jungtis prie nuotolinių serverių po ALTER SERVER ar ALTER USER MAPPING komandų (Kyotaro Horiguchi)
  • Tai užtikrina, kad pasirinkimo pakeitimai, susiję su ryšio parametrais, bus taikomi nedelsiant.
  • "postgres_fdw" leidžia atšaukti nuotolines operacijų valdymo komandas (Robert Haas, Rafia Sabih)
  • Šis pakeitimas leidžia mums greitai išvengti neatsakingo nuotolinio serverio laukimo daugeliu atvejų nei anksčiau.
  • Padidinkite MAX_SYSCACHE_CALLBACKS, kad suteiktumėte daugiau vietos pratęsimams (Tom Lane)
  • Visada naudokite -fPIC, o ne -fpic, kai kuriate bendrinamas bibliotekas su gcc (Tom Lane)
  • Tai palaiko didesnes bibliotekų išplėtimą tose platformose, kuriose jie skiriasi.
  • Kuriant MSVC tvarkykite atvejį, kai "openssl" biblioteka nėra aplanke VC (Andrew Dunstan)
  • Kuriant MSVC, pridėkite tinkamą kelią libxml2 antraščių failams (Andrew Dunstan)
  • Tai pašalina ankstesnį poreikį perkelti įprastus "libxml2" "Windows" įrenginius.
  • Į MSVC kūrimą atpažįsta Tcl biblioteką, pavadintą tcl86.lib (Noah Misch)
  • Kuriant MSVC, gaukite PROVE_FLAGS nustatymus komandinėje eilutėje vcregress.pl (Andrew Dunstan)

Panaši programinė įranga

Free-Vote
Free-Vote

3 Jun 15

DAMP
DAMP

2 Jun 15

Qercus
Qercus

14 Apr 15

Komentarai PostgreSQL

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!