PostgreSQL

نرم افزار تصویر:
PostgreSQL
جزئیات نرم افزار:
نسخه: 10.5 / 11 Beta 3 به روز شده
ها تاریخ: 16 Aug 18
توسعه دهنده: PostgreSQL Global Development Group
پروانه: رایگان
محبوبیت: 100

Rating: 2.0/5 (Total Votes: 3)

PostgreSQL یک پایگاه داده باز، قدرتمند، قابل اطمینان، پایدار، آماده سازمانی و رایگان سیستم پایگاه داده شی-ارتباطی در سبک پروژه های MariaDB، MySQL یا SQLite است.


امکانات در یک نگاه

ویژگی های کلیدی شامل پشتیبانی از کلید های خارجی، نمایش ها، پیوستن، راه اندازی و ذخیره سازی، پشتیبانی از چندین زبان، پشتیبانی از طیف گسترده ای از انواع داده SQL، از جمله BOOLEAN، CHAR، INTEGER، NUMERIC، VARCHAR، INTERVAL، TIMESTAMP و DATE.

علاوه بر این، این نرم افزار با پشتیبانی از ذخیره سازی اشیاء بزرگ باینری، از جمله انواع فایل های چند رسانه ای (ویدئو، صوتی و عکس) پشتیبانی می کند و توسعه دهندگان را با رابط های برنامه نویسی بومی برای C، C ++، Python، Perl، Ruby، جاوا، .Net، زبان برنامه نویسی Tcl و ODBC

از جمله ویژگی های جالب دیگر می توان به موارد زیر اشاره کرد: MVCC (Multi-Version Conjugation Control)، پارامترهای جدول، چند بایت رمزگذاری های شخصیت، نقطه در بازیابی زمان، بهینه سازی پرس و جو بالغ و برنامه ریز، تکثیر آسنکرون، پشتیبان گیری آنلاین، تراکنش های توزیع شده savepoints)، پشتیبان گیری های گرم، برای ورود به سیستم برای تحمل خطا، پشتیبانی از مجموعه های شخصیت های بین المللی و همچنین حمایت یونیکد از قبل وارد شوید.


PostgreSQL در اعداد

در حال حاضر سرور پایگاه داده PostgreSQL از اندازه نامحدود برای پایگاه های داده پشتیبانی می کند، 32 TB باید حداکثر اندازه جداول، 1.6 TB در هر ردیف، 1 GB در هر ردیف، ردیف نامحدود در هر جدول، پشتیبانی از 250 تا 1600 ستون در جدول ، بسته به نوع ستون، و شاخص های نامحدود را در هر جدول پشتیبانی می کند.


سیستم عامل های پشتیبانی شده

PostgreSQL با موفقیت در تمام سیستم عامل اصلی، از جمله GNU / Linux، BSD، سولاریس، HP-UX، AIX، SGI IRIX، سولاریس، Tru64، Mac OS X و مایکروسافت ویندوز تست شده است. PostgreSQL برای دانلود به عنوان یک آرشیو منبع یونیورسال و همچنین بسته های دودویی از قبل تهیه شده برای بسیاری از توزیع های لینوکس در دسترس است که از هر دو معماری 32 بیتی و 64 بیتی پشتیبانی می کند.

چه جدید در این نسخه است:

این نسخه دو مسئله امنیتی را حل می کند. این انتشار همچنین مسائل مربوط به VACUUM، GIN و شاخص های هش، درخواست موازی، تکرار منطقی و دیگر اشکالات گزارش شده در سه ماه گذشته را رفع می کند. تمام کاربران با استفاده از نسخه های آسیب دیده PostgreSQL باید در اسرع وقت به روز شوند.

چه جدید در نسخه 10.4 / 11 Beta 1 جدید است:

این نسخه دو مسئله امنیتی را حل می کند. این انتشار همچنین مسائل مربوط به VACUUM، GIN و شاخص های هش، درخواست موازی، تکرار منطقی و دیگر اشکالات گزارش شده در سه ماه گذشته را رفع می کند. تمام کاربران با استفاده از نسخه های آسیب دیده PostgreSQL باید در اسرع وقت به روز شوند.

چه جدید در این نسخه است:

علاوه بر محدودیت مشاهده pg_user_mappings.umoptions، برای محافظت از کلمه عبور ذخیره شده به عنوان گزینه های نقشه برداری کاربر (Noah Misch)
اصلاح CVE-2017-7486 اشتباه بود: کاربر اجازه می دهد گزینه های خود را در نقشه بندی کاربر خود ببیند، حتی اگر مجوز USAGE را در سرور خارجی مرتبط با آن نداشته باشد. چنین گزینه هایی ممکن است شامل یک رمز عبور باشد که توسط صاحب سرور ارائه شده است تا خود کاربر. از آنجا که information_schema.user_mapping_options گزینه هایی را در چنین مواردی نشان نمی دهد، pg_user_mappings هم ​​نباید باشد. (CVE-2017-7547)
به خودی خود، این پچ فقط رفتار در پایگاه های داده های تازه initdb'd را رفع می کند. اگر می خواهید این تغییر را در یک پایگاه داده موجود اعمال کنید، باید موارد زیر را انجام دهید:
بعد از اضافه کردن allow_system_table_mods = true به postgresql.conf، مجدد postmaster راه اندازی مجدد کنید. (در نسخه های پشتیبانی از ALTER SYSTEM، شما می توانید آن را برای تغییر پیکربندی استفاده کنید، اما هنوز به یک راه اندازی مجدد نیاز دارید.)
در هر پایگاه داده از خوشه، دستورات زیر را به عنوان کاربر فوق العاده اجرا کنید:
SET search_path = pg_catalog؛
ایجاد یا جایگزینی مشاهده pg_user_mappings AS
انتخاب کنید
U.oid AS umid،
S.oid AS srvid،
Ssrvname AS srvname،

