PostgreSQL

צילום מסך תוכנה:
PostgreSQL
פרטי תוכנה:
גרסה: 10.5 / 11 Beta 3 מעודכן
טען תאריך: 16 Aug 18
רשיון: ללא תשלום
פופולריות: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL היא מערכת קוד פתוח, חזקה, אמינה, יציבה, ארגונית ומוצגת ללא קשר למסמך יחסי, בסגנון של פרויקטים של MariaDB, MySQL או SQLite. שרת מסד נתונים תואם / מנוע, אשר יכול להיות מותאם אישית מאוד וכולל תכונות אטרקטיביות רבות, מה שהופך תחליף נהדר עבור מנועי מסד הנתונים הנ"ל.

של ACID (Atomicity, עקביות, בידוד,
תכונות במבט אחד

התכונות העיקריות כוללות תמיכה במפתחות, צפיות, מצטרפים, מפעילים ונהלים מאוחסנים, תמיכה במגוון שפות, תמיכה במגוון רחב של סוגי נתונים מסוג SQL, כולל BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP ו- תאריך.

בנוסף, התוכנה מגיעה עם תמיכה עבור אחסון גדול אובייקטים בינאריים, כולל כל מיני קבצי מולטימדיה (וידאו, אודיו ותמונה), ומספק למפתחים עם ממשקי תכנות מקומיים עבור C, C + +, Python, Perl, Ruby, Java, .Net, TCL ו- ODBC שפות תכנות.

בין תכונות מעניינות אחרות, אנו יכולים להזכיר MVCC (Multi-Version Concurrency Control), טבלאות, קידוד תווים multibyte, נקודת זמן התאוששות, האופטימיזציה השאילתה בוגרת מתכנן, שכפול אסינכרוני, גיבויים מקוונים, עסקאות מקוננות (הידוע בכינויו savepoints), גיבויים חמים, לכתוב מראש כניסה עבור סובלנות תקלות, תמיכה ערכות אופי הבינלאומי, כמו גם תמיכה Unicode.


PostgreSQL במספרים

כרגע, שרת מסד הנתונים PostgreSQL תומך בגודל בלתי מוגבל עבור מסדי נתונים, 32 TB צריך להיות גודל מקסימלי עבור טבלאות, 1.6 TB לשורה, 1 GB לכל שדה, שורות בלתי מוגבל לכל טבלה, תומך בין 250 ו 1600 עמודות לכל שולחן , בהתאם לסוגי העמודות, ותומכת באינדקסים בלתי מוגבלים לכל טבלה.


מערכות הפעלה נתמכות

PostgreSQL נבדק בהצלחה על כל מערכות ההפעלה המיינסטרים, כולל גנו / לינוקס, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X ו- Microsoft Windows. PostgreSQL זמין להורדה כארכיון מקור אוניברסלי, כמו גם חבילות בינאריות מקובצות מראש עבור הפצות לינוקס רבות, תמיכה הן 32-bit ו 64-bit ארכיטקטורות.

מה חדש במהדורה זו:

  • מהדורה זו פותר שתי בעיות אבטחה. מהדורה זו גם מתקן בעיות שנמצאו עם 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. (בגירסאות התומכות ב- ALTER SYSTEM, באפשרותך להשתמש בו כדי לשנות את תצורת התצורה, אך עדיין תצטרך להפעיל מחדש.)
  • בכל מסד נתונים של האשכול, הפעל את הפקודות הבאות בתור superuser:
  • SET search_path = pg_catalog;
  • צור או החלף תצוגה של pg_user_mappings AS
  • בחר
  • U.oid AS umid,
  • S.oid as srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • CASE כאשר U.umuser = 0 THEN
  • 'ציבורי'
  • ELSE
  • A.rolname
  • END כשם משתמש,
  • CASE WHEN (U.umuser 0 AND A.rolname = current_user
  • AND (pg_has_role (S.srvowner, 'USAGE')
  • has has_server_privilege (S.oid, 'USAGE')))
  • OR (U.umuser = 0 ו- pg_has_role (S.srvowner, 'USAGE'))
  • OR (בחר rlsuper מתוך pg_authid כאשר rolname = current_user)
  • לאחר מכן U.umoptions
  • אלזה NULL סוף כמו umoptions
  • מ- pg_user_mapping U
  • LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • אל תשכח לכלול את מסדי הנתונים template0 ו- template1, או שהפגיעות עדיין תתקיים במסדי נתונים שיצרת מאוחר יותר. כדי לתקן את התבנית 0, יהיה עליך באופן זמני לגרום לה לקבל חיבורים. ב PostgreSQL 9.5 ואילך, אתה יכול להשתמש
  • ALTER DATABASE template0 עם ALLOW_CONNECTIONS נכון;
  • ולאחר מכן לאחר תיקון template0, בטל זאת
  • ALTER DATABASE template0 עם ALLOW_CONNECTIONS שקר;
  • בגרסאות קודמות, השתמש במקום זאת
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • לבסוף, הסר את הגדרת תצורת allow_system_table_mods, ולאחר מכן הפעל מחדש את מנהל הדואר.
  • אל תאפשר סיסמאות ריקות בכל שיטות האימות מבוססות הסיסמה (Heikki Linnakangas)
  • libpq מתעלם ממאפייני סיסמה ריקים ואינו משדר אותם לשרת. לכן, אם הסיסמה של המשתמש הוגדרה למחרוזת הריקה, אי אפשר להתחבר עם הסיסמה באמצעות psql או לקוחות מבוססי libpq אחרים. לכן, מנהל מערכת עשוי להאמין שהגדרת הסיסמה לריקון שווה להשבית כניסה למערכת. עם זאת, עם לקוח שונה או לא מבוסס libpq, כניסה יכול להיות אפשרי, בהתאם לאיזו שיטת אימות מוגדר. במיוחד את השיטה הנפוצה ביותר, md5, קיבל סיסמאות ריקות. שנה את השרת כדי לדחות סיסמאות ריקות בכל המקרים. (CVE-2017-7546)
  • בצע בדיקת lo_put () עבור הרשאת UPDATE על אובייקט היעד הגדול (Tom Lane, Michael Paquier)
  • lo_put () צריך בוודאי לדרוש את אותן הרשאות כמו lowrite (), אבל ההמחאה היתה חסרה, ומאפשר לכל משתמש לשנות את הנתונים באובייקט גדול. (CVE-2017-7548)
  • תקן את התיעוד בנוגע לתהליך שדרוג שרתי ההמתנה עם pg_upgrade (Bruce Momjian)
  • התיעוד הקודם הורה למשתמשים להפעיל / להפסיק את השרת הראשי לאחר הפעלת pg_upgrade אך לפני סינכרון שרתי ההמתנה. רצף זה אינו בטוח.
  • תיקון נעילה בו זמנית של שרשראות עדכון tuple (Alvaro Herrera)
  • אם מספר מפגשים בו זמנית נעולים שרשרת עדכון tuple עם מצבי נעילה לא מסובכים באמצעות תצלום ישן, וכולם מצליחים, זה היה אפשרי עבור חלק מהם בכל זאת להיכשל (ולהסיק אין גרסה tuple לחיות) עקב גזע מַצָב. זה היה השלכות כגון בדיקות החוץ המפתח נכשל לראות tuple כי בהחלט קיים אבל הוא מתעדכן בו זמנית.
  • לתקן את השחיתות הפוטנציאלית של נתונים כאשר מקפיא tuple אשר XMAX הוא multixact עם בדיוק חבר אחד עדיין מעניין (Teodor Sigaev)
  • הימנע מגלישת מספר שלם וכתוצאה מכך לקרוס בעת מיון יותר ממיליארד זוגות בזיכרון (סרגיי קופוסוב)
  • ב- Windows, נסה שוב ליצור תהליך אם לא נשמור את טווח הכתובות עבור הזיכרון המשותף שלנו בתהליך החדש (טום ליין, עמית Kapila)
  • פעולה זו צפויה לתקן כשלים נדירים בתהליך ההשקה של ילדים, ככל הנראה עקב הפרעה ממוצרי אנטי-וירוס.
  • תיקון השחיתות הנמוכה של טבלת חשיש לנעילה משותפת ב- Windows בונה (תומס מונרו, טום ליין)
  • הימנע מחתימה על סגירת חיבור SSL נקי כאילו היה איפוס חיבור (Michael Paquier)
  • מנע שליחת כרטיסי הפעלה של SSL ללקוחות (טום ליין)
  • תיקון זה מונע כשלים של התחברות מחדש עם קוד SSL ​​של צד הלקוח, המכיל כרטיסים.
  • תקן קוד להגדרת tcp_keepalives_idle ב- Solaris (טום ליין)
  • תקן את סטטיסטיקת האספקה ​​כדי לכבד את הודעות החקירה שהונפקו רק לאחר כיבוי של מנהל דואר והפעלה מחדש מיידית (טום ליין)
  • התעלמו מחקירות הסטטיסטיקות שהונפקו תוך חצי שנייה מהכיבוי הקודם של מנהל הדואר.
  • ודא שהגודל של מאגר הנתונים של האספן הוא 100KB לפחות (טום ליין)
  • פעולה זו מפחיתה את הסיכון לנתוני נתונים סטטיסטיים שהוזנו על פלטפורמות ישנות שגודל ברירת המחדל שלהן לקבלה הוא פחות.
  • תקן יצירה אפשרית של מקטע WAL לא חוקי כאשר מצב המתנה מקודם רק לאחר עיבוד של רשומת WAL XLOG_SWITCH (אנדרס פרוינד)
  • תקן walsender כדי לצאת מיד כאשר בקשות הלקוח כיבוי (טום ליין)
  • תיקון SIGHUP ו- SIGUSR1 בטיפול בתהליכי walsender (Petr Jelinek, Andres Freund)
  • מניעת פאניקה המופעלת על ידי walsender במהלך מחסומי הכיבוי (Andres Freund, Michael Paquier)
  • תיקון הפעלה מחדש איטית של תהליכי העברה מחדש עקב מצב מרוץ ב- postmaster (Tom Lane)
  • תיקון דליפה של תתי-תהליכים קטנים שנשפכו לדיסק במהלך פענוח לוגי (Andres Freund)
  • הדבר הביא לקבצים זמניים שצורכים שטח דיסק מוגזם.
  • צמצם את העבודה הדרושה כדי לבנות תמונות במהלך יצירת חריצי פענוח לוגיים (Andres Freund, Petr Jelinek)
  • האלגוריתם הקודם היה יקר באופן בלתי סביר בשרת עם הרבה עסקאות פתוחות.
  • תקן מצב מרוץ שיכול לעכב ללא הגבלת זמן יצירת חריצי פענוח לוגיים (Andres Freund, Petr Jelinek)
  • צמצם תקורה בעיבוד אירועי פסילת syscache (טום ליין)
  • תכונה זו שימושית במיוחד עבור פענוח לוגי, אשר מפעילה ביטול מטמון תכופים.
  • הסר היוריסטי שגוי המשמש במקרים מסוימים להערכת סלקטיביות הצטרפות בהתבסס על נוכחות של אילוצים של מפתח זר (David Rowley)
  • בחלק מהמקרים שבהם קיימת מגבלה של מספר רב של טורי מפתח זר, אך לא בדיוק התאימה למבנה ההצטרפות של שאילתה, המתכנן השתמש בהיוריסטיות של אמידה המתברר שלא לעבוד טוב בכלל. החזר מקרים כאלה לאופן שבו הם נאמדו לפני 9.6.
  • תקן מקרים שבהם INSERT או UPDATE מקצה ליותר מאלמנט אחד של עמודה בעלת סוג תחום (over-array) (
  • אפשר להשתמש בפונקציות חלון בתת-סלקציות הנמצאות בארגומנטים של פונקציה צבירה (טום ליין)
  • ודא כי סעיף CHECK OPTIONS של תצוגה נאכף כראוי כאשר הטבלה הבסיסית היא טבלה זרה (Etsuro Fujita)
  • בעבר, ייתכן שהעדכון יידחף לחלוטין לשרת החוץ, אך הצורך לאמת את תנאי התצוגה החמיצו אם כן.
  • העבר את סוגי המערכים האוטומטיים מהדרך במהלך ALTER ... RENAME (Vik Fearing)
  • בעבר, שנה את השם של סוג מערך אוטוגראטד מנוגד מהדרך במהלך CREATE; תיקון זה מרחיב את ההתנהגות הזו לשינוי שם פעולות.
  • תיקון מצביע משתלשל בטבלה ALTER כאשר יש הערה על אילוץ השייך לטבלה (David Rowley)
  • החלת התגובה מחדש על האילוצים המשוחזרים עלולה להיכשל עם הודעת שגיאה מוזרה, או אפילו לקרוס.
  • ודא כי משתמש ALTER ... SET מקבל את כל גרסאות התחביר כי ALTER תפקיד ... SET עושה (פיטר Eisentraut)
  • אפשר לאילוצים של CHECK בטבלה זרה להיות בהתחלה לא חוקי (עמית Langote)
  • CREATE TABLE לוח טיפה ללא טיפה מפרטים לא תקפים עבור אילוצי CHECK, הנמקה שהטבלה חייבת להיות ריקה כדי שניתן יהיה לאמת את האילוץ באופן מיידי. אבל זה לא נכון בשביל ליצור טבלה זרה, שם אין סיבה להניח כי הטבלה הבסיסית ריקה, וגם אם זה לא עסק שלנו להחליט כי האילוץ יכול להיות מטופל כמו תקף הולך קדימה. דלג על & quot; אופטימיזציה זו & quot; עבור טבלאות זרות.
  • עדכן נכון את פרטי התלות בעת שינוי הארגומנט של פונקציה מסוג I / O או סוג החזרה מאטום לסוג הנכון (Heikki Linnakangas)
  • CREATE TYPE מעדכן את הפונקציות I / O המוצהרות בסגנון ארוך-מיושן זה, אך הוא שכח להקליט תלות בסוג, ומאפשר ל- DROP TYPE לאחר מכן להשאיר הגדרות פונקציה שבורות מאחור.
  • התר מקביליות לתוכנית השאילתה כאשר עותקים COPY מתוצאת שאילתה (Andres Freund)
  • הפחת את השימוש בזיכרון כאשר ANALYZE מעבד טור tsvector (Heikki Linnakangas)
  • תקן אובדן דיוק מיותר ועיגול מרושל בעת הכפלת או חלוקת ערכי כסף על ידי מספרים שלמים או צפים (טום ליין)
  • הדקו בדיקות עבור רווח לבן בפונקציות המזהות מזהים, כגון regprocedurein () (Tom Lane)
  • בהתאם לשפה השוררת, פונקציות אלה יכולות לפרש שברים של תווים מרוביטים כמו רווח לבן.
  • השתמש בסמלים #define רלוונטיים מ- Perl בעת הכנת PL / Perl (Ashutosh Sharma, Tom Lane)
  • פעולה זו נמנעת מבעיות ניידות, המתבטאת בדרך כלל כ & quot; לחיצת יד & quot; חוסר התאמה במהלך טעינת ספריה, בעת עבודה עם גרסאות Perl האחרונות.
  • ב- libpq, אפס כראוי את מצב האימות של GSS / SASL ו- SSPI לאחר ניסיון חיבור נכשל (Michael Paquier)
  • אי-ביצוע זה פירושו שכאשר נופלים בחזרה מה- SSL אל חיבורים שאינם SSL, כשל ב- GSS / SASL בניסיון SSL תמיד יגרום לניסיון הלא SSL להיכשל. SSPI לא נכשל, אבל הוא הדליף זיכרון.
  • ב psql, לתקן את הכשל כאשר עותק מ STDIN הוא הסתיים עם האות EOF מקלדת ואז אחר COPY מ STDIN הוא ניסה (תומאס מונרו)
  • התנהגות לא נכונה זו נצפתה בפלטפורמות של BSD (כולל MACOS), אך לא במרבית האחרים.
  • תקן pg_dump ו- pg_restore כדי לפלוט פקודות VIEWER MATERIALIZED VIEW (טום ליין)
  • פעולה זו מונעת שגיאות במהלך dump / restore כאשר תצוגה ממומשת מתייחסת לטבלאות שבבעלות משתמש אחר.
  • לשפר את הדיווח של pg_dump / pg_restore על תנאי השגיאה שמקורם ב- zlib (ולדימיר קונצ'יקוב, אלווארו הררה)
  • תקן pg_dump עם האפשרות --clean כדי לשחרר גורמי אירוע כצפוי (טום ליין)
  • הוא גם מקצה נכון כעת את הבעלות על מפעילי האירועים; לפני, הם שוחזרו כמו להיות בבעלות superuser מפעיל את התסריט השחזור.
  • תקן pg_dump עם האפשרות --clean כדי לא להיכשל כאשר הסכימה הציבורית אינה קיימת (Stephen Frost)
  • תקן pg_dump כדי לא לפלוט SQL לא חוקי עבור מחלקת מפעיל ריקה (Daniel Gustafsson)
  • תקן פלט pg_dump ל- stdout ב- Windows (Kuntal Ghosh)
  • קובץ דחוס של טקסט רגיל שנכתב ל- stdout יכיל נתונים מושחתים עקב אי-הצבת מתאר הקובץ במצב בינארי.
  • תקן את pg_get_ruledef () כדי להדפיס פלט נכון עבור הכלל SELECT של תצוגה ששמותיה השתנו (טום ליין)
  • במקרים מסוימים בפינה, pg_dump מסתמך על pg_get_ruledef () כדי להשליך תצוגות, כך ששגיאה זו עלולה לגרום לכשל / הטעינה מחדש.
  • תיקון השלכת החיצוני מצטרף עם אילוצים ריקים, כגון תוצאה של JOIN שמאל טבעי ללא עמודות נפוצות (טום ליין)
  • תקן את ההטלה של ביטויים בפונקציה בסעיף FROM במקרים שבהם הביטוי אינו מתפרק למשהו שנראה כמו קריאה לפונקציה (טום ליין)
  • תקן פלט pg_basebackup ל- stdout ב- Windows (Haribabu Kommi)
  • גיבוי שנכתב ל- stdout יכיל נתונים פגומים בשל אי-הצבת מתאר הקובץ במצב בינארי.
  • תקן pg_rewind לטפל נכון בקבצים העולים על 2GB (Kuntal Ghosh, Michael Paquier)
  • קבצים אלה בדרך כלל לא יופיעו בספריות הנתונים של PostgreSQL, אך הם יכולים להיות נוכחים במקרים מסוימים.
  • תקן pg_upgrade כדי לוודא שרשומת ה- WAL הסופית אינה כוללת את המינימום wal_level = (ברוס מומג'יאן)
  • מצב זה עלול למנוע שרתי המתנה משודרגים מתחברים מחדש.
  • תיקון חישוב pg_xlogdump של אורך הרשומה WAL (Andres Freund)
  • ב- postgres_fdw, צור מחדש חיבורים לשרתים מרוחקים לאחר ALTER SERVER או פקודות ALTER USER MAPPING (Kyotaro Horiguchi)
  • פעולה זו מבטיחה ששינויי אפשרויות המשפיעים על פרמטרים של חיבור יחולו באופן מיידי.
  • ב- postgres_fdw, אפשר ביטול של פקודות בקרת טרנזקציות מרחוק (Robert Haas, Rafia Sabih)
  • שינוי זה מאפשר לנו להימלט במהירות מחכה לשרת מרוחק שאינו מגיב במקרים רבים יותר מבעבר.
  • הגדל את MAX_SYSCACHE_CALLBACKS כדי לספק מקום נוסף לתוספים (טום ליין)
  • השתמש תמיד -fPIC, לא -fic, בעת בניית ספריות משותפות עם Gcc (טום ליין)
  • זה תומך בספריות הרחבה גדולות יותר בפלטפורמות שבהן הוא משנה.
  • ב- MSVC בונה, לטפל במקרה שבו הספרייה openssl אינו בתוך תיקיית משנה של VC (אנדרו דנסטן)
  • ב- MSVC בונה, הוסף נתיב כולל עבור קבצי כותרת libxml2 (אנדרו דנסטן)
  • פעולה זו קובעת צורך קודם להעביר דברים מסביב להתקנות Windows סטנדרטיות של libxml2.
  • ב- MSVC בונה, זהה ספריית Tcl הנקראת tcl86.lib (Noah Misch)
  • ב MSVC בונה, לכבד הגדרות PROVE_FLAGS על שורת הפקודה של vcregress.pl (אנדרו Dunstan)

מה חדש בגירסה 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. (בגירסאות התומכות ב- ALTER SYSTEM, באפשרותך להשתמש בו כדי לשנות את תצורת התצורה, אך עדיין תצטרך להפעיל מחדש.)
  • בכל מסד נתונים של האשכול, הפעל את הפקודות הבאות בתור superuser:
  • SET search_path = pg_catalog;
  • צור או החלף תצוגה של pg_user_mappings AS
  • בחר
  • U.oid AS umid,
  • S.oid as srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • CASE כאשר U.umuser = 0 THEN
  • 'ציבורי'
  • ELSE
  • A.rolname
  • END כשם משתמש,
  • CASE WHEN (U.umuser 0 AND A.rolname = current_user
  • AND (pg_has_role (S.srvowner, 'USAGE')
  • has has_server_privilege (S.oid, 'USAGE')))
  • OR (U.umuser = 0 ו- pg_has_role (S.srvowner, 'USAGE'))
  • OR (בחר rlsuper מתוך pg_authid כאשר rolname = current_user)
  • לאחר מכן U.umoptions
  • אלזה NULL סוף כמו umoptions
  • מ- pg_user_mapping U
  • LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • אל תשכח לכלול את מסדי הנתונים template0 ו- template1, או שהפגיעות עדיין תתקיים במסדי נתונים שיצרת מאוחר יותר. כדי לתקן את התבנית 0, יהיה עליך באופן זמני לגרום לה לקבל חיבורים. ב PostgreSQL 9.5 ואילך, אתה יכול להשתמש
  • ALTER DATABASE template0 עם ALLOW_CONNECTIONS נכון;
  • ולאחר מכן לאחר תיקון template0, בטל זאת
  • ALTER DATABASE template0 עם ALLOW_CONNECTIONS שקר;
  • בגרסאות קודמות, השתמש במקום זאת
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • לבסוף, הסר את הגדרת תצורת allow_system_table_mods, ולאחר מכן הפעל מחדש את מנהל הדואר.
  • אל תאפשר סיסמאות ריקות בכל שיטות האימות מבוססות הסיסמה (Heikki Linnakangas)
  • libpq מתעלם ממאפייני סיסמה ריקים ואינו משדר אותם לשרת. לכן, אם הסיסמה של המשתמש הוגדרה למחרוזת הריקה, אי אפשר להתחבר עם הסיסמה באמצעות psql או לקוחות מבוססי libpq אחרים. לכן, מנהל מערכת עשוי להאמין שהגדרת הסיסמה לריקון שווה להשבית כניסה למערכת. עם זאת, עם לקוח שונה או לא מבוסס libpq, כניסה יכול להיות אפשרי, בהתאם לאיזו שיטת אימות מוגדר. במיוחד את השיטה הנפוצה ביותר, md5, קיבל סיסמאות ריקות. שנה את השרת כדי לדחות סיסמאות ריקות בכל המקרים. (CVE-2017-7546)
  • בצע בדיקת lo_put () עבור הרשאת UPDATE על אובייקט היעד הגדול (Tom Lane, Michael Paquier)
  • lo_put () צריך בוודאי לדרוש את אותן הרשאות כמו lowrite (), אבל ההמחאה היתה חסרה, ומאפשר לכל משתמש לשנות את הנתונים באובייקט גדול. (CVE-2017-7548)
  • תקן את התיעוד בנוגע לתהליך שדרוג שרתי ההמתנה עם pg_upgrade (Bruce Momjian)
  • התיעוד הקודם הורה למשתמשים להפעיל / להפסיק את השרת הראשי לאחר הפעלת pg_upgrade אך לפני סינכרון שרתי ההמתנה. רצף זה אינו בטוח.
  • תיקון נעילה בו זמנית של שרשראות עדכון tuple (Alvaro Herrera)
  • אם מספר מפגשים בו זמנית נעולים שרשרת עדכון tuple עם מצבי נעילה לא מסובכים באמצעות תצלום ישן, וכולם מצליחים, זה היה אפשרי עבור חלק מהם בכל זאת להיכשל (ולהסיק אין גרסה tuple לחיות) עקב גזע מַצָב. זה היה השלכות כגון בדיקות החוץ המפתח נכשל לראות tuple כי בהחלט קיים אבל הוא מתעדכן בו זמנית.
  • לתקן את השחיתות הפוטנציאלית של נתונים כאשר מקפיא tuple אשר XMAX הוא multixact עם בדיוק חבר אחד עדיין מעניין (Teodor Sigaev)
  • הימנע מגלישת מספר שלם וכתוצאה מכך לקרוס בעת מיון יותר ממיליארד זוגות בזיכרון (סרגיי קופוסוב)
  • ב- Windows, נסה שוב ליצור תהליך אם לא נשמור את טווח הכתובות עבור הזיכרון המשותף שלנו בתהליך החדש (טום ליין, עמית Kapila)
  • פעולה זו צפויה לתקן כשלים נדירים בתהליך ההשקה של ילדים, ככל הנראה עקב הפרעה ממוצרי אנטי-וירוס.
  • תיקון השחיתות הנמוכה של טבלת חשיש לנעילה משותפת ב- Windows בונה (תומס מונרו, טום ליין)
  • הימנע מחתימה על סגירת חיבור SSL נקי כאילו היה איפוס חיבור (Michael Paquier)
  • מנע שליחת כרטיסי הפעלה של SSL ללקוחות (טום ליין)
  • תיקון זה מונע כשלים של התחברות מחדש עם קוד SSL ​​של צד הלקוח, המכיל כרטיסים.
  • תקן קוד להגדרת tcp_keepalives_idle ב- Solaris (טום ליין)
  • תקן את סטטיסטיקת האספקה ​​כדי לכבד את הודעות החקירה שהונפקו רק לאחר כיבוי של מנהל דואר והפעלה מחדש מיידית (טום ליין)
  • התעלמו מחקירות הסטטיסטיקות שהונפקו תוך חצי שנייה מהכיבוי הקודם של מנהל הדואר.
  • ודא שהגודל של מאגר הנתונים של האספן הוא 100KB לפחות (טום ליין)
  • פעולה זו מפחיתה את הסיכון לנתוני נתונים סטטיסטיים שהוזנו על פלטפורמות ישנות שגודל ברירת המחדל שלהן לקבלה הוא פחות.
  • תקן יצירה אפשרית של מקטע WAL לא חוקי כאשר מצב המתנה מקודם רק לאחר עיבוד של רשומת WAL XLOG_SWITCH (אנדרס פרוינד)
  • תקן walsender כדי לצאת מיד כאשר בקשות הלקוח כיבוי (טום ליין)
  • תיקון SIGHUP ו- SIGUSR1 בטיפול בתהליכי walsender (Petr Jelinek, Andres Freund)
  • מניעת פאניקה המופעלת על ידי walsender במהלך מחסומי הכיבוי (Andres Freund, Michael Paquier)
  • תיקון הפעלה מחדש איטית של תהליכי העברה מחדש עקב מצב מרוץ ב- postmaster (Tom Lane)
  • תיקון דליפה של תתי-תהליכים קטנים שנשפכו לדיסק במהלך פענוח לוגי (Andres Freund)
  • הדבר הביא לקבצים זמניים שצורכים שטח דיסק מוגזם.
  • צמצם את העבודה הדרושה כדי לבנות תמונות במהלך יצירת חריצי פענוח לוגיים (Andres Freund, Petr Jelinek)
  • האלגוריתם הקודם היה יקר באופן בלתי סביר בשרת עם הרבה עסקאות פתוחות.
  • תקן מצב מרוץ שיכול לעכב ללא הגבלת זמן יצירת חריצי פענוח לוגיים (Andres Freund, Petr Jelinek)
  • צמצם תקורה בעיבוד אירועי פסילת syscache (טום ליין)
  • תכונה זו שימושית במיוחד עבור פענוח לוגי, אשר מפעילה ביטול מטמון תכופים.
  • הסר היוריסטי שגוי המשמש במקרים מסוימים להערכת סלקטיביות הצטרפות בהתבסס על נוכחות של אילוצים של מפתח זר (David Rowley)
  • בחלק מהמקרים שבהם קיימת מגבלה של מספר רב של טורי מפתח זר, אך לא בדיוק התאימה למבנה ההצטרפות של שאילתה, המתכנן השתמש בהיוריסטיות של אמידה המתברר שלא לעבוד טוב בכלל. החזר מקרים כאלה לאופן שבו הם נאמדו לפני 9.6.
  • תקן מקרים שבהם INSERT או UPDATE מקצה ליותר מאלמנט אחד של עמודה בעלת סוג תחום (over-array) (
  • אפשר להשתמש בפונקציות חלון בתת-סלקציות הנמצאות בארגומנטים של פונקציה צבירה (טום ליין)
  • ודא כי סעיף CHECK OPTIONS של תצוגה נאכף כראוי כאשר הטבלה הבסיסית היא טבלה זרה (Etsuro Fujita)
  • בעבר, ייתכן שהעדכון יידחף לחלוטין לשרת החוץ, אך הצורך לאמת את תנאי התצוגה החמיצו אם כן.
  • העבר את סוגי המערכים האוטומטיים מהדרך במהלך ALTER ... RENAME (Vik Fearing)
  • בעבר, שנה את השם של סוג מערך אוטוגראטד מנוגד מהדרך במהלך CREATE; תיקון זה מרחיב את ההתנהגות הזו לשינוי שם פעולות.
  • תיקון מצביע משתלשל בטבלה ALTER כאשר יש הערה על אילוץ השייך לטבלה (David Rowley)
  • החלת התגובה מחדש על האילוצים המשוחזרים עלולה להיכשל עם הודעת שגיאה מוזרה, או אפילו לקרוס.
  • ודא כי משתמש ALTER ... SET מקבל את כל גרסאות התחביר כי ALTER תפקיד ... SET עושה (פיטר Eisentraut)
  • אפשר לאילוצים של CHECK בטבלה זרה להיות בהתחלה לא חוקי (עמית Langote)
  • CREATE TABLE לוח טיפה ללא טיפה מפרטים לא תקפים עבור אילוצי CHECK, הנמקה שהטבלה חייבת להיות ריקה כדי שניתן יהיה לאמת את האילוץ באופן מיידי. אבל זה לא נכון בשביל ליצור טבלה זרה, שם אין סיבה להניח כי הטבלה הבסיסית ריקה, וגם אם זה לא עסק שלנו להחליט כי האילוץ יכול להיות מטופל כמו תקף הולך קדימה. דלג על "אופטימיזציה" לשולחנות זרים.
  • עדכן נכון את פרטי התלות בעת שינוי הארגומנט של פונקציה מסוג I / O או סוג החזרה מאטום לסוג הנכון (Heikki Linnakangas)
  • CREATE TYPE מעדכן את הפונקציות I / O המוצהרות בסגנון ארוך-מיושן זה, אך הוא שכח להקליט תלות בסוג, ומאפשר ל- DROP TYPE לאחר מכן להשאיר הגדרות פונקציה שבורות מאחור.
  • התר מקביליות לתוכנית השאילתה כאשר עותקים COPY מתוצאת שאילתה (Andres Freund)
  • הפחת את השימוש בזיכרון כאשר ANALYZE מעבד טור tsvector (Heikki Linnakangas)
  • תקן אובדן דיוק מיותר ועיגול מרושל בעת הכפלת או חלוקת ערכי כסף על ידי מספרים שלמים או צפים (טום ליין)
  • הדקו בדיקות עבור רווח לבן בפונקציות המזהות מזהים, כגון regprocedurein () (Tom Lane)
  • בהתאם לשפה השוררת, פונקציות אלה יכולות לפרש שברים של תווים מרוביטים כמו רווח לבן.
  • השתמש בסמלים #define רלוונטיים מ- Perl בעת הכנת PL / Perl (Ashutosh Sharma, Tom Lane)
  • פעולה זו מונעת בעיות ניידות, בדרך כלל מתבטאת באי התאמה בין לחיצת יד במהלך טעינת ספריה, בעת עבודה עם גרסאות Perl האחרונות.
  • ב- libpq, אפס כראוי את מצב האימות של GSS / SASL ו- SSPI לאחר ניסיון חיבור נכשל (Michael Paquier)
  • אי-ביצוע זה פירושו שכאשר נופלים בחזרה מה- SSL אל חיבורים שאינם SSL, כשל ב- GSS / SASL בניסיון SSL תמיד יגרום לניסיון הלא SSL להיכשל. SSPI לא נכשל, אבל הוא הדליף זיכרון.
  • ב psql, לתקן את הכשל כאשר עותק מ STDIN הוא הסתיים עם האות EOF מקלדת ואז אחר COPY מ STDIN הוא ניסה (תומאס מונרו)
  • התנהגות לא נכונה זו נצפתה בפלטפורמות של BSD (כולל MACOS), אך לא במרבית האחרים.
  • תקן pg_dump ו- pg_restore כדי לפלוט פקודות VIEWER MATERIALIZED VIEW (טום ליין)
  • פעולה זו מונעת שגיאות במהלך dump / restore כאשר תצוגה ממומשת מתייחסת לטבלאות שבבעלות משתמש אחר.
  • לשפר את הדיווח של pg_dump / pg_restore על תנאי השגיאה שמקורם ב- zlib (ולדימיר קונצ'יקוב, אלווארו הררה)
  • תקן pg_dump עם האפשרות --clean כדי לשחרר גורמי אירוע כצפוי (טום ליין)
  • הוא גם מקצה נכון כעת את הבעלות על מפעילי האירועים; לפני, הם שוחזרו כמו להיות בבעלות superuser מפעיל את התסריט השחזור.
  • תקן pg_dump עם האפשרות --clean כדי לא להיכשל כאשר הסכימה הציבורית אינה קיימת (Stephen Frost)
  • תקן pg_dump כדי לא לפלוט SQL לא חוקי עבור מחלקת מפעיל ריקה (Daniel Gustafsson)
  • תקן פלט pg_dump ל- stdout ב- Windows (Kuntal Ghosh)
  • קובץ דחוס של טקסט רגיל שנכתב ל- stdout יכיל נתונים מושחתים עקב אי-הצבת מתאר הקובץ במצב בינארי.
  • תקן את pg_get_ruledef () כדי להדפיס פלט נכון עבור הכלל SELECT של תצוגה ששמותיה השתנו (טום ליין)
  • במקרים מסוימים בפינה, pg_dump מסתמך על pg_get_ruledef () כדי להשליך תצוגות, כך ששגיאה זו עלולה לגרום לכשל / הטעינה מחדש.
  • תיקון השלכת החיצוני מצטרף עם אילוצים ריקים, כגון תוצאה של JOIN שמאל טבעי ללא עמודות נפוצות (טום ליין)
  • תקן את ההטלה של ביטויים בפונקציה בסעיף FROM במקרים שבהם הביטוי אינו מתפרק למשהו שנראה כמו קריאה לפונקציה (טום ליין)
  • תקן פלט pg_basebackup ל- stdout ב- Windows (Haribabu Kommi)
  • גיבוי שנכתב ל- stdout יכיל נתונים פגומים בשל אי-הצבת מתאר הקובץ במצב בינארי.
  • תקן pg_rewind לטפל נכון בקבצים העולים על 2GB (Kuntal Ghosh, Michael Paquier)
  • קבצים אלה בדרך כלל לא יופיעו בספריות הנתונים של PostgreSQL, אך הם יכולים להיות נוכחים במקרים מסוימים.
  • תקן pg_upgrade כדי לוודא שרשומת ה- WAL הסופית אינה כוללת את המינימום wal_level = (ברוס מומג'יאן)
  • מצב זה עלול למנוע שרתי המתנה משודרגים מתחברים מחדש.
  • תיקון חישוב pg_xlogdump של אורך הרשומה WAL (Andres Freund)
  • ב- postgres_fdw, צור מחדש חיבורים לשרתים מרוחקים לאחר ALTER SERVER או פקודות ALTER USER MAPPING (Kyotaro Horiguchi)
  • פעולה זו מבטיחה ששינויי אפשרויות המשפיעים על פרמטרים של חיבור יחולו באופן מיידי.
  • ב- postgres_fdw, אפשר ביטול של פקודות בקרת טרנזקציות מרחוק (Robert Haas, Rafia Sabih)
  • שינוי זה מאפשר לנו להימלט במהירות מחכה לשרת מרוחק שאינו מגיב במקרים רבים יותר מבעבר.
  • הגדל את MAX_SYSCACHE_CALLBACKS כדי לספק מקום נוסף לתוספים (טום ליין)
  • השתמש תמיד -fPIC, לא -fic, בעת בניית ספריות משותפות עם Gcc (טום ליין)
  • זה תומך בספריות הרחבה גדולות יותר בפלטפורמות שבהן הוא משנה.
  • ב- MSVC בונה, לטפל במקרה שבו הספרייה openssl אינו בתוך תיקיית משנה של VC (אנדרו דנסטן)
  • ב- MSVC בונה, הוסף נתיב כולל עבור קבצי כותרת libxml2 (אנדרו דנסטן)
  • פעולה זו קובעת צורך קודם להעביר דברים מסביב להתקנות Windows סטנדרטיות של libxml2.
  • ב- MSVC בונה, זהה ספריית Tcl הנקראת tcl86.lib (Noah Misch)
  • ב MSVC בונה, לכבד הגדרות PROVE_FLAGS על שורת הפקודה של vcregress.pl (אנדרו Dunstan)

תוכנה דומה

תגובות ל PostgreSQL

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!