PostgreSQL

Yazılım ekran görüntüsü:
PostgreSQL
Yazılım detaylar:
Versiyon: 10.5 / 11 Beta 3 Güncelenir
Qayıt: 16 Aug 18
Lisans: Ücretsiz
Popülerlik: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL , MariaDB, MySQL veya SQLite projeleri tarzında açık kaynaklı, güçlü, güvenilir, kararlı, kurumsal kullanıma hazır ve ücretsiz nesne-ilişkisel veritabanı sistemidir. Çok özel olarak özelleştirilebilen ve çok sayıda çekici özellik içeren bir ASID (Atomisite, Tutarlılık, İzolasyon, Dayanıklılık) uyumlu veritabanı sunucusu / motoru, yukarıda sözü edilen veritabanı motorları için harika bir yedek oluşturuyor.


Bir bakışta özellikler

Temel özellikler arasında yabancı anahtarlar, görünümler, birleştirmeler, tetikleyiciler ve saklı yordamlar için destek, birden fazla dil desteği, BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP ve dahil olmak üzere çok çeşitli SQL veri türleri için destek yer alır. TARİH.

Ayrıca, yazılım, her türlü multimedya dosyası (video, ses ve fotoğraf) dahil olmak üzere ikili büyük nesneleri depolamak için destek ile birlikte gelir ve geliştiriciler C, C ++, Python, Perl, Ruby için yerel programlama arabirimleri sağlar. Java, .Net, Tcl ve ODBC programlama dilleri.

Diğer ilginç özelliklerin yanı sıra MVCC (Çoklu Sürüm Eşzamanlılık Kontrolü), tablo alanları, çok baytlı karakter kodlamaları, zaman kurtarma noktası, olgun sorgu iyileştirici ve planlayıcı, asenkron çoğaltma, çevrimiçi yedeklemeler, iç içe geçmiş işlemler ( savepoints), sıcak yedeklemeler, hata toleransı için ön kayıt, uluslararası karakter kümeleri desteği ve Unicode desteği.


Sayılarla PostgreSQL

Şu anda, PostgreSQL veritabanı sunucusu veritabanları için sınırsız boyutu destekliyor, 32 TB tablo için maksimum boyut, satır başına 1,6 TB, tablo başına sınırsız satır, tablo başına sınırsız satır olmalı ve her tablo için 250 ile 1600 sütun arasında destek sağlıyor. , sütun türlerine bağlı olarak ve tablo başına sınırsız dizinleri destekler.


Desteklenen işletim sistemleri

PostgreSQL, GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X ve Microsoft Windows dahil olmak üzere tüm ana işletim sistemlerinde başarıyla test edilmiştir. PostgreSQL, hem 32 bit hem de 64 bit mimarileri destekleyen, birçok Linux dağıtımı için önceden derlenmiş ikili paketlerin yanı sıra, evrensel bir kaynak arşivi olarak indirilebilir.

Yeni olan nedir :

  • Bu sürümde iki güvenlik sorunu giderildi. Bu sürüm ayrıca VACUUM, GIN & karma dizinleri, paralel sorgu, mantıksal çoğaltma ve son üç ay içinde bildirilen diğer hatalar ile bulunan sorunları da giderir. Etkilenen PostgreSQL sürümlerini kullanan tüm kullanıcılar mümkün olan en kısa sürede güncellenmelidir.

Yeni olan nedir? sürüm 10.4 / 11 Beta 1:

  • Bu sürüm iki güvenlik sorununu giderir. Bu sürüm ayrıca VACUUM, GIN & karma dizinleri, paralel sorgu, mantıksal çoğaltma ve son üç ay içinde bildirilen diğer hatalar ile bulunan sorunları da giderir. Etkilenen PostgreSQL sürümlerini kullanan tüm kullanıcılar mümkün olan en kısa sürede güncellenmelidir.