U.umuser AS umuser
CASE WHEN U.umuser = 0 THEN
'عمومی'
بله
A.rolname
END AS usename
CASE WHEN (U.umuser 0 و A.rolname = current_user
و (pg_has_role (S.srvowner، 'USAGE')
OR has_server_privilege (S.oid، 'USAGE')))
OR (U.umuser = 0 و pg_has_role (S.srvowner، 'USAGE'))
OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
سپس U.umoptions
نهایتا به عنوان umoptions
از pg_user_mapping U
سمت چپ پیوند pg_authid ON (A.oid = U.umuser) JOIN
pg_foreign_server S ON (U.mserver = S.oid)؛
فراموش نکنید که شامل پایگاه های template0 و template1 باشد، یا آسیب پذیری در پایگاه های اطلاعاتی که بعدا ایجاد می کنید وجود دارد. برای رفع قالب 0، باید به طور موقت آن را قبول کنید. در PostgreSQL 9.5 و بالاتر می توانید از آن استفاده کنید
ALTER DATABASE template0 با ALLOW_CONNECTIONS true؛
و سپس پس از اصلاح template0، آن را با استفاده از لغو کنید
ALTER DATABASE template0 با ALLOW_CONNECTIONS false؛
در نسخه های قبلی، به جای استفاده از
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'؛UPDATE pg_database SET datallowconn = false WHERE filename = 'template0'؛
در نهایت، تنظیم پیکربندی allow_system_table_mods را حذف کنید، و مجددا postmaster را راه اندازی مجدد کنید.
نادیده گرفتن کلمه عبور خالی در تمام روش های اعتبار سنجی رمز عبور (Heikki Linnakangas)
libpq مشخصات گذرواژه خالی را نادیده می گیرد و آنها را به سرور انتقال نمی دهد. بنابراین، اگر یک رمز عبور کاربر به رشته خالی تنظیم شده است، با این گذرواژه از طریق psql یا دیگر مشتریانی که مبتنی بر libpq هستند، وارد سیستم شوید. بنابراین ممکن است یک مدیر معتقد باشد که تنظیم گذرواژه برای خالی معادل غیرفعال کردن رمز ورود به سیستم است. با این حال، با یک مشتری مبتنی بر اصلاح شده یا غیر libpq، ورود به سیستم ممکن است بسته به نوع روش احراز هویت پیکربندی شود. به طور خاص، رایج ترین روش MD5، رمزهای عبور خالی را پذیرفته است. تغییر سرور برای رد کردن کلمات عبور خالی در همه موارد. (CVE-2017-7546)
lo_put () برای دسترسی به UPDATE در شی هدف بزرگ (تام لین، مایکل Paquier) را بررسی کنید
lo_put () باید مجوزهایی مشابه lowrite () را داشته باشد، اما چک کردن از دست رفته بود، به هر کاربر امکان داده شد که داده ها را در یک شیء بزرگ تغییر دهد. (CVE-2017-7548)اسناد مربوط به روند ارتقاء سرورهای آماده به کار با pg_upgrade را اصلاح کنید (بروس مومجیان)
اسناد قبلی دستورالعمل کاربران را برای شروع / توقف سرور اولیه پس از اجرای pg_upgrade، اما قبل از همگام سازی سرورهای آماده به کار، دستور داد. این دنباله ناامن است.
رفع قفل همزمان زنجیره های به روز رسانی مرتفع (آلوارو هرررا)
اگر چندین جلسه به طور همزمان یک زنجیره به روزرسانی را با حالت قفل غیرقابل توقف با استفاده از یک تصویر فوری قدیمی قفل کرده و همزمان همه موفق شوند، بعضی از آنها ممکن است با شکست مواجه شوند (و نتیجه گیری این است که هیچ نسخه زنده زنده) به دلیل شرایط مسابقه ای وجود ندارد. این عواقب ناشی از چک های خارجی کلیدی را داشت که قادر به دیدن مجله ای بود که قطعا وجود دارد اما هم زمان به روز می شود.
فیشینگ اطلاعات بالقوه را هنگام انجماد یک دوره زمانی که XMAX چند دقیقهای است با دقیقا یکی از اعضای جالب (Teodor Sigaev)
اجتناب از سرریز عدد صحیح و سقوط آن در هنگام مرتب سازی بیش از یک میلیارد بار در حافظه (سرگی کوپسوف)
در ویندوز، دوباره ایجاد فرایند را انجام دهیم اگر بتوانیم محدوده آدرس برای حافظه به اشتراک گذاشته شده ما را در فرایند جدید ذخیره کنیم (Tom Lane، Amit Kapila)انتظار میرود این اتفاق می افتد که ناکامی های راه اندازی نادرست فرزند که احتمالا به دلیل تداخل محصولات آنتی ویروس است، حل می شود.
اصلاح فساد کم احتمال از جدول هش قفل توزیع پیش فرض در Windows build (توماس مونرو، تام لین)
اجتناب از ورود به سیستم بسته بندی تمیز اتصال SSL را به عنوان اینکه این تنظیم مجدد اتصال بود (مایکل Paquier)
جلوگیری از ارسال بلیط جلسه SSL به مشتریان (تام لین)
این رفع مانع پیوستن مجدد اتصال با کد عبور SSL کلاینت با استفاده از بلیط می باشد.
رفع کد برای تنظیم tcp_keepalives_idle در سولاریس (تام لین)
رفع گردآورنده آمار برای اخذ تفتیش پیام ها پس از پایان خاتمه postmaster و راه اندازی مجدد سریع (Tom Lane)
سوالات تحقیقاتی که در عرض یک و نیم ثانیه پس از پایان خدمت Postmaster صادر شد، به طور موثر نادیده گرفته شد.
اطمینان حاصل کنید که اندازه بافر جمع کننده آمار حداقل 100 کیلوبایت است (تام لین)
این باعث کاهش خطر داده های آمار شده در سیستم عامل های قدیمی می شود که میزان بافر دریافت کننده پیش فرض کمتر از آن است.
ایجاد یک بخش WAL غیر معتبر زمانی که یک حالت آماده به کار پس از پردازش یک رکورد WAL XLOG_SWITCH (Andres Freund)تنظیمات walsender برای خروج سریع از زمانی که سرویس گیرنده درخواست خاموش شدن (تام لین)
رفع SIGHUP و SIGUSR1 در فرآیند های walsender (Petr Jelinek، Andres Freund)
جلوگیری از پریشانی های ناشی از مشکوک در ایستگاه های بازرسی خاموش (Andres Freund، Michael Paquier)
تنظیم مجدد بارهای آهسته از فرآیند walreceiver به دلیل شرایط مسابقه در پست مدرس (تام لین)
رفع نشت از سوءاستفاده های کوچک به دیسک در هنگام رمزگشایی منطقی (آندرس فروند)
این باعث شد فایل های موقت مصرف فضای دیسک بیش از حد داشته باشد.
کاهش کار مورد نیاز برای ساخت عکس های فوری در هنگام ایجاد اسلات رمز گشایی منطقی (Andres Freund، Petr Jelinek)
الگوریتم قبلی بر روی سرور با مقدار زیادی معاملات باز گران بود.
رفع شرایط مسابقه که به طور نامحدود می تواند ایجاد شکاف های رمز گشایی منطقی را تاخیر دهد (آندرس فروند، پتر ژلینک)
کاهش هزینه در پردازش رویدادهای نامعتبر سیستمعامل (Tom Lane)
این به خصوص برای رمز گشایی منطقی مفید است، که باعث عدم تایید پنهان مکرر می شود.
حذف اکتشافی نادرست در بعضی موارد برای برآورد انتخاب انتخاب پذیری بر اساس وجود محدودیت های کلید خارجی (David Rowley)در برخی موارد که محدودیت کلیدی خارجی چند ستون وجود داشت اما دقیقا مطابق با یک ساختار پیوست پرس و جو نبود، برنامه ریز استفاده از ارزیابی اکتشافی بود که به نظر نمی رسید کار خوب انجام شود. این موارد را به روش پیش بینی شده قبل از 9.6 باز گردانند.
رفع مواردی که INSERT یا UPDATE به بیش از یک عنصر از یک ستون که از نوع over-array است (تام لین)
توابع پنجره را مجاز به استفاده در sub-SELECT هایی که در استدلال های یک تابع جمع هستند (تام لین)
اطمینان حاصل کنید که clause OPTIONS CHECK OPTIONS به درستی اجرا می شود زمانی که جدول پایه جدول خارجی است (Etsuro Fujita)
قبلا، به روز رسانی ممکن است به طور کامل به سرور خارجی تحت فشار قرار داد، اما در صورت لزوم، نیاز به تایید شرایط نمایش از دست رفته بود.
انواع آرایه های خودکار ایجاد شده را از مسیر ALTER تغییر دهید ... RENAME (Vik Fearing)
پیش از این، ما در طی CREATE یک نوع آرایه خودکار ایجاد شده را تغییر دادیم؛ این اصلاح این رفتار را تغییر می دهد تا عملیات تغییر نام دهد.
اشارهگر آویزان را در ALTER TABLE رفع کنید زمانی که یک محدودیت در جدول وجود دارد (دیوید روولی)دوباره اعمال نظر به محدودیت بازسازی ممکن است با یک پیام خطای عجیب و غریب، و یا حتی سقوط.
اطمینان حاصل کنید که ALTER USER ... SET تمام انواع نحوی که ALTER ROLE ... SET انجام می دهد (Peter Eisentraut)
اجازه دادن به محدودیت های CHECK جدول خارجی را ابتدا ناپایدار (Amit Langote)
CREATE TABLE بطور صحیح برای تعیین محدودیت های CHECK مشخص کننده های VALID نیست. استدلال این است که جدول باید خالی باشد تا محدودیت بلافاصله قابل اعتبار باشد. اما این برای جدول CREATE FOREIGN TABLE اشتباه است، زیرا هیچ دلیلی وجود ندارد که فرض کنیم که جدول پایه خالی است و حتی اگر تصمیم ما این است که محدودیت را به عنوان معتبر در نظر بگیریم. پرش این & quot؛ بهینه سازی & quot؛ برای جداول خارجی.
به درستی اطلاعات مربوط به وابستگی را در هنگام تغییر نوع داده I / O تابع تابع یا نوع بازگشت از مات به نوع صحیح (Heikki Linnakangas)
CREATE TYPE به روز رسانی توابع I / O اعلام شده در این سبک طولانی مدت، اما فراموش کرده است برای ثبت وابستگی به نوع، اجازه می دهد یک نوع DROP بعدی به ترک تعاریف عملکرد شکسته پشت.
اجازه همگام سازی در برنامه پرس و جو هنگامی که COPY کپی از یک نتیجه پرس و جو (آندرس فروند)هنگامی که ANALYZE یک ستون tsvector پردازش می کند (Heikki Linnakangas) کاهش مصرف حافظه را کاهش می دهد
ضریب دقت غیر ضروری و دور شدن انبوه در هنگام ضرب کردن یا تقسیم ارزش پول با عدد صحیح یا شناور (تام لین)
چک کردن فضای خالی را در عملکردهایی که پارامترهای شناسایی را تجزیه می کنند، مانند regprocedurein () (تام لین)
بسته به زبان محلی، این توابع می تواند اشتباه تفسیر قطعات از شخصیت های چند بایت به عنوان فضای خالی.
استفاده از نمادهای مرتبط #define از Perl در هنگام کامپایل PL / Perl (اشوتوش شارما، تام لین)
این مسائل مربوط به قابلیت حمل و نقل را از بین می برد، که معمولا به عنوان یک "handhake" & quot؛ عدم هماهنگی در هنگام بارگذاری کتابخانه، هنگام کار با نسخه های اخیر پرل.
در libpq، بعد از تلاش اتصال ناموفق، GSS / SASL و وضعیت تأیید SSPI را به درستی تنظیم کنید (مایکل Paquier)
عدم انجام این کار به این معنی است که هنگام بازگشت از SSL به اتصالات غیر SSL، یک شکست GSS / SASL در تلاش SSL همیشه باعث می شود که تلاش غیر SSL برای شکست انجام شود. SSPI شکست خورد، اما حافظه آن را نابود کرد.
در psql، رفع نقص زمانی که COPY FROM STDIN با یک سیگنال EOF صفحه کلید به پایان رسیده است و سپس یکی دیگر از COPY FROM STDIN (Thomas Munro)این سوء رفتار بر روی سیستم عامل های BSD (از جمله macOS) مشاهده شد، اما نه بر روی اکثر موارد دیگر.
پیکربندی pg_dump و pg_restore برای بازنویسی دستورات مشاهده REFRESH MATERIALIZED (Tom Lane)
این مانع از خطا در هنگام رهاسازی / بازگردانی می شود زمانی که یک دیدگاه مادی به جداول متعلق به یک کاربر متفاوت اشاره دارد.
بهبود گزارش pg_dump / pg_restore از خطاهای ناشی از zlib (ولادیمیر کانچیکوف، آلوارو هررا)
ثابت pg_dump با گزینه --clean برای رها کردن رویداد triggers به ​​عنوان انتظار می رود (تام لین)
همچنین اکنون مالکیت رویدادهای رویداد را به درستی تعریف می کند؛ قبل از آن، آنها به عنوان متعلق به کاربر فوق العاده در حال اجرا اسکریپت بازگرداندن است.
پیکربندی pg_dump با گزینه "clean" برای شکست زمانی که طرح عمومی وجود ندارد (Stephen Frost)
پیکربندی pg_dump به منظور حذف کلاس غیرفعال از SQL نامعتبر (Daniel Gustafsson)
رفع خروجی pg_dump به stdout در ویندوز (Kuntal Ghosh)
یک فشرده سازی ساده نوشته شده در stdout حاوی اطلاعات فاسد به دلیل عدم نمایش توصیفگر فایل به حالت باینری است.
پیکربندی pg_get_ruledef () برای چاپ خروجی صحیح برای قانون ON SELECT یک دیدگاه که ستون ها تغییر نام داده اند (تام لین)در برخی از موارد گوشه، pg_dump به pg_get_ruledef () برای تکیه کردن دیدگاه ها متکی است، به طوری که این خطا می تواند منجر به تخریب / بارگذاری مجدد خرابی ها شود.
رفع بی نظمی اتصالات بیرونی با محدودیت های خالی، مانند نتیجه یک پیوند NATURAL LEFT با بدون ستون مشترک (تام لین)
اصلاح عبارات تابع در clause FROM در مواردی که بیان نشود به چیزی که به نظر می رسد مانند یک تابع فراخوانی (تام لین)
رفع خروجی pg_basebackup به stdout در ویندوز (Haribabu Kommi)
نسخه پشتیبان تهیه شده به stdout حاوی داده های فاسد به دلیل عدم نمایش توصیفگر فایل به حالت باینری است.
رفع pg_rewid به درستی فایل های بیش از 2GB را اداره کند (Kuntal Ghosh، مایکل Paquier)
به طور معمول چنین فایل هایی در دایرکتوری های داده PostgreSQL ظاهر نمی شوند، اما در بعضی موارد ممکن است وجود داشته باشد.
رفع pg_upgrade برای اطمینان از اینکه ضبط پایان WAL wal_level = حداقل (بروس مومجیان) ندارد
این وضعیت می تواند سرورهای آماده به کار را از اتصال مجدد جلوگیری کند.
رفع pg_xlogdump محاسبه طول رکورد WAL (آندرس فروند)
در postgres_fdw، اتصالات مجدد به سرورهای راه دور را دوباره پس از ALTER سرور یا دستورات ALTER USER MAPPING (Kyotaro Horiguchi)

