| PostgreSQL 9.1.24 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.1 : 토토 사이트 순위 7.4.9 | 위로 | 부록 E. 토토 사이트 추천 노트 | PostgreSQL : 문서 : 9.1 : 스포츠 토토 사이트 7.4.7 | |
출시일: 2005-05-09
이 릴리스에는 다음을 포함하여 7.4.7의 다양한 수정 사항이 포함되어 있습니다. 여러 보안 관련 문제. 새로운 정보에 대해서는 7.4 주요 릴리스의 기능은 다음을 참조하세요.섹션 E.202.
7.4.X를 실행하는 경우 덤프/복원이 필요하지 않습니다. 그러나 이는 두 가지 중요한 문제를 처리하는 한 가지 가능한 방법입니다. 초기 컨텐츠에서 발견된 보안 문제 7.4.X 시스템 카탈로그. 다음을 사용하는 덤프/initdb/다시 로드 시퀀스 7.4.8의 initdb는 이러한 문제를 자동으로 수정합니다.
더 큰 보안 문제는 내장 문자가 세트 인코딩 변환 함수는 SQL에서 호출될 수 있습니다. 권한이 없는 사용자가 명령을 실행했지만 기능이 작동하지 않았습니다. 그러한 용도로 설계되었으며 악의적인 공격으로부터 안전하지 않습니다. 인수의 선택. 수정 사항에는 선언된 내용 변경이 포함됩니다. 더 이상 사용할 수 없도록 이러한 기능의 매개변수 목록을 표시합니다. SQL 명령에서 호출됩니다. (이것은 그들의 정상에 영향을 미치지 않습니다 인코딩 변환 기계에 의해 사용됩니다.)
더 적은 문제는기여/tsearch2모듈은 여러 개를 생성합니다 반환하도록 잘못 선언된 함수내부그들이 받아들이지 않을 때내부인수. 이는 모든 사람의 유형 안전성을 깨뜨립니다. 함수를 사용하여내부인수.
모든 설치를 복구하는 것이 좋습니다. 이러한 오류는 initdb 또는 매뉴얼에 따라 수행됩니다. 수리 절차는 아래와 같습니다. 오류는 적어도 허용 권한이 없는 데이터베이스 사용자가 서버 프로세스를 중단시키고 권한이 없는 사용자가 권한을 얻도록 허용할 수도 있습니다. 데이터베이스 슈퍼유저.
initdb를 수행하지 않으려면 다음을 수행하십시오. 대신 절차를 따르세요. 데이터베이스 슈퍼유저로서 다음을 수행합니다.
시작;
업데이트 pg_proc SET proargtypes[3] = 'internal'::regtype
WHERE pronamespace = 11 AND pronargs = 5
AND proargtypes[2] = 'cstring'::regtype;
-- 명령은 90개 행을 업데이트했다고 보고해야 합니다.
-- 그렇지 않다면 커밋하는 대신 롤백하고 조사하세요!
커밋;
다음으로, 설치했다면기여/tsearch2, 다음을 수행하세요:
시작; 업데이트 pg_proc SET proargtypes[0] = 'internal'::regtype 어디에서 oid IN ( 'dex_init(text)'::regprocedure, 'snb_en_init(text)'::regprocedure, 'snb_ru_init(text)'::regprocedure, 'spell_init(text)'::regprocedure, 'syn_init(텍스트)'::regprocedure ); -- 명령은 5개 행을 업데이트했다고 보고해야 합니다. -- 그렇지 않다면 커밋하는 대신 롤백하고 조사하세요! 저지르다;
다음과 같은 메시지와 함께 이 명령이 실패하는 경우""dex_init(text)" 함수가 존재하지 않습니다"그러면 둘 중 하나tsearch2다음에 설치되지 않았습니다. 이 데이터베이스이거나 이미 업데이트를 완료했습니다.
위 절차는 다음에서 수행되어야 합니다.각각설치 데이터베이스, 포함템플릿1, 이상적으로는 포함템플릿0또한요. 만약 당신이 템플릿 데이터베이스를 수정하지 않은 후 이후에 생성된 데이터베이스 데이터베이스에는 동일한 오류가 포함됩니다.템플릿1다른 것과 같은 방법으로 수정할 수 있습니다. 다른 데이터베이스가 있지만 수정 중입니다.템플릿0추가 단계가 필요합니다. 먼저, 데이터베이스 문제에서:
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
다음 연결 대상템플릿0그리고 위의 수리 절차를 수행하십시오. 마지막으로 다음을 수행하세요.
-- template0 다시 고정: 진공 동결; -- 향후 변경으로부터 보호합니다. 업데이트 pg_database SET datallowconn = false WHERE datname = 'template0';
오용 방지를 위해 인코딩 기능 서명 변경
변경기여/tsearch2에 안전하지 않은 사용을 피하십시오.내부함수 결과
트랜잭션을 허용한 고대 경쟁 조건을 복구합니다. 어떤 목적을 위해 커밋된 것으로 보입니다(예: SELECT FOR 업데이트) 다른 목적보다 약간 더 빠름
이것은 다음으로 이어질 수 있으므로 매우 심각한 버그입니다. 명백한 데이터 불일치가 잠시 표시됩니다. 응용 프로그램.
관계 확장과 다음 사이의 경합 상태를 복구합니다. 진공
이것은 이론적으로 페이지의 손실을 초래할 수 있습니다 시나리오가 그럴듯해 보이지만 새로 삽입된 데이터의 가치가 있습니다. 매우 낮은 확률로. 알려진 사례는 없습니다 Assert 실패 이상의 원인이 되었습니다.
비교 수정시간과 시간 구역값
다음의 경우 비교 코드가 잘못되었습니다.--활성화-정수-날짜 시간구성 스위치가 사용되었습니다. 참고: a에 대한 색인시간대 포함 시간열, 다음과 같아야 합니다REINDEX12827_12935
수정추출(EPOCH)for시간대 포함 시간값
음수 소수 초의 잘못된 표시 수정간격값
이 오류는 다음 경우에만 발생했습니다.--활성화-정수-날짜 시간구성 스위치가 사용되었습니다.
백엔드 종료 중 수행된 작업이 다음과 같은지 확인하세요. 통계 수집기에 의해 계산됨
이것은 다음 보고서를 해결할 것으로 예상됩니다.pg_autovacuum시스템을 청소하지 않음 카탈로그를 충분히 자주 사용합니다. 카탈로그에 대해 언급되지 않았습니다. 백엔드 중 임시 테이블 제거로 인한 삭제 종료.
plpgsql의 추가 버퍼 오버런 검사(Neil)
다음을 포함하는 트리거 이름을 덤프하도록 pg_dump 수정%맞습니다 (닐)
수정contrib/pgcrypto최신용 OpenSSL 빌드(Marko Kreen)
아직 더 많은 64비트 수정 사항기여/intagg
반환 함수의 잘못된 최적화 방지기록
방지to_char(간격)월 관련 형식에 대한 덤핑 코어에서
다음에서 충돌 방지합체(NULL,NULL)
수정배열_맵PL에 전화하기
올바르게 작동함
권한 체크인 수정변경 데이터베이스 이름 변경
수정언어 변경 이름 바꾸기
만들다RemoveFromWaitQueue나중에 정리
이것은 잠금 관리 오류를 수정합니다. 트랜잭션이 대기 중에 종료된 경우 표시됩니다. 잠금(일반적으로 쿼리 취소를 통해) 및 소유자 아주 좁은 창 안에서 잠금이 해제되었습니다.
유형이 지정되지 않은 매개변수가 나타나는 문제 수정삽입 ... 선택
수정클러스터다음 이후 실패OIDS 없이 테이블 설정 변경