2025 년 7 월 17 일 : | Postgresql 18 베타 2 토토 베이!
지원되지 않는 버전 :9.6
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

E.21. 릴리스 9.6.4

출시 날짜 : 2017-08-10

이 릴리스에는 9.6.3의 다양한 토토 베이 사항이 포함되어 있습니다. 9.6 주요 릴리스의 새로운 기능에 대한 정보는 참조무지개 토토 PostgreSQL : 문서 : 9.6 : 릴리스 9.6.

E.21.1. 버전 9.6.4로의 마이그레이션

9.6.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.

그러나 인증을 위해 사용자 암호를 사용하는 외국 데이터 서버를 사용하는 경우 아래의 첫 번째 ChangeLog 항목을 참조하십시오.

또한 9.6.3 이전 버전에서 업그레이드하는 경우 참조PostgreSQL : 문서 : 9.6 : 스포츠 토토 결과 9.6.3.

E.21.2. 변화

  • 가시성을 추가로 제한pg_user_mappings.Umoptions, 사용자 매핑 옵션 (Noah Misch)으로 저장된 비밀번호를 보호하기 위해

    CVE-2017-7486의 토토 베이은 잘못되었습니다. 사용자는 자신의 사용자 매핑에서 옵션을 볼 수있었습니다.usage관련 외국 서버에 대한 권한. 이러한 옵션에는 사용자가 아닌 서버 소유자가 제공 한 비밀번호가 포함될 수 있습니다. 부터information_schema.user_mapping_options그러한 경우 옵션이 표시되지 않습니다.pg_user_mappings(CVE-2017-7547)

    그 자체로는이 패치는 새로 Intdb'd 데이터베이스에서만 동작을 토토 베이합니다. 이 변경 사항을 기존 데이터베이스에 적용하려면 다음을 수행해야합니다.

    1. 추가 후 포스트 마스터를 다시 시작합니다allow_system_table_mods = truetopostgresql.conf. (지원하는 버전Alter System, 구성을 변경하는 데 사용할 수 있지만 여전히 다시 시작해야합니다.)

    2. in클러스터의 데이터베이스, 다음 명령을 슈퍼업자로 실행합니다 :

      SET SEARCH_PATH = PG_CATALOG;
      보기 PG_USER_MAPPINGS를 생성하거나 교체하십시오
          선택하다
              U. UMID로서,
              srvid로서 S.Oid,
              srvname으로 s.srvname,
              U.UMUSER로 UMUSER,
              u.umuser = 0 인 경우
                  '공공의'
              또 다른
                  a.rolname
              UseName으로 끝나고
              경우 (u.umuser < 0 및 a.rolname = current_user
                           그리고 (PG_HAS_ROLE (s.srvowner, 'usage')
                                또는 has_server_privilege (s.oid, 'usage')))))
                          또는 (u.umuser = 0 및 pg_has_role (s.srvowner, 'usage')))))
                          또는 (rolname = current_user에서 pg_authid에서 rolsuper를 선택하십시오)
                          그런 다음 u.umoptions
                       그렇지 않으면 널 끝이 umoptions로 끝납니다
          pg_user_mapping u에서
               왼쪽 가입 pg_authid a on (a.oid = u.umuser) 가입
              pg_foreign_server s on (u.umserver = s.oid);
    3. 포함하는 것을 잊지 마십시오Template0andtemplate1데이터베이스 또는 취약점은 나중에 작성하는 데이터베이스에 여전히 존재합니다. 토토 베이하려면template0, 일시적으로 연결을 수락하도록해야합니다. 안에postgresql9.5 이상, 사용할 수 있습니다

      allow_connections true를 사용하여 데이터베이스 템플릿을 변경하십시오.

      그리고 고정 후Template0, undo with

      allow_connections가있는 데이터베이스 템플릿 변경;

      이전 버전에서 대신 사용

      업데이트 PG_DATABASE SET DATLACKCONN = TRUE 위치 Datname = 'Template0';
      pg_database set datallowconn = false where datname = 'template0'; 업데이트
    4. 마지막으로 제거allow_system_table_mods구성 설정을 다시 시작하고 우체국 장을 다시 시작합니다.

  • 모든 암호 기반 인증 방법 (Heikki Linnakangas)에서 빈 암호를 허용하지 않습니다.

    libpq빈 비밀번호 사양을 무시하고 서버로 전송하지 않습니다. 따라서 사용자의 암호가 빈 문자열로 설정된 경우 해당 비밀번호로 로그인하는 것은 불가능합니다.PSQL또는 기타libpq기반 클라이언트. 따라서 관리자는 비밀번호로 비밀번호를 설정하는 것이 비밀번호 로그인을 비활성화하는 것과 동일하다고 생각할 수 있습니다. 그러나 토토 베이되거나 비libpq-기반 클라이언트, 로그인이 가능할 수 있습니다. 특히 가장 일반적인 방법,MD5, 허용 된 빈 암호. 모든 경우에 빈 비밀번호를 거부하도록 서버를 변경하십시오. (CVE-2017-7546)

  • makelo_put ()확인업데이트대상 대상 대상의 특권 (Tom Lane, Michael Paquier)

    lo_put ()반드시와 동일한 권한을 요구해야합니다.lowrite (), 그러나 확인이 누락되어 모든 사용자가 큰 오브젝트에서 데이터를 변경할 수 있습니다. (CVE-2017-7548)

  • 대기 서버를 업그레이드하는 프로세스에 대한 설명서 토토 베이pg_upgrade(Bruce Momjian)

    이전 설명서는 사용자에게 실행 후 기본 서버를 시작/중지하도록 지시했습니다pg_upgrade그러나 대기 서버를 동기화하기 전에. 이 순서는 안전하지 않습니다.

  • 튜플 업데이트 체인의 동시 잠금 토토 베이 (Álvaro Herrera)

    몇 차례의 세션이 오래된 스냅 샷을 사용하여 비 분쇄 잠금 모드와 함께 튜플 업데이트 체인을 동시에 잠그면 모두 성공할 수있었습니다. 그럼에도 불구하고 일부는 레이스 조건으로 인해 실패 할 수있었습니다. 이것은 분명히 존재하지만 동시에 업데이트되고있는 튜플을 보지 못하는 외국 키 점검과 같은 결과를 가져 왔습니다.

  • Xmax가 정확히 하나의 연합 멤버 (Teodor Sigaev)와 다각적 인 튜플을 동결 할 때 잠재적 데이터 손상 토토 베이

  • 정수 오버플로와 10 억 개 이상의 튜플을 정렬 할 때 충돌을 피하십시오 (Sergey Koposov)

  • Windows에서 새로운 프로세스 (Tom Lane, Amit Kapila)에서 공유 메모리의 주소 범위를 예약하지 않으면 재시험 프로세스 생성

    이것은 바이러스 백신 제품의 간섭으로 인한 드문 어린이 프로세스 출시 실패를 토토 베이해야합니다.

  • Windows 빌드에서 공유 술어 잠금 해시 테이블의 낮은 확률 손상 토토 베이 (Thomas Munro, Tom Lane)

  • 연결 재설정 (Michael Paquier)처럼 SSL 연결의 깨끗한 폐쇄를 피하십시오

  • 고객에게 SSL 세션 티켓 발송 방지 (Tom Lane)

    이 토토 베이은 티켓 인식 클라이언트 측 SSL 코드로 재 연결 장애를 방지합니다.

  • 설정 코드 토토 베이TCP_KEEPALIVES_IDLEOn Solaris (Tom Lane)

  • Postmaster Shutdown 및 즉시 재시작 (Tom Lane) 직후에 발행 된 문의 메시지를 기리기 위해 통계 수집가를 토토 베이하십시오.

    이전 포스트 마스터 셧다운의 0.5 초 이내에 발행 된 통계 문의는 효과적으로 무시되었습니다.

  • 통계 수집가의 수신 버퍼 크기가 100KB 이상인지 확인하십시오 (Tom Lane)

    이것은 기본 수신 버퍼 크기가 그보다 적은 기존 플랫폼에서 통계 데이터 삭제 위험을 줄입니다.

  • 대기가 처리 된 직후에 대기가 홍보 될 때 유효하지 않은 WAL 세그먼트의 가능한 생성 토토 베이xlog_switchWal Record (Andres Freund)

  • 토토 베이Walsender클라이언트가 종료를 요청할 때 즉시 종료하려면 (Tom Lane)

  • 토토 베이SighupandSigusR1Walsender 프로세스 처리 (Petr Jelinek, Andres Freund)

  • 셧다운 체크 포인트 중 Walsender 트리거 공황 방지 (Andres Freund, Michael Paquier)

  • 불필요하게 느린 재시작 토토 베이WalreceiverPostmaster (Tom Lane)의 인종 조건으로 인한 프로세스

  • 논리적 디코딩 (Andres Freund) 중에 디스크에 쏟아진 작은 잠수함의 누출 토토 베이

    이로 인해 임시 파일이 과도한 디스크 공간을 소비했습니다.

  • 논리적 디코딩 슬롯 (Andres Freund, Petr Jelinek)을 생성하는 동안 스냅 샷을 구축하는 데 필요한 작업을 줄입니다.

    이전 알고리즘은 열린 트랜잭션이 많은 서버에서 무자비하게 비싸다.

  • 논리적 디코딩 슬롯의 생성을 무기한 지연시킬 수있는 레이스 조건 (Andres Freund, Petr Jelinek)

  • Syscache Invalidation Events (Tom Lane) 처리시 오버 헤드 감소

    이것은 자주 캐시 무효화를 유발하는 논리적 디코딩에 특히 도움이됩니다.

  • 일부 경우에 사용 된 부정확 한 휴리스틱 제거 일부 경우 외국 키 제약 조건 (David Rowley)의 존재에 따라 결합 선택성을 추정하는 데 사용됩니다.

    어떤 경우에는 다중 열 외국 키 제약이 존재했지만 쿼리의 조인 구조와 정확히 일치하지 않은 경우, 플래너는 전혀 잘 작동하지 않는 것으로 밝혀진 추정 휴리스틱을 사용했습니다. 9.6 년 이전에 추정 된 방식으로 그러한 사례를 되돌립니다.

  • an을 토토 베이하십시오.삽입또는업데이트도메인 오버 배열 유형 (Tom Lane) 인 열의 둘 이상의 요소에 할당

  • 서브에서 창 함수를 사용할 수 있도록하십시오.selectS는 집계 함수 (Tom Lane)의 인수 안에있는

  • 보기 확인옵션 확인기본 테이블이 외국 표 (Etsuro Fujita) 일 때 조항이 제대로 시행됩니다.

    이전에, 업데이트는 전적으로 외국 서버로 푸시 될 수 있지만,보기 조건을 확인해야 할 필요성은 누락되었습니다..

  • 자율적 인 배열 유형을 방해하는 동안Alter ... Rename(Vik Fearing)

    이전에, 우리는 충돌하는자가 생성 배열 유형의 이름을 바꾸는 동안생성; 이 토토 베이 사항은 해당 동작이 운영 변경으로 확장됩니다.

  • 매달린 포인터 토토 베이Alter Table테이블에 속하는 제약 조건에 대한 의견이있을 때 (David Rowley)

    재구성 된 제약 조건에 주석을 다시 적용하는 것은 이상한 오류 메시지로 실패하거나 심지어 충돌 할 수 있습니다.

  • ALTER USER ... SET모든 구문 변형을 받아들입니다.ALTER 역할 ... 세트do (Peter Eisentraut)

  • 외국 테이블 허용check처음에 제약 조건유효하지 않음(Amit Langote)

    테이블 생성조용히 드롭유효하지 않음지정자check제약, 제약 조건을 즉시 검증 할 수 있도록 테이블이 비어 있어야한다고 추론합니다. 그러나 이것은외국 테이블 만들기, 기본 테이블이 비어 있다고 가정 할 이유가없고, 그것이 제약이 유효한 것으로 취급 될 수 있다고 결정하는 것이 우리의 사업이 아니라고 생각할 이유가 없습니다. 이거 건너 뛰기"최적화"외국 테이블의 경우

  • 데이터 유형을 변경할 때 종속성 정보를 올바르게 업데이트합니다 I/O 인수 또는 반환 유형에서opaque올바른 유형 (Heikki Linnakangas)

    유형 만들기업데이트 I/O 기능은이 긴 관찰 스타일로 선언되었지만 유형에 대한 종속성을 기록하는 것을 잊어 버렸습니다.드롭 타입깨진 기능 정의를 남겨 두려면.

  • 쿼리 계획에서 병렬성 허용copy쿼리 결과 (Andres Freund)의 사본

  • 메모리 사용 감소분석프로세스 aTSVECTOR열 (Heikki Linnakangas)

  • 곱하거나 나누는 경우 불필요한 정밀 손실 및 조잡한 반올림 토토 베이Money정수 또는 부유물 별 값 (Tom Lane)

  • 식별자를 구문 분석하는 함수에서 whitespace에 대한 검사를 조여regprocedurein ()(Tom Lane)

    우세한 로케일에 따라 이러한 기능은 멀티 바이트 문자의 조각을 공백으로 잘못 해석 할 수 있습니다.

  • 관련성 사용#define컴파일하는 동안 Perl의 기호pl/perl(Ashutosh Sharma, Tom Lane)

    이것은 휴대 성 문제를 피하고 일반적으로 A로 나타납니다"핸드 셰이크"라이브러리로드 중 불일치, 최근 Perl 버전으로 작업 할 때

  • inlibpq, 연결 실패 시도 (Michael Paquier) 후 GSS/SASL 및 SSPI 인증 상태를 올바르게 재설정합니다.

    이 작업을 수행하지 않으면 SSL에서 비 SSL 연결로 돌아올 때 SSL 시도에서 GSS/SASL 실패는 항상 비 SSL 시도가 실패 할 수 있습니다. SSPI는 실패하지 않았지만 메모리가 유출되었습니다.

  • inPSQL, 고장stdin에서 복사키보드 EOF 신호로 끝납니다.stdin에서 복사시도 됨 (Thomas Munro)

    이 오해는 BSD 유래 플랫폼 (MACOS 포함)에서 관찰되었지만 대부분의 다른 사람들에게는 그렇지 않았습니다.

  • 토토 베이pg_dumpandPG_RESTORE방출 할Refresh INSASICED VIEWCommands Last (Tom Lane)

    이것은 구체화 된보기가 다른 사용자가 소유 한 테이블을 말할 때 덤프/복원 중 오류를 방지합니다.

  • 개선pg_dump/PG_RESTORE의 오류 조건에 대한보고Zlib(Vladimir Kunschikov, Álvaro Herrera)

  • 토토 베이pg_dumpwith-Clean예상대로 이벤트 트리거를 떨어 뜨리는 옵션 (Tom Lane)

    이제 이벤트 트리거 소유권을 올바르게 할당합니다. 이전에는 복원 스크립트를 실행하는 슈퍼 서서가 소유 한 것으로 복원되었습니다.

  • 토토 베이pg_dumpwith-Cleanpublic스키마가 존재하지 않습니다 (Stephen Frost)

  • 토토 베이pg_dump빈 연산자 클래스 (Daniel Gustafsson)에 대해 유효하지 않은 SQL을 방출하지 않음

  • 토토 베이pg_dumpWindows (Kuntal Ghosh)에서 stdout으로 출력

    STDOUT에 작성된 압축 된 일반 텍스트 덤프에는 파일 디스크립터를 이진 모드에 넣지 않아 부패한 데이터가 포함됩니다.

  • 토토 베이pg_get_ruledef ()에 대한 올바른 출력을 인쇄하려면ON SELECT열이 바뀌는 뷰의 규칙 (Tom Lane)

    일부 코너의 경우pg_dump의존pg_get_ruledef ()덤프 뷰를 위해서는이 오류가 덤프/재 장전 실패를 초래할 수 있습니다.

  • a와 같은 빈 제약 조건을 가진 외부 조인의 덤핑 토토 베이자연 왼쪽 조인공통 열이 없음 (Tom Lane)

  • 기능 표현식의 덤핑 토토 베이From표현식이 함수 호출처럼 보이는 무언가로 붕괴되지 않는 경우 (Tom Lane).

  • 토토 베이PG_BASEBACKUPWindows에서 Stdout으로 출력 (Haribabu Kommi)

    STDOUT에 작성된 백업에는 파일 디스크립터를 이진 모드에 넣지 않아 부패한 데이터가 포함됩니다.

  • 토토 베이pg_rewind2GB를 초과하는 파일을 올바르게 처리하려면 (Kuntal Ghosh, Michael Paquier)

    일반적으로 그러한 파일이 나타나지 않습니다PostgreSQL데이터 디렉토리이지만 경우에 따라있을 수 있습니다.

  • 토토 베이pg_upgrade결말 월드 레코드에 없음을 확인하려면Wal_level=최소(Bruce Momjian)

    이 조건은 업그레이드 된 대기 서버를 다시 연결하는 것을 방지 할 수 있습니다.

  • 토토 베이pg_xlogdump의 WAL 레코드 길이 계산 (Andres Freund)

  • inpostgres_fdw, 후 원격 서버에 대한 연결을 다시 설정Alter Server또는사용자 매핑 변경명령 (Kyotaro Horiguchi)

    이렇게하면 연결 매개 변수에 영향을 미치는 옵션 변경이 즉시 적용됩니다.

  • inpostgres_fdw, 원격 트랜잭션 제어 명령 취소 허용 (Robert Haas, Rafia Sabih)

    이 변경 사항은 이전보다 더 많은 경우보다 응답하지 않는 원격 서버를 기다릴 수 있습니다.

  • 증가max_syscache_callbacks확장을위한 더 많은 공간을 제공하려면 (Tom Lane)

  • 항상 사용-fpic, 아님-fpic, GCC (Tom Lane)로 공유 라이브러리를 구축 할 때

    이것은 차이를 만드는 플랫폼에서 더 큰 확장 라이브러리를 지원합니다.

  • MSVC가 구축 된 경우를 처리하는 경우OpenSSL도서관 내에 있지 않음VC하위 디렉토리 (Andrew Dunstan)

  • MSVC 빌드에서는 적절한 포함 경로 추가libxml2헤더 파일 (Andrew Dunstan)

    이것은 표준 Windows 설치에서 사물을 움직여야 할 필요성을 토토 베이합니다.libxml2.

  • MSVC 빌드에서 이름이 지정된 TCL 라이브러리를 인식tcl86.lib(Noah Misch)

  • MSVC 빌드, 명예provace_flags설정에서vcregress.pl의 명령 줄 (Andrew Dunstan)