این تضمین می کند که تغییرات گزینه ای که بر پارامترهای اتصال تأثیر می گذارد سریعا اعمال خواهد شد.
در postgres_fdw اجازه لغو دستورات کنترل از راه دور از راه دور (رابرت هاس، رفیع صباح)
این تغییر به ما اجازه می دهد تا به سرعت از یک سرور منتخب از راه دور در موارد بسیاری از گذشته جلوگیری کنیم.
MAX_SYSCACHE_CALLBACKS را افزایش دهید تا اتاقهای بیشتری برای افزودن (Tom Lane) فراهم شود
همیشه هنگام ایجاد کتابخانه های اشتراکی با gcc (Tom Lane) از fpic استفاده کنید، نه فایلی.
این پشتیبانی از کتابخانه های توسعه گسترده تر در سیستم عامل هایی است که تفاوت را ایجاد می کند.
در MSVC ساخت، رسیدگی به مورد که در آن کتابخانه openssl در یک زیر شاخه VC نیست (اندرو دانستن)
در MSVC builds، اضافه کردن مسیر مناسب برای فایل های header libxml2 (اندرو دانستن)
این مسئله نیاز به سابق دارد که چیزهایی را که در نصب ویندوز استاندارد libxml2 قرار دارد، حرکت دهد.
در MSVC builds، یک کتابخانه Tcl به نام tcl86.lib (Noah Misch)
در MSVC builds، دستورات PROVE_FLAGS را در خط فرمان vcregress.pl تسویه کنید (اندرو دانستن)

