| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 롤 토토 : 문서 : 9.3 : 행 롤 토토 예 | 위로 | 60장. 어떻게 플래너가 통계를 사용함 | 스포츠 토토 : 문서 : 9.3 : 부록 | |
테이블에 대한 액세스pg_statistic이다 슈퍼유저로 제한되어 일반 사용자는 알 수 없습니다. 다른 사용자의 테이블 내용. 약간의 선택성 추정 함수는 사용자가 제공한 연산자(둘 중 하나)를 사용합니다. 쿼리에 나타나는 연산자 또는 관련 연산자)를 분석합니다. 저장된 통계입니다. 예를 들어, 저장된 가장 일반적인 값을 적용할 수 있으며, 선택성 추정기는 적절한 실행이 필요합니다=연산자는 쿼리의 상수를 저장된 값과 비교합니다. 따라서 데이터는pg_statistic이다 잠재적으로 사용자 정의 연산자에 전달됩니다. 적절하게 조작된 연산자는 전달된 피연산자를 의도적으로 유출할 수 있습니다(예: 예를 들어 기록하거나 다른 테이블에 기록) 또는 오류 메시지에 해당 값을 표시하여 실수로 유출한 경우 두 경우 모두에서 데이터가 노출될 수 있습니다.pg_statistic할 수 없어야 하는 사용자에게 보세요.
이를 방지하기 위해 다음은 모든 내장된 장치에 적용됩니다. 선택성 추정 기능. 쿼리를 계획할 때 순서대로 저장된 통계를 사용하려면 현재 사용자는 다음 중 하나를 수행해야 합니다. 가지고 있다선택테이블 또는 테이블에 대한 권한 관련 열이거나 사용된 연산자는 다음과 같아야 합니다.누설 방지(보다 정확하게는 연산자는)를 기반으로 합니다. 그렇지 않은 경우 선택성 추정기는 다음을 수행합니다. 마치 이용 가능한 통계가 없는 것처럼 행동하고 계획자는 기본 또는 대체 가정을 진행합니다.
사용자가 테이블에 대해 필요한 권한을 가지고 있지 않거나 열이 있으면 대부분의 경우 쿼리는 궁극적으로 권한 거부 오류. 이 경우 이 메커니즘은 보이지 않습니다. 실제로. 그러나 사용자가 보안 장벽에서 읽는 경우 그러면 기획자는 통계를 확인하고 싶을 수도 있습니다. 그렇지 않으면 사용자가 액세스할 수 없는 기본 테이블입니다. 에서 이 경우 운영자는 누출 방지 조치를 취해야 합니다. 그렇지 않으면 통계가 사용할 수 없습니다. 그 외에는 직접적인 피드백이 없습니다. 계획이 차선책일 수도 있습니다. 누군가 이것이라고 의심한다면 이 경우 더 많은 권한을 가진 사용자로 쿼리를 실행해 볼 수 있습니다. 다른 계획의 결과가 나오는지 확인하세요.
이 제한은 기획자가 다음과 같은 경우에만 적용됩니다. 하나 이상의 값에 대해 사용자 정의 연산자를 실행해야 합니다.pg_statistic. 그래서 기획자는 다음과 같은 일반적인 통계 정보를 사용할 수 있습니다. Null 값의 비율 또는 고유 값의 수 열, 액세스 권한에 관계없이.
타사에 포함된 선택성 추정 기능 사용자가 정의한 통계에 대해 잠재적으로 작동하는 확장 운영자는 동일한 보안 규칙을 따라야 합니다. 상담하세요 안내용 PostgreSQL 소스 코드입니다.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 행 추정 예 | 위로 | 부록 |