71.3. 플래너 스포츠 토토 베트맨 및 보안

테이블에 대한 액세스pg_statistic은 슈퍼유저로 제한되어 있으므로 일반 사용자는 다른 사용자의 테이블 내용을 알 수 없습니다. 일부 선택성 추정 기능은 사용자가 제공한 연산자(쿼리에 나타나는 연산자 또는 관련 연산자)를 사용하여 저장된 스포츠 토토 베트맨를 분석합니다. 예를 들어, 저장된 가장 일반적인 값이 적용 가능한지 여부를 결정하려면 선택성 추정기는 적절한 방법을 실행해야 합니다.=연산자는 쿼리의 상수를 저장된 값과 비교합니다. 따라서 데이터는pg_statistic잠재적으로 사용자 정의 연산자에 전달됩니다. 적절하게 제작된 연산자는 전달된 피연산자를 의도적으로 유출할 수 있습니다(예: 피연산자를 기록하거나 다른 테이블에 기록). 또는 오류 메시지에 해당 값을 표시하여 실수로 피연산자를 유출할 수 있습니다. 두 경우 모두에서 데이터가 노출될 수 있습니다.pg_statistic볼 수 없어야 하는 사용자에게.

이를 방지하기 위해 모든 내장 선택성 추정 기능에 다음이 적용됩니다. 쿼리를 계획할 때 저장된 통계를 사용하려면 현재 사용자는 다음 중 하나를 수행해야 합니다.선택테이블이나 관련 열에 대한 권한 또는 사용된 연산자는 다음과 같아야 합니다.누설 방지(보다 정확하게는 연산자의 기반이 되는 함수)입니다. 그렇지 않은 경우 선택성 추정기는 사용 가능한 통계가 없는 것처럼 작동하고 플래너는 기본 또는 대체 가정을 진행합니다.

사용자에게 테이블이나 열에 필요한 권한이 없으면 대부분의 경우 쿼리는 궁극적으로 권한 거부 오류를 수신하게 되며 이 경우 이 메커니즘은 실제로 보이지 않습니다. 그러나 사용자가 보안 장벽 보기에서 읽는 경우 계획자는 사용자가 액세스할 수 없는 기본 테이블의 스포츠 토토 베트맨를 확인하려고 할 수 있습니다. 이 경우 운영자는 누출 방지 처리를 해야 하며 그렇지 않으면 스포츠 토토 베트맨가 사용되지 않습니다. 계획이 최적이 아닐 수 있다는 점을 제외하면 이에 대한 직접적인 피드백은 없습니다. 이것이 사실이라고 의심되는 경우 더 많은 권한을 가진 사용자로 쿼리를 실행하여 다른 계획이 결과인지 확인할 수 있습니다.

이 제한은 계획자가 하나 이상의 값에 대해 사용자 정의 연산자를 실행해야 하는 경우에만 적용됩니다.pg_statistic. 따라서 플래너는 액세스 권한에 관계없이 null 값의 비율이나 열의 고유 값 수와 같은 일반적인 통계 정보를 사용하는 것이 허용됩니다.

사용자 정의 연산자를 사용하여 통계에 잠재적으로 작동하는 타사 확장에 포함된 선택성 추정 함수는 동일한 보안 규칙을 따라야 합니다. 지침은 PostgreSQL 소스 코드를 참조하세요.

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.