چه جدید در نسخه 9.6.4 ارائه شده است:

علاوه بر محدودیت مشاهده pg_user_mappings.umoptions، برای محافظت از کلمه عبور ذخیره شده به عنوان گزینه های نقشه برداری کاربر (Noah Misch)
اصلاح CVE-2017-7486 اشتباه بود: کاربر اجازه می دهد گزینه های خود را در نقشه بندی کاربر خود ببیند، حتی اگر مجوز USAGE را در سرور خارجی مرتبط با آن نداشته باشد. چنین گزینه هایی ممکن است شامل یک رمز عبور باشد که توسط صاحب سرور ارائه شده است تا خود کاربر. از آنجا که information_schema.user_mapping_options گزینه هایی را در چنین مواردی نشان نمی دهد، pg_user_mappings هم ​​نباید باشد. (CVE-2017-7547)
به خودی خود، این پچ فقط رفتار در پایگاه های داده های تازه initdb'd را رفع می کند. اگر می خواهید این تغییر را در یک پایگاه داده موجود اعمال کنید، باید موارد زیر را انجام دهید:
بعد از اضافه کردن allow_system_table_mods = true به postgresql.conf، مجدد postmaster راه اندازی مجدد کنید. (در نسخه های پشتیبانی از ALTER SYSTEM، شما می توانید آن را برای تغییر پیکربندی استفاده کنید، اما هنوز به یک راه اندازی مجدد نیاز دارید.)
در هر پایگاه داده از خوشه، دستورات زیر را به عنوان کاربر فوق العاده اجرا کنید:
SET search_path = pg_catalog؛
ایجاد یا جایگزینی مشاهده pg_user_mappings AS
انتخاب کنید
U.oid AS umid،
S.oid AS srvid،
S.srvname AS srvnameU.umuser AS umuser
CASE WHEN U.umuser = 0 THEN
'عمومی'
بله
A.rolname
END AS usename
CASE WHEN (U.umuser 0 و A.rolname = current_user
و (pg_has_role (S.srvowner، 'USAGE')
OR has_server_privilege (S.oid، 'USAGE')))
OR (U.umuser = 0 و pg_has_role (S.srvowner، 'USAGE'))
OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
سپس U.umoptions
نهایتا به عنوان umoptions
از pg_user_mapping U
سمت چپ پیوند pg_authid ON (A.oid = U.umuser) JOIN
pg_foreign_server S ON (U.mserver = S.oid)؛
فراموش نکنید که شامل پایگاه های template0 و template1 باشد، یا آسیب پذیری در پایگاه های اطلاعاتی که بعدا ایجاد می کنید وجود دارد. برای رفع قالب 0، باید به طور موقت آن را قبول کنید. در PostgreSQL 9.5 و بالاتر می توانید از آن استفاده کنید
ALTER DATABASE template0 با ALLOW_CONNECTIONS true؛
و سپس پس از اصلاح template0، آن را با استفاده از لغو کنید
ALTER DATABASE template0 با ALLOW_CONNECTIONS false؛
در نسخه های قبلی، به جای استفاده از
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'؛UPDATE pg_database SET datallowconn = false WHERE filename = 'template0'؛
در نهایت، تنظیم پیکربندی allow_system_table_mods را حذف کنید، و مجددا postmaster را راه اندازی مجدد کنید.
نادیده گرفتن کلمه عبور خالی در تمام روش های اعتبار سنجی رمز عبور (Heikki Linnakangas)
libpq مشخصات گذرواژه خالی را نادیده می گیرد و آنها را به سرور انتقال نمی دهد. بنابراین، اگر یک رمز عبور کاربر به رشته خالی تنظیم شده است، با این گذرواژه از طریق psql یا دیگر مشتریانی که مبتنی بر libpq هستند، وارد سیستم شوید. بنابراین ممکن است یک مدیر معتقد باشد که تنظیم گذرواژه برای خالی معادل غیرفعال کردن رمز ورود به سیستم است. با این حال، با یک مشتری مبتنی بر اصلاح شده یا غیر libpq، ورود به سیستم ممکن است بسته به نوع روش احراز هویت پیکربندی شود. به طور خاص، رایج ترین روش MD5، رمزهای عبور خالی را پذیرفته است. تغییر سرور برای رد کردن کلمات عبور خالی در همه موارد. (CVE-2017-7546)
lo_put () برای دسترسی به UPDATE در شی هدف بزرگ (تام لین، مایکل Paquier) را بررسی کنید
lo_put () باید مجوزهایی مشابه lowrite () را داشته باشد، اما چک کردن از دست رفته بود، به هر کاربر امکان داده شد که داده ها را در یک شیء بزرگ تغییر دهد. (CVE-2017-7548)اسناد مربوط به روند ارتقاء سرورهای آماده به کار با pg_upgrade را اصلاح کنید (بروس مومجیان)
اسناد قبلی دستورالعمل کاربران را برای شروع / توقف سرور اولیه پس از اجرای pg_upgrade، اما قبل از همگام سازی سرورهای آماده به کار، دستور داد. این دنباله ناامن است.
رفع قفل همزمان زنجیره های به روز رسانی مرتفع (آلوارو هرررا)
اگر چندین جلسه به طور همزمان یک زنجیره به روزرسانی را با حالت قفل غیرقابل توقف با استفاده از یک تصویر فوری قدیمی قفل کرده و همزمان همه موفق شوند، بعضی از آنها ممکن است با شکست مواجه شوند (و نتیجه گیری این است که هیچ نسخه زنده زنده) به دلیل شرایط مسابقه ای وجود ندارد. این عواقب ناشی از چک های خارجی کلیدی را داشت که قادر به دیدن مجله ای بود که قطعا وجود دارد اما هم زمان به روز می شود.
فیشینگ اطلاعات بالقوه را هنگام انجماد یک دوره زمانی که XMAX چند دقیقهای است با دقیقا یکی از اعضای جالب (Teodor Sigaev)
اجتناب از سرریز عدد صحیح و سقوط آن در هنگام مرتب سازی بیش از یک میلیارد بار در حافظه (سرگی کوپسوف)
در ویندوز، دوباره ایجاد فرایند را انجام دهیم اگر بتوانیم محدوده آدرس برای حافظه به اشتراک گذاشته شده ما را در فرایند جدید ذخیره کنیم (Tom Lane، Amit Kapila)انتظار میرود این اتفاق می افتد که ناکامی های راه اندازی نادرست فرزند که احتمالا به دلیل تداخل محصولات آنتی ویروس است، حل می شود.
اصلاح فساد کم احتمال از جدول هش قفل توزیع پیش فرض در Windows build (توماس مونرو، تام لین)
اجتناب از ورود به سیستم بسته بندی تمیز اتصال SSL را به عنوان اینکه این تنظیم مجدد اتصال بود (مایکل Paquier)
جلوگیری از ارسال بلیط جلسه SSL به مشتریان (تام لین)
این رفع مانع پیوستن مجدد اتصال با کد عبور SSL کلاینت با استفاده از بلیط می باشد.
رفع کد برای تنظیم tcp_keepalives_idle در سولاریس (تام لین)
رفع گردآورنده آمار برای اخذ تفتیش پیام ها پس از پایان خاتمه postmaster و راه اندازی مجدد سریع (Tom Lane)
سوالات تحقیقاتی که در عرض یک و نیم ثانیه پس از پایان خدمت Postmaster صادر شد، به طور موثر نادیده گرفته شد.
اطمینان حاصل کنید که اندازه بافر جمع کننده آمار حداقل 100 کیلوبایت است (تام لین)
این باعث کاهش خطر داده های آمار شده در سیستم عامل های قدیمی می شود که میزان بافر دریافت کننده پیش فرض کمتر از آن است.
ایجاد یک بخش WAL غیر معتبر زمانی که یک حالت آماده به کار پس از پردازش یک رکورد WAL XLOG_SWITCH (Andres Freund)تنظیمات walsender برای خروج سریع از زمانی که سرویس گیرنده درخواست خاموش شدن (تام لین)
رفع SIGHUP و SIGUSR1 در فرآیند های walsender (Petr Jelinek، Andres Freund)
جلوگیری از پریشانی های ناشی از مشکوک در ایستگاه های بازرسی خاموش (Andres Freund، Michael Paquier)
تنظیم مجدد بارهای آهسته از فرآیند walreceiver به دلیل شرایط مسابقه در پست مدرس (تام لین)
رفع نشت از سوءاستفاده های کوچک به دیسک در هنگام رمزگشایی منطقی (آندرس فروند)
این باعث شد فایل های موقت مصرف فضای دیسک بیش از حد داشته باشد.
کاهش کار مورد نیاز برای ساخت عکس های فوری در هنگام ایجاد اسلات رمز گشایی منطقی (Andres Freund، Petr Jelinek)
الگوریتم قبلی بر روی سرور با مقدار زیادی معاملات باز گران بود.
رفع شرایط مسابقه که به طور نامحدود می تواند ایجاد شکاف های رمز گشایی منطقی را تاخیر دهد (آندرس فروند، پتر ژلینک)
کاهش هزینه در پردازش رویدادهای نامعتبر سیستمعامل (Tom Lane)
این به خصوص برای رمز گشایی منطقی مفید است، که باعث عدم تایید پنهان مکرر می شود.
حذف اکتشافی نادرست در بعضی موارد برای برآورد انتخاب انتخاب پذیری بر اساس وجود محدودیت های کلید خارجی (David Rowley)در برخی موارد که محدودیت کلیدی خارجی چند ستون وجود داشت اما دقیقا مطابق با یک ساختار پیوست پرس و جو نبود، برنامه ریز استفاده از ارزیابی اکتشافی بود که به نظر نمی رسید کار خوب انجام شود. این موارد را به روش پیش بینی شده قبل از 9.6 باز گردانند.
رفع مواردی که INSERT یا UPDATE به بیش از یک عنصر از یک ستون که از نوع over-array است (تام لین)
توابع پنجره را مجاز به استفاده در sub-SELECT هایی که در استدلال های یک تابع جمع هستند (تام لین)
اطمینان حاصل کنید که clause OPTIONS CHECK OPTIONS به درستی اجرا می شود زمانی که جدول پایه جدول خارجی است (Etsuro Fujita)
قبلا، به روز رسانی ممکن است به طور کامل به سرور خارجی تحت فشار قرار داد، اما در صورت لزوم، نیاز به تایید شرایط نمایش از دست رفته بود.
انواع آرایه های خودکار ایجاد شده را از مسیر ALTER تغییر دهید ... RENAME (Vik Fearing)
پیش از این، ما در طی CREATE یک نوع آرایه خودکار ایجاد شده را تغییر دادیم؛ این اصلاح این رفتار را تغییر می دهد تا عملیات تغییر نام دهد.
اشارهگر آویزان را در ALTER TABLE رفع کنید زمانی که یک محدودیت در جدول وجود دارد (دیوید روولی)دوباره اعمال نظر به محدودیت بازسازی ممکن است با یک پیام خطای عجیب و غریب، و یا حتی سقوط.
اطمینان حاصل کنید که ALTER USER ... SET تمام انواع نحوی که ALTER ROLE ... SET انجام می دهد (Peter Eisentraut)
اجازه دادن به محدودیت های CHECK جدول خارجی را ابتدا ناپایدار (Amit Langote)
CREATE TABLE بطور صحیح برای تعیین محدودیت های CHECK مشخص کننده های VALID نیست. استدلال این است که جدول باید خالی باشد تا محدودیت بلافاصله قابل اعتبار باشد. اما این برای جدول CREATE FOREIGN TABLE اشتباه است، زیرا هیچ دلیلی وجود ندارد که فرض کنیم که جدول پایه خالی است و حتی اگر تصمیم ما این است که محدودیت را به عنوان معتبر در نظر بگیریم. این "بهینه سازی" را برای جداول خارجی پر کن.
به درستی اطلاعات مربوط به وابستگی را در هنگام تغییر نوع داده I / O تابع تابع یا نوع بازگشت از مات به نوع صحیح (Heikki Linnakangas)
CREATE TYPE به روز رسانی توابع I / O اعلام شده در این سبک طولانی مدت، اما فراموش کرده است برای ثبت وابستگی به نوع، اجازه می دهد یک نوع DROP بعدی به ترک تعاریف عملکرد شکسته پشت.
اجازه همگام سازی در برنامه پرس و جو هنگامی که COPY کپی از یک نتیجه پرس و جو (آندرس فروند)هنگامی که ANALYZE یک ستون tsvector پردازش می کند (Heikki Linnakangas) کاهش مصرف حافظه را کاهش می دهد
ضریب دقت غیر ضروری و دور شدن انبوه در هنگام ضرب کردن یا تقسیم ارزش پول با عدد صحیح یا شناور (تام لین)
چک کردن فضای خالی را در عملکردهایی که پارامترهای شناسایی را تجزیه می کنند، مانند regprocedurein () (تام لین)
بسته به زبان محلی، این توابع می تواند اشتباه تفسیر قطعات از شخصیت های چند بایت به عنوان فضای خالی.
استفاده از نمادهای مرتبط #define از Perl در هنگام کامپایل PL / Perl (اشوتوش شارما، تام لین)
این کار در هنگام کار با نسخه های اخیر پرل اجتناب از مشکلات مربوط به قابلیت حمل و نقل است، که معمولا به عنوان یک اختلال «دست دادن» در هنگام بارگذاری کتابخانه ها ظاهر می شود.
در libpq، بعد از تلاش اتصال ناموفق، GSS / SASL و وضعیت تأیید SSPI را به درستی تنظیم کنید (مایکل Paquier)
عدم انجام این کار به این معنی است که هنگام بازگشت از SSL به اتصالات غیر SSL، یک شکست GSS / SASL در تلاش SSL همیشه باعث می شود که تلاش غیر SSL برای شکست انجام شود. SSPI شکست خورد، اما حافظه آن را نابود کرد.
در psql، رفع نقص زمانی که COPY FROM STDIN با یک سیگنال EOF صفحه کلید به پایان رسیده است و سپس یکی دیگر از COPY FROM STDIN (Thomas Munro)این سوء رفتار بر روی سیستم عامل های BSD (از جمله macOS) مشاهده شد، اما نه بر روی اکثر موارد دیگر.
پیکربندی pg_dump و pg_restore برای بازنویسی دستورات مشاهده REFRESH MATERIALIZED (Tom Lane)
این مانع از خطا در هنگام رهاسازی / بازگردانی می شود زمانی که یک دیدگاه مادی به جداول متعلق به یک کاربر متفاوت اشاره دارد.
بهبود گزارش pg_dump / pg_restore از خطاهای ناشی از zlib (ولادیمیر کانچیکوف، آلوارو هررا)
ثابت pg_dump با گزینه --clean برای رها کردن رویداد triggers به ​​عنوان انتظار می رود (تام لین)
همچنین اکنون مالکیت رویدادهای رویداد را به درستی تعریف می کند؛ قبل از آن، آنها به عنوان متعلق به کاربر فوق العاده در حال اجرا اسکریپت بازگرداندن است.
پیکربندی pg_dump با گزینه "clean" برای شکست زمانی که طرح عمومی وجود ندارد (Stephen Frost)
پیکربندی pg_dump به منظور حذف کلاس غیرفعال از SQL نامعتبر (Daniel Gustafsson)
رفع خروجی pg_dump به stdout در ویندوز (Kuntal Ghosh)
یک فشرده سازی ساده نوشته شده در stdout حاوی اطلاعات فاسد به دلیل عدم نمایش توصیفگر فایل به حالت باینری است.
پیکربندی pg_get_ruledef () برای چاپ خروجی صحیح برای قانون ON SELECT یک دیدگاه که ستون ها تغییر نام داده اند (تام لین)در برخی از موارد گوشه، pg_dump به pg_get_ruledef () برای تکیه کردن دیدگاه ها متکی است، به طوری که این خطا می تواند منجر به تخریب / بارگذاری مجدد خرابی ها شود.
رفع بی نظمی اتصالات بیرونی با محدودیت های خالی، مانند نتیجه یک پیوند NATURAL LEFT با بدون ستون مشترک (تام لین)
اصلاح عبارات تابع در clause FROM در مواردی که بیان نشود به چیزی که به نظر می رسد مانند یک تابع فراخوانی (تام لین)
رفع خروجی pg_basebackup به stdout در ویندوز (Haribabu Kommi)
نسخه پشتیبان تهیه شده به stdout حاوی داده های فاسد به دلیل عدم نمایش توصیفگر فایل به حالت باینری است.
رفع pg_rewid به درستی فایل های بیش از 2GB را اداره کند (Kuntal Ghosh، مایکل Paquier)
به طور معمول چنین فایل هایی در دایرکتوری های داده PostgreSQL ظاهر نمی شوند، اما در بعضی موارد ممکن است وجود داشته باشد.
رفع pg_upgrade برای اطمینان از اینکه ضبط پایان WAL wal_level = حداقل (بروس مومجیان) ندارد
این وضعیت می تواند سرورهای آماده به کار را از اتصال مجدد جلوگیری کند.
رفع pg_xlogdump محاسبه طول رکورد WAL (آندرس فروند)
در postgres_fdw، اتصالات مجدد به سرورهای راه دور را دوباره پس از ALTER سرور یا دستورات ALTER USER MAPPING (Kyotaro Horiguchi)این تضمین می کند که تغییرات گزینه ای که بر پارامترهای اتصال تأثیر می گذارد سریعا اعمال خواهد شد.
در postgres_fdw اجازه لغو دستورات کنترل از راه دور از راه دور (رابرت هاس، رفیع صباح)
این تغییر به ما اجازه می دهد تا به سرعت از یک سرور منتخب از راه دور در موارد بسیاری از گذشته جلوگیری کنیم.
MAX_SYSCACHE_CALLBACKS را افزایش دهید تا اتاقهای بیشتری برای افزودن (Tom Lane) فراهم شود
همیشه هنگام ایجاد کتابخانه های اشتراکی با gcc (Tom Lane) از fpic استفاده کنید، نه فایلی.
این پشتیبانی از کتابخانه های توسعه گسترده تر در سیستم عامل هایی است که تفاوت را ایجاد می کند.
در MSVC ساخت، رسیدگی به مورد که در آن کتابخانه openssl در یک زیر شاخه VC نیست (اندرو دانستن)
در MSVC builds، اضافه کردن مسیر مناسب برای فایل های header libxml2 (اندرو دانستن)
این مسئله نیاز به سابق دارد که چیزهایی را که در نصب ویندوز استاندارد libxml2 قرار دارد، حرکت دهد.
در MSVC builds، یک کتابخانه Tcl به نام tcl86.lib (Noah Misch)
در MSVC builds، دستورات PROVE_FLAGS را در خط فرمان vcregress.pl تسویه کنید (اندرو دانستن)

نرم افزار های مشابه

نظرات به PostgreSQL

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!