Sürümde yeni: :

  • Kullanıcı eşleme seçenekleri (Noah Misch) olarak saklanan şifreleri korumak için pg_user_mappings.umoptions öğesinin görünürlüğünü daha da kısıtlayın
  • CVE-2017-7486 düzeltmesi yanlıştı: Kullanıcıya, ilgili yabancı sunucu üzerinde USAGE izni olmasa bile, kendi kullanıcı eşlemesindeki seçenekleri görmesine izin verildi. Bu tür seçenekler, sunucu sahibinin kendisi yerine kullanıcı tarafından sağlanan bir parola içerebilir. İnformation_schema.user_mapping_options, bu gibi durumlarda seçenekleri göstermediğinden, pg_user_mappings de bulunmamalıdır. (CVE-2017-7547)
  • Tek başına, bu düzeltme eki yalnızca yeni initdb veritabanlarında davranışı düzeltecektir. Bu değişikliği mevcut bir veritabanında uygulamak isterseniz, aşağıdakileri yapmanız gerekir:
  • allow_system_table_mods = postgresql.conf dosyasına ekledikten sonra postmaster'ı yeniden başlatın. (ALTER SYSTEM'i destekleyen sürümlerde, yapılandırmayı değiştirmek için bunu kullanabilirsiniz, ancak yine de yeniden başlatmanız gerekir.)
  • Kümenin her veritabanında, aşağıdaki komutları süper kullanıcı olarak çalıştırın:
  • SETearch_path = pg_catalog;
  • OLUŞTURUN VEYA GÖRÜNÜMÜ pg_user_mappings AS
  • SEÇ
  • U.oid AS,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • U.umuser = 0 DAHA SONRA OLDUĞU DURUM
  • 'kamu'
  • BAŞKA
  • A.rolname
  • END kullanıcı adı,
  • VARSA (U.umuser 0 VE A.rolname = current_user
  • )
  • VE (pg_has_role (S.srvowner, 'USAGE')
  • OR has_server_privilege (S.oid, 'USAGE')))
  • VEYA (U.umuser = 0 VE pg_has_role (S.srvowner, 'USAGE'))
  • VEYA (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • O zamanlar U.umoptions
  • ELSE NULL END umoptions olarak
  • FR_ pg_user_mapping U
  • SOL JOIN pg_authid A AÇIK (A.oid = U.umuser) JOIN
  • pg_foreign_server S AÇIK (U.umserver = S.oid);
  • Şablon0 ve şablon1 veritabanlarını dahil etmeyi unutmayın veya daha sonra oluşturduğunuz veritabanlarında güvenlik açığı hala mevcut olacaktır. Şablonu düzeltmek için bağlantıları geçici olarak kabul etmelisiniz. PostgreSQL 9.5 ve sonrası,
  • kullanabilirsiniz
  • ALTER DATABASE template0 ALLOW_CONNECTIONS ile doğru;
  • ve sonra template0’i düzelttikten sonra bunu
  • ile geri alın
  • ALTER DATABASE template0 ALLOW_CONNECTIONS öğesi yanlış;
  • Önceki sürümlerde, bunun yerine
  • kullanın
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Son olarak, allow_system_table_mods yapılandırma ayarını kaldırın ve tekrar postmaster’ı yeniden başlatın.
  • Tüm parola tabanlı kimlik doğrulama yöntemlerinde boş parolalara izin vermeyin (Heikki Linnakangas)
  • libpq, boş parola belirtimlerini yoksayar ve bunları sunucuya iletmez. Dolayısıyla, bir kullanıcının şifresi boş dizgiye ayarlanmışsa, bu şifreyle psql veya diğer libpq tabanlı istemciler aracılığıyla oturum açmak imkansızdır. Bir yönetici bu nedenle şifrenin boş olarak ayarlanmasının şifre girişini devre dışı bırakmaya eşdeğer olduğuna inanabilir. Bununla birlikte, değiştirilmiş veya libpq tabanlı olmayan bir istemci ile, hangi kimlik doğrulama yönteminin yapılandırıldığına bağlı olarak oturum açmak mümkün olabilir. Özellikle en yaygın yöntem olan md5, boş şifreleri kabul etti. Her durumda boş şifreleri reddetmek için sunucuyu değiştirin. (CVE-2017-7546)
  • lo_put () öğesini, hedef büyük nesnede (Tom Lane, Michael Paquier) GÜNCELLEME ayrıcalığını kontrol edin
  • lo_put () mutlaka lowrite () ile aynı izinleri gerektirmeli, ancak kontrol eksikti ve herhangi bir kullanıcının verileri büyük bir nesnede değiştirmesine izin verdi. (CVE-2017-7548)
  • Bekleme sunucularını pg_upgrade (Bruce Momjian) ile yükseltme işlemiyle ilgili belgeleri düzeltin
  • Önceki belgeler, kullanıcıların pg_upgrade'yi çalıştırdıktan sonra, ancak bekleme sunucularını senkronize etmeden önce birincil sunucuyu başlatması / durdurması talimatını verdi. Bu sıra güvenli değil.
  • Tuple güncelleme zincirlerinin eşzamanlı kilitlenmesini onar (Alvaro Herrera)
  • Birkaç oturumda, eski bir anlık görüntü kullanılarak, bir tuple güncelleme zincirini çakışmayan kilitleme modlarıyla eşzamanlı olarak kilitlerlerse ve hepsi başarılı olursa, bir yarıştan dolayı bazılarının yine de başarısız olmasına (ve canlı bir tuple sürümü bulunmadığı sonucuna varılırsa) olanak sağlamıştır. şart. Bunun, kesinlikle var olan ama aynı zamanda güncellenmekte olan bir tuple göremeyen yabancı anahtar kontrolleri gibi sonuçları vardı.
  • XMAX, bir tane hala ilginç olan üyeye (Teodor Sigaev) sahip bir çoklu donma olan bir tuple donarken olası veri bozulmasını düzeltin
  • Tamsayı taşmasını engelle ve bir milyardan fazla bellekte sıralamada çökme meydana gelmesi (Sergey Koposov)
  • Windows'ta, yeni işlemde (Tom Lane, Amit Kapila) paylaşılan belleğimiz için adres aralığını rezerve edemezsek, süreç oluşturma işlemini tekrar deneyin
  • Bunun, büyük olasılıkla antivirüs ürünlerinden kaynaklanan parazitlerden kaynaklanan, nadiren yapılan çocuk işlemi başlatma hatalarını gidermesi bekleniyor.
  • Windows sürümlerinde paylaşılan yüklem-içi karma tablosunun düşük olasılıkla bozulması düzeltildi (Thomas Munro, Tom Lane)
  • Bir SSL bağlantısının, bağlantı sıfırlaması (Michael Paquier) gibi temiz bir şekilde kapatılmasından kaçının
  • Müşterilere SSL oturumu biletleri göndermeyi engelle (Tom Lane)
  • Bu düzeltme, yeniden bağlantı hatalarını biletle ilgili istemci tarafı SSL koduyla engeller.
  • Solaris (Tom Lane) üzerinde tcp_keepalives_idle ayarı için kod düzeltildi
  • İstatistiğin kapatılmasından ve hemen yeniden başlatıldıktan (Tom Lane) hemen sonra yayınlanan sorgulama mesajlarını onurlandırmak için istatistik toplayıcısını düzeltin
  • Bir önceki posta yetkilisinin kapatılmasının yarısından bir saniyesinde yayınlanan istatistik sorguları etkili bir şekilde göz ardı edildi.
  • İstatistik koleksiyoncunun alma arabelleği boyutunu en az 100 KB (Tom Lane) olduğundan emin olun
  • Bu, varsayılan arabellek boyutu daha düşük olan eski platformlarda istatistik verilerinin düşme riskini azaltır.
  • Bekleme bir XLOG_SWITCH WAL kaydını (Andres Freund) işledikten hemen sonra tanıtıldığında olası bir WAL segmentinin olası oluşturulmasını düzeltin
  • İstemcinin kapatma isteğinde bulunduğunda (Tom Lane) walsender'ın hemen çıkmasını sağlayın
  • SurrUP ve SIGUSR1 işlemlerinin walsender süreçlerinde düzeltilmesi (Petr Jelinek, Andres Freund)
  • Kapatma denetimleri sırasında tetikleyicinin tetiklediği paniklerin önlenmesi (Andres Freund, Michael Paquier)
  • Postmaster'daki (Tom Lane) yarış durumu nedeniyle walreceiver işlemlerinin gereksiz şekilde yavaş yeniden başlatılmasını sağlayın
  • Mantıksal kod çözme sırasında diske dökülen küçük alt işlemlerin sızmasını giderme (Andres Freund)
  • Bu, aşırı disk alanı tüketen geçici dosyalarla sonuçlandı.
  • Mantıksal kod çözme yuvaları oluşturulurken anlık görüntüler oluşturmak için gereken çalışmayı azaltın (Andres Freund, Petr Jelinek)
  • Önceki algoritma, çok sayıda açık işlem içeren bir sunucuda çok pahalıydı.
  • Mantıksal çözme yuvalarının oluşturulmasını süresiz olarak geciktirebilecek yarış koşullarını düzeltin (Andres Freund, Petr Jelinek)
  • Syscache geçersiz kılma olaylarını (Tom Lane) işlemede ek yükü azaltın
  • Bu, sık sık önbellek geçersiz kılmalarını tetikleyen mantıksal kod çözme için özellikle yararlıdır.
  • Bazı durumlarda, yabancı anahtar kısıtlamalarının (David Rowley) varlığına dayalı olarak birleştirme seçiciliğini tahmin etmek için kullanılan yanlış sezgiyi kaldır
  • Çok sütunlu bir yabancı anahtar kısıtının bulunduğu, ancak bir sorgunun birleştirme yapısıyla tam olarak eşleşmediği bazı durumlarda, planlayıcı, iyi çalışmayan bir keşif yöntemi kullanmıştır. Bu gibi durumları 9.6'dan önce tahmin edilen şekilde geri alın.
  • INSERT veya UPDATE öğesinin, alan üzerinde dizi türü (Tom Lane) olan bir sütunun birden çok öğesine atadığı durumları düzeltme
  • Bir toplama işlevinin (Tom Lane) argümanları içinde yer alan alt SELECTlerde pencere işlevlerinin kullanılmasına izin ver
  • Alttaki tablo bir dış tablo (Etsuro Fujita) olduğunda bir görünümün KONTROL SEÇENEKLERİ yan tümcesinin doğru şekilde uygulandığından emin olun
  • Önceden, güncelleme tamamen yabancı sunucuya itilmiş olabilir, ancak görüntülenme koşullarını doğrulama gereği ortadan kalkar.
  • Otomatik oluşturulmuş dizi türlerini ALTER ... RENAME (Vik Fearing)
  • sırasında yoldan ayırma
  • Önceden, CREATE sırasında yoldan çelişen otomatik olarak oluşturulmuş dizi türünü yeniden adlandırırdık; Bu düzeltme, işlemleri yeniden adlandırmaya yönelik davranışı genişletir.
  • Tabloya (David Rowley) ait bir kısıtlama hakkında bir yorum olduğunda, sarkan işaretçiyi ALTER TABLE'da düzeltin
  • Yorumu yeniden yapılandırılmış kısıtlamaya yeniden uygulamak, garip bir hata mesajı veya hatta kilitlenme ile başarısız olabilir.
  • ALTER USER ... SET'ün, ALTER ROLE ... SET (Peter Eisentraut) 'ın yaptığı tüm sözdizimi varyantlarını kabul ettiğinden emin olun
  • Yabancı bir tablonun CHECK kısıtlamalarının başlangıçta VALID DEĞİL (Amit Langote) olmasına izin ver
  • CREATE TABLE, kısıtlamaların hemen doğrulanabilmesi için tablonun boş olması gerekçesiyle CHECK kısıtlamaları için VALID belirticilerini sessizce düşürmez. Fakat bu, CREATE FOREIGN TABLE için yanlıştır, burada alttaki tablo boş olduğunu varsaymak için bir neden yoktur ve kısıtlamaların geçerli olarak kabul edilebilir olarak değerlendirilebileceğine karar vermek bizim işimiz olmasa bile. Bu & quot; optimizasyon & quot; yabancı masalar için.
  • Veri türü I / O işlevinin argümanını değiştirirken veya opak tipten doğru türüne (Heikki Linnakangas) dönüş yaparken bağımlılık bilgisini doğru şekilde güncelle
  • CREATE TYPE güncellemeleri I / O işlevlerinde bu uzun süredir geçersiz bir tarzda bildirilir, ancak türüne bağımlılık kaydetmeyi unutur ve sonraki bir DROP TYPE'in arka planda bozuk işlev tanımları bırakmasına izin verir.
  • COPY bir sorgunun sonucundan kopyalarken sorgu planında paralelliğe izin ver (Andres Freund)
  • ANALYZE bir tsvector sütunu (Heikki Linnakangas) işlediğinde bellek kullanımını azaltın
  • Para değerlerini tamsayılar veya şamandıralar (Tom Lane) ile çarparken veya bölerken gereksiz hassasiyet kaybını ve özensiz yuvarlamayı düzeltin
  • Regprocedurein () (Tom Lane) gibi tanımlayıcıları ayrıştıran işlevlerdeki boşlukları kontrol edin
  • Geçerli yerel ortama bağlı olarak, bu işlevler çokbaytlı karakterlerin parçalarını beyaz boşluk olarak yanlış yorumlayabilir.
  • PL / Perl (Ashutosh Sharma, Tom Lane) derlerken Perl'den ilgili #define sembollerini kullanın
  • Bu, tipik olarak bir "el sıkışma" olarak ortaya çıkan taşınabilirlik sorunlarını önler. Son Perl sürümleriyle çalışırken kitaplık yükü sırasında uyumsuzluk.
  • Libpq'de, başarısız bağlantı girişimi (Michael Paquier) sonrasında GSS / SASL ve SSPI kimlik doğrulama durumunu sıfırlayın
  • Bunun yapılmaması, SSL'den SSL olmayan bağlantılara geri döndüğünde, SSL denemesinde bir GSS / SASL hatasının her zaman SSL olmayan girişimin başarısız olmasına neden olacağı anlamına geliyordu. SSPI başarısız oldu, ama bellek sızdırıldı.
  • psql'de, COPY FROM STDIN, bir klavye EOF sinyali ile bittiğinde ve daha sonra COPY FROM STDIN denenirse (Thomas Munro) hata düzeltildi
  • BSD'den türetilen platformlarda (macOS dahil) bu yanlış davranış gözlenmiştir, ancak diğerlerinin çoğunda değildir.
  • pg_dump ve pg_restore'yu düzeltmek için REFRESH MATERIALIZED VIEW komutlarını sonlandırmak (Tom Lane)
  • Bu, belirli bir görünüm, farklı bir kullanıcının sahip olduğu tablolara başvurduğunda döküm / geri yükleme sırasında hataları önler.
  • pg_dump / pg_restore'un zlib'den kaynaklanan hata koşullarını raporlamasını iyileştirme (Vladimir Kunschikov, Alvaro Herrera)
  • Etkinlik tetikleyicilerini beklendiği gibi bırakmak için pg_dump dosyasını --clean seçeneği ile düzeltin (Tom Lane)
  • Ayrıca, artık olay tetikleyicilerinin sahipliğini doğru bir şekilde atamaktadır; önce, geri yükleme betiğini çalıştıran süper kullanıcı tarafından sahiplenildikleri için geri yüklendi.
  • pg_dump dosyasını - public seçeneğiyle (Stephen Frost) başarısız olduğunda başarısız olmamak için --clean seçeneği ile düzeltin
  • pg_dump'ı boş bir operatör sınıfı (Daniel Gustafsson) için geçersiz SQL yaymayacak şekilde düzeltin
  • pg_dump çıkışını Windows'da stdout'a (Kuntal Ghosh) sabitleyin
  • Stdout'a yazılan sıkıştırılmış bir düz metin dökümü, dosya tanıtıcısını ikili moda geçirmemek nedeniyle bozuk veriler içerecektir.
  • Sütunları yeniden adlandırılmış bir görüntünün ON SELECT kuralı için doğru çıktıyı yazdırmak üzere pg_get_ruledef () öğesini düzeltin (Tom Lane)
  • Bazı köşe durumlarında, pg_dump, görünümleri indirmek için pg_get_ruledef () öğesini kullanır; böylece bu hata, dökümü / yeniden yükleme başarısızlıklarına neden olabilir.
  • Dış birleştirme noktalarının, ortak bir sütun içermeyen bir NATURAL SOL JOIN (Tom Lane) sonucu gibi boş kısıtlamalarla dumpingini giderme
  • İfadenin bir işlev çağrısı (Tom Lane) gibi görünen bir öğeye ayrılmadığı durumlarda FROM yan tümcesinde işlev ifadelerinin dökümünü düzeltir
  • Windows'ta (Haribabu Kommi) pg_basebackup çıktısını düzeltin
  • Dosya tanıtıcısını ikili moda geçiremediğinden, stdout'a yazılan bir yedek bozuk veri içerecektir.
  • 2 GB'yi aşan dosyaları (Kuntal Ghosh, Michael Paquier) doğru şekilde işlemek için pg_rewind öğesini onarın
  • Normalde bu tür dosyalar PostgreSQL veri dizinlerinde görünmez, ancak bazı durumlarda mevcut olabilirler.
  • Son WAL kaydının wal_level = minimum (Bruce Momjian) olmaması için pg_upgrade'yi düzeltin
  • Bu koşul, yükseltilmiş yedek sunucuların yeniden bağlanmasını engelleyebilir.
  • pg_xlogdump'ın WAL kayıt uzunluğunun (Andres Freund) hesaplamasını düzeltin
  • postgres_fdw'de, ALTER SERVER veya ALTER USER MAPPING komutlarından (Kyotaro Horiguchi) sonra uzak sunuculara bağlantıları yeniden kurun
  • Bu, bağlantı parametrelerini etkileyen seçenek değişikliklerinin hemen uygulanmasını sağlar.
  • Postgres_fdw'de uzak işlem kontrol komutlarının iptal edilmesine izin ver (Robert Haas, Rafia Sabih)
  • Bu değişiklik, daha önce birden çok durumda yanıt vermeyen bir uzak sunucu için beklemeden hızla çıkmamıza olanak tanır.
  • Uzantılar için daha fazla yer sağlamak üzere MAX_SYSCACHE_CALLBACKS değerini artırın (Tom Lane)
  • Paylaşılan kitaplıkları gcc (Tom Lane) ile oluştururken her zaman -fPIC'yi değil, -fpic'yi kullanın
  • Bu, daha büyük uzantı kitaplıklarını, fark yarattığı platformlarda destekler.
  • MSVC'de, openssl kütüphanesinin bir VC alt dizininde (Andrew Dunstan) olmadığı durumu ele alın
  • MSVC'de libxml2 başlık dosyalarını (Andrew Dunstan) uygun bir yol ekleyin.
  • Bu, standart Windows libxml2 yüklemelerinde bir şeyleri harekete geçirme gereksinimini düzeltir.
  • MSVC'de, tcl86.lib (Noah Misch) adlı bir Tcl kitaplığını tanıyın
  • MSVC'de vcregress.pl komut satırında (Andrew Dunstan) PROVE_FLAGS ayarını onurlandırır

9.6.4 sürümündeki yeni :

  • Kullanıcı eşleme seçenekleri (Noah Misch) olarak saklanan şifreleri korumak için pg_user_mappings.umoptions öğesinin görünürlüğünü daha da kısıtlayın
  • CVE-2017-7486 düzeltmesi yanlıştı: Kullanıcıya, ilgili yabancı sunucu üzerinde USAGE izni olmasa bile, kendi kullanıcı eşlemesindeki seçenekleri görmesine izin verildi. Bu tür seçenekler, sunucu sahibinin kendisi yerine kullanıcı tarafından sağlanan bir parola içerebilir. İnformation_schema.user_mapping_options, bu gibi durumlarda seçenekleri göstermediğinden, pg_user_mappings de bulunmamalıdır. (CVE-2017-7547)
  • Tek başına, bu düzeltme eki yalnızca yeni initdb veritabanlarında davranışı düzeltecektir. Bu değişikliği mevcut bir veritabanında uygulamak isterseniz, aşağıdakileri yapmanız gerekir:
  • allow_system_table_mods = postgresql.conf dosyasına ekledikten sonra postmaster'ı yeniden başlatın. (ALTER SYSTEM'i destekleyen sürümlerde, yapılandırmayı değiştirmek için bunu kullanabilirsiniz, ancak yine de yeniden başlatmanız gerekir.)
  • Kümenin her veritabanında, aşağıdaki komutları süper kullanıcı olarak çalıştırın:
  • SETearch_path = pg_catalog;
  • OLUŞTURUN VEYA GÖRÜNÜMÜ pg_user_mappings AS
  • SEÇ
  • U.oid AS,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • U.umuser = 0 DAHA SONRA OLDUĞU DURUM
  • 'kamu'
  • BAŞKA
  • A.rolname
  • END kullanıcı adı,
  • VARSA (U.umuser 0 VE A.rolname = current_user
  • )
  • VE (pg_has_role (S.srvowner, 'USAGE')
  • OR has_server_privilege (S.oid, 'USAGE')))
  • VEYA (U.umuser = 0 VE pg_has_role (S.srvowner, 'USAGE'))
  • VEYA (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
  • O zamanlar U.umoptions
  • ELSE NULL END umoptions olarak
  • FR_ pg_user_mapping U
  • SOL JOIN pg_authid A AÇIK (A.oid = U.umuser) JOIN
  • pg_foreign_server S AÇIK (U.umserver = S.oid);
  • Şablon0 ve şablon1 veritabanlarını dahil etmeyi unutmayın veya daha sonra oluşturduğunuz veritabanlarında güvenlik açığı hala mevcut olacaktır. Şablonu düzeltmek için bağlantıları geçici olarak kabul etmelisiniz. PostgreSQL 9.5 ve sonrası,
  • kullanabilirsiniz
  • ALTER DATABASE template0 ALLOW_CONNECTIONS ile doğru;
  • ve sonra template0’i düzelttikten sonra bunu
  • ile geri alın
  • ALTER DATABASE template0 ALLOW_CONNECTIONS öğesi yanlış;
  • Önceki sürümlerde, bunun yerine
  • kullanın
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Son olarak, allow_system_table_mods yapılandırma ayarını kaldırın ve tekrar postmaster’ı yeniden başlatın.
  • Tüm parola tabanlı kimlik doğrulama yöntemlerinde boş parolalara izin vermeyin (Heikki Linnakangas)
  • libpq, boş parola belirtimlerini yoksayar ve bunları sunucuya iletmez. Dolayısıyla, bir kullanıcının şifresi boş dizgiye ayarlanmışsa, bu şifreyle psql veya diğer libpq tabanlı istemciler aracılığıyla oturum açmak imkansızdır. Bir yönetici bu nedenle şifrenin boş olarak ayarlanmasının şifre girişini devre dışı bırakmaya eşdeğer olduğuna inanabilir. Bununla birlikte, değiştirilmiş veya libpq tabanlı olmayan bir istemci ile, hangi kimlik doğrulama yönteminin yapılandırıldığına bağlı olarak oturum açmak mümkün olabilir. Özellikle en yaygın yöntem olan md5, boş şifreleri kabul etti. Her durumda boş şifreleri reddetmek için sunucuyu değiştirin. (CVE-2017-7546)
  • lo_put () öğesini, hedef büyük nesnede (Tom Lane, Michael Paquier) GÜNCELLEME ayrıcalığını kontrol edin
  • lo_put () mutlaka lowrite () ile aynı izinleri gerektirmeli, ancak kontrol eksikti ve herhangi bir kullanıcının verileri büyük bir nesnede değiştirmesine izin verdi. (CVE-2017-7548)
  • Bekleme sunucularını pg_upgrade (Bruce Momjian) ile yükseltme işlemiyle ilgili belgeleri düzeltin
  • Önceki belgeler, kullanıcıların pg_upgrade'yi çalıştırdıktan sonra, ancak bekleme sunucularını senkronize etmeden önce birincil sunucuyu başlatması / durdurması talimatını verdi. Bu sıra güvenli değil.
  • Tuple güncelleme zincirlerinin eşzamanlı kilitlenmesini onar (Alvaro Herrera)
  • Birkaç oturumda, eski bir anlık görüntü kullanılarak, bir tuple güncelleme zincirini çakışmayan kilitleme modlarıyla eşzamanlı olarak kilitlerlerse ve hepsi başarılı olursa, bir yarıştan dolayı bazılarının yine de başarısız olmasına (ve canlı bir tuple sürümü bulunmadığı sonucuna varılırsa) olanak sağlamıştır. şart. Bunun, kesinlikle var olan ama aynı zamanda güncellenmekte olan bir tuple göremeyen yabancı anahtar kontrolleri gibi sonuçları vardı.
  • XMAX, bir tane hala ilginç olan üyeye (Teodor Sigaev) sahip bir çoklu donma olan bir tuple donarken olası veri bozulmasını düzeltin
  • Tamsayı taşmasını engelle ve bir milyardan fazla bellekte sıralamada çökme meydana gelmesi (Sergey Koposov)
  • Windows'ta, yeni işlemde (Tom Lane, Amit Kapila) paylaşılan belleğimiz için adres aralığını rezerve edemezsek, süreç oluşturma işlemini tekrar deneyin
  • Bunun, büyük olasılıkla antivirüs ürünlerinden kaynaklanan parazitlerden kaynaklanan, nadiren yapılan çocuk işlemi başlatma hatalarını gidermesi bekleniyor.
  • Windows sürümlerinde paylaşılan yüklem-içi karma tablosunun düşük olasılıkla bozulması düzeltildi (Thomas Munro, Tom Lane)
  • Bir SSL bağlantısının, bağlantı sıfırlaması (Michael Paquier) gibi temiz bir şekilde kapatılmasından kaçının
  • Müşterilere SSL oturumu biletleri göndermeyi engelle (Tom Lane)
  • Bu düzeltme, yeniden bağlantı hatalarını biletle ilgili istemci tarafı SSL koduyla engeller.
  • Solaris (Tom Lane) üzerinde tcp_keepalives_idle ayarı için kod düzeltildi
  • İstatistiğin kapatılmasından ve hemen yeniden başlatıldıktan (Tom Lane) hemen sonra yayınlanan sorgulama mesajlarını onurlandırmak için istatistik toplayıcısını düzeltin
  • Bir önceki posta yetkilisinin kapatılmasının yarısından bir saniyesinde yayınlanan istatistik sorguları etkili bir şekilde göz ardı edildi.
  • İstatistik koleksiyoncunun alma arabelleği boyutunu en az 100 KB (Tom Lane) olduğundan emin olun
  • Bu, varsayılan arabellek boyutu daha düşük olan eski platformlarda istatistik verilerinin düşme riskini azaltır.
  • Bekleme bir XLOG_SWITCH WAL kaydını (Andres Freund) işledikten hemen sonra tanıtıldığında olası bir WAL segmentinin olası oluşturulmasını düzeltin
  • İstemcinin kapatma isteğinde bulunduğunda (Tom Lane) walsender'ın hemen çıkmasını sağlayın
  • SurrUP ve SIGUSR1 işlemlerinin walsender süreçlerinde düzeltilmesi (Petr Jelinek, Andres Freund)
  • Kapatma denetimleri sırasında tetikleyicinin tetiklediği paniklerin önlenmesi (Andres Freund, Michael Paquier)
  • Postmaster'daki (Tom Lane) yarış durumu nedeniyle walreceiver işlemlerinin gereksiz şekilde yavaş yeniden başlatılmasını sağlayın
  • Mantıksal kod çözme sırasında diske dökülen küçük alt işlemlerin sızmasını giderme (Andres Freund)
  • Bu, aşırı disk alanı tüketen geçici dosyalarla sonuçlandı.
  • Mantıksal kod çözme yuvaları oluşturulurken anlık görüntüler oluşturmak için gereken çalışmayı azaltın (Andres Freund, Petr Jelinek)
  • Önceki algoritma, çok sayıda açık işlem içeren bir sunucuda çok pahalıydı.
  • Mantıksal çözme yuvalarının oluşturulmasını süresiz olarak geciktirebilecek yarış koşullarını düzeltin (Andres Freund, Petr Jelinek)
  • Syscache geçersiz kılma olaylarını (Tom Lane) işlemede ek yükü azaltın
  • Bu, sık sık önbellek geçersiz kılmalarını tetikleyen mantıksal kod çözme için özellikle yararlıdır.
  • Bazı durumlarda, yabancı anahtar kısıtlamalarının (David Rowley) varlığına dayalı olarak birleştirme seçiciliğini tahmin etmek için kullanılan yanlış sezgiyi kaldır
  • Çok sütunlu bir yabancı anahtar kısıtının bulunduğu, ancak bir sorgunun birleştirme yapısıyla tam olarak eşleşmediği bazı durumlarda, planlayıcı, iyi çalışmayan bir keşif yöntemi kullanmıştır. Bu gibi durumları 9.6'dan önce tahmin edilen şekilde geri alın.
  • INSERT veya UPDATE öğesinin, alan üzerinde dizi türü (Tom Lane) olan bir sütunun birden çok öğesine atadığı durumları düzeltme
  • Bir toplama işlevinin (Tom Lane) argümanları içinde yer alan alt SELECTlerde pencere işlevlerinin kullanılmasına izin ver
  • Alttaki tablo bir dış tablo (Etsuro Fujita) olduğunda bir görünümün KONTROL SEÇENEKLERİ yan tümcesinin doğru şekilde uygulandığından emin olun
  • Önceden, güncelleme tamamen yabancı sunucuya itilmiş olabilir, ancak görüntülenme koşullarını doğrulama gereği ortadan kalkar.
  • Otomatik oluşturulmuş dizi türlerini ALTER ... RENAME (Vik Fearing)
  • sırasında yoldan ayırma
  • Önceden, CREATE sırasında yoldan çelişen otomatik olarak oluşturulmuş dizi türünü yeniden adlandırırdık; Bu düzeltme, işlemleri yeniden adlandırmaya yönelik davranışı genişletir.
  • Tabloya (David Rowley) ait bir kısıtlama hakkında bir yorum olduğunda, sarkan işaretçiyi ALTER TABLE'da düzeltin
  • Yorumu yeniden yapılandırılmış kısıtlamaya yeniden uygulamak, garip bir hata mesajı veya hatta kilitlenme ile başarısız olabilir.
  • ALTER USER ... SET'ün, ALTER ROLE ... SET (Peter Eisentraut) 'ın yaptığı tüm sözdizimi varyantlarını kabul ettiğinden emin olun
  • Yabancı bir tablonun CHECK kısıtlamalarının başlangıçta VALID DEĞİL (Amit Langote) olmasına izin ver
  • CREATE TABLE, kısıtlamaların hemen doğrulanabilmesi için tablonun boş olması gerekçesiyle CHECK kısıtlamaları için VALID belirticilerini sessizce düşürmez. Fakat bu, CREATE FOREIGN TABLE için yanlıştır, burada alttaki tablo boş olduğunu varsaymak için bir neden yoktur ve kısıtlamaların geçerli olarak kabul edilebilir olarak değerlendirilebileceğine karar vermek bizim işimiz olmasa bile. Yabancı tablolar için bu "optimizasyonu" atla.
  • Veri türü I / O işlevinin argümanını değiştirirken veya opak tipten doğru türüne (Heikki Linnakangas) dönüş yaparken bağımlılık bilgisini doğru şekilde güncelle
  • CREATE TYPE güncellemeleri I / O işlevlerinde bu uzun süredir geçersiz bir tarzda bildirilir, ancak türüne bağımlılık kaydetmeyi unutur ve sonraki bir DROP TYPE'in arka planda bozuk işlev tanımları bırakmasına izin verir.
  • COPY bir sorgunun sonucundan kopyalarken sorgu planında paralelliğe izin ver (Andres Freund)
  • ANALYZE bir tsvector sütunu (Heikki Linnakangas) işlediğinde bellek kullanımını azaltın
  • Para değerlerini tamsayılar veya şamandıralar (Tom Lane) ile çarparken veya bölerken gereksiz hassasiyet kaybını ve özensiz yuvarlamayı düzeltin
  • Regprocedurein () (Tom Lane) gibi tanımlayıcıları ayrıştıran işlevlerdeki boşlukları kontrol edin
  • Geçerli yerel ortama bağlı olarak, bu işlevler çokbaytlı karakterlerin parçalarını beyaz boşluk olarak yanlış yorumlayabilir.
  • PL / Perl (Ashutosh Sharma, Tom Lane) derlerken Perl'den ilgili #define sembollerini kullanın
  • Bu, son Perl sürümleriyle çalışırken, genellikle kitaplık yükü sırasında "el sıkışma" uyuşmazlığı olarak ortaya çıkan taşınabilirlik sorunlarını önler.
  • Libpq'de, başarısız bağlantı girişimi (Michael Paquier) sonrasında GSS / SASL ve SSPI kimlik doğrulama durumunu sıfırlayın
  • Bunun yapılmaması, SSL'den SSL olmayan bağlantılara geri döndüğünde, SSL denemesinde bir GSS / SASL hatasının her zaman SSL olmayan girişimin başarısız olmasına neden olacağı anlamına geliyordu. SSPI başarısız oldu, ama bellek sızdırıldı.
  • psql'de, COPY FROM STDIN, bir klavye EOF sinyali ile bittiğinde ve daha sonra COPY FROM STDIN denenirse (Thomas Munro) hata düzeltildi
  • BSD'den türetilen platformlarda (macOS dahil) bu yanlış davranış gözlenmiştir, ancak diğerlerinin çoğunda değildir.
  • pg_dump ve pg_restore'yu düzeltmek için REFRESH MATERIALIZED VIEW komutlarını sonlandırmak (Tom Lane)
  • Bu, belirli bir görünüm, farklı bir kullanıcının sahip olduğu tablolara başvurduğunda döküm / geri yükleme sırasında hataları önler.
  • pg_dump / pg_restore'un zlib'den kaynaklanan hata koşullarını raporlamasını iyileştirme (Vladimir Kunschikov, Alvaro Herrera)
  • Etkinlik tetikleyicilerini beklendiği gibi bırakmak için pg_dump dosyasını --clean seçeneği ile düzeltin (Tom Lane)
  • Ayrıca, artık olay tetikleyicilerinin sahipliğini doğru bir şekilde atamaktadır; önce, geri yükleme betiğini çalıştıran süper kullanıcı tarafından sahiplenildikleri için geri yüklendi.
  • pg_dump dosyasını - public seçeneğiyle (Stephen Frost) başarısız olduğunda başarısız olmamak için --clean seçeneği ile düzeltin
  • pg_dump'ı boş bir operatör sınıfı (Daniel Gustafsson) için geçersiz SQL yaymayacak şekilde düzeltin
  • pg_dump çıkışını Windows'da stdout'a (Kuntal Ghosh) sabitleyin
  • Stdout'a yazılan sıkıştırılmış bir düz metin dökümü, dosya tanıtıcısını ikili moda geçirmemek nedeniyle bozuk veriler içerecektir.
  • Sütunları yeniden adlandırılmış bir görüntünün ON SELECT kuralı için doğru çıktıyı yazdırmak üzere pg_get_ruledef () öğesini düzeltin (Tom Lane)
  • Bazı köşe durumlarında, pg_dump, görünümleri indirmek için pg_get_ruledef () öğesini kullanır; böylece bu hata, dökümü / yeniden yükleme başarısızlıklarına neden olabilir.
  • Dış birleştirme noktalarının, ortak bir sütun içermeyen bir NATURAL SOL JOIN (Tom Lane) sonucu gibi boş kısıtlamalarla dumpingini giderme
  • İfadenin bir işlev çağrısı (Tom Lane) gibi görünen bir öğeye ayrılmadığı durumlarda FROM yan tümcesinde işlev ifadelerinin dökümünü düzeltir
  • Windows'ta (Haribabu Kommi) pg_basebackup çıktısını düzeltin
  • Dosya tanıtıcısını ikili moda geçiremediğinden, stdout'a yazılan bir yedek bozuk veri içerecektir.
  • 2 GB'yi aşan dosyaları (Kuntal Ghosh, Michael Paquier) doğru şekilde işlemek için pg_rewind öğesini onarın
  • Normalde bu tür dosyalar PostgreSQL veri dizinlerinde görünmez, ancak bazı durumlarda mevcut olabilirler.
  • Son WAL kaydının wal_level = minimum (Bruce Momjian) olmaması için pg_upgrade'yi düzeltin
  • Bu koşul, yükseltilmiş yedek sunucuların yeniden bağlanmasını engelleyebilir.
  • pg_xlogdump'ın WAL kayıt uzunluğunun (Andres Freund) hesaplamasını düzeltin
  • postgres_fdw'de, ALTER SERVER veya ALTER USER MAPPING komutlarından (Kyotaro Horiguchi) sonra uzak sunuculara bağlantıları yeniden kurun
  • Bu, bağlantı parametrelerini etkileyen seçenek değişikliklerinin hemen uygulanmasını sağlar.
  • Postgres_fdw'de uzak işlem kontrol komutlarının iptal edilmesine izin ver (Robert Haas, Rafia Sabih)
  • Bu değişiklik, daha önce birden çok durumda yanıt vermeyen bir uzak sunucu için beklemeden hızla çıkmamıza olanak tanır.
  • Uzantılar için daha fazla yer sağlamak üzere MAX_SYSCACHE_CALLBACKS değerini artırın (Tom Lane)
  • Paylaşılan kitaplıkları gcc (Tom Lane) ile oluştururken her zaman -fPIC'yi değil, -fpic'yi kullanın
  • Bu, daha büyük uzantı kitaplıklarını, fark yarattığı platformlarda destekler.
  • MSVC'de, openssl kütüphanesinin bir VC alt dizininde (Andrew Dunstan) olmadığı durumu ele alın
  • MSVC'de libxml2 başlık dosyalarını (Andrew Dunstan) uygun bir yol ekleyin.
  • Bu, standart Windows libxml2 yüklemelerinde bir şeyleri harekete geçirme gereksinimini düzeltir.
  • MSVC'de, tcl86.lib (Noah Misch) adlı bir Tcl kitaplığını tanıyın
  • MSVC'de vcregress.pl komut satırında (Andrew Dunstan) PROVE_FLAGS ayarını onurlandırır

Benzer yazılım

phpPgAdmin
phpPgAdmin

14 Apr 15

PostGIS
PostGIS

19 Feb 15

SQLite
SQLite

22 Jun 18

deltasql
deltasql

19 Feb 15

Yorumlar PostgreSQL

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!