쿼리 ACL

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 2분
  • 쿼리 ACL을 사용하면 데이터를 쿼리할 수 있는 사용자를 명시적으로 정의하여 보다 세부적인 접근 제어를 정의할 수 있습니다.

    쿼리 ACL이란?

    쿼리 ACL 의 운영은 query_range 또는 query_match로 설정되어 있습니다. 쿼리 ACL을 사용하면 사용자 설정에 따라 액세스를 제한하거나 활성화하여 사용자 쿼리를 보다 구체적으로 제어할 수 있습니다. 쿼리 ACL은 공격자가 값을 볼 수 없는 경우에도 결과에서 정보를 추출하기 위해 맹목적으로 데이터를 쿼리하는 블라인드 쿼리 공격 에 대한 강력한 도구입니다.

    쿼리 ACL 사용 시기

    열에 중요한 값이 포함되어 있고 데이터에 대한 부분/조건부 액세스를 허용하는 경우 데이터의 민감도에 따라 필요에 따라 쿼리 ACL을 고려하고 구현해야 합니다. 테이블의 행과 해당 열에 대한 부분적/조건부 액세스가 있는 경우, 특히 데이터 필터에 의해 해당 액세스가 적용되지 않는 경우 쿼리 ACL은 데이터의 민감도에 따라 필요에 따라 구현되어야 합니다.

    주:
    일부 사용자는 일부 행 또는 열에만 액세스할 수 있고 다른 사용자에게는 액세스할 수 없는 경우 쿼리 ACL을 고려하십시오.

    급여 쿼리 통제

    급여 테이블에서 내 급여가 있는 한 행을 볼 수 있지만 급여가 2개의 경계 내에 포함되어 있는 사용자를 쿼리하기 위해 범위 쿼리를 실행할 수 있는 이유가 없습니다. 급여에 대한 query_range ACL은 해당 쿼리를 실행할 수 없게 합니다.

    HR 쿼리 제어

    모든 hr_profiles 볼 수 있지만 SSN만 직접 볼 수 있습니다. SSN을 쿼리하는 업무가 없으며 쿼리 ACL은 다른 HR 프로필의 SSN에 대한 쿼리를 실행하여 SSN 매핑을 추출하지 못하도록 해야 합니다.

    쿼리 ACL 동작

    쿼리 ACL은 안전하고 세분화된 테이블 쿼리 동작을 위해 query_matchquery_range 작업을 사용합니다. 이들의 행동은 다음과 같습니다.
    query_match

    query_match 는 EQUALS, NOT_EQUALS, IN, NOT_IN, SAMEAS, NSAMEAS, ANYTHING, ISEMPTYSTRING, ISEMPTY, ISNOTEMPTY, ISNULL, ISNOTNULL로 구성됩니다. query_match 는 특정 기록을 가져오도록 구축되었으며 다른 기록을 반환하는 데 악용될 수 없다는 의미에서 "안전한 연산자"로 구성됩니다.

    평가 결과 결과
    성공 사용자는 일치 쿼리를 제출할 수 있습니다.
    실패 사용자는 일치 쿼리를 제출할 수 없습니다.
    • 같음
    • NOT_EQUALS
    • 안에
    • NOT_IN
    • 동일
    • NSAME와
    • 모든 대상
    • ISEMPTYSTRING
    • 비어 있음
    • ISNOTEMPTY
    • ISNULL
    • ISNOTNULL입니다.
    query_range

    query_range 는 다른 모든 항목(STARTS_WITH, CONTAINS, >=, <= 등)으로 구성되며, 사용자가 경계 값을 조정하여 더 많은 기록을 쿼리할 수 있으므로 더 위험합니다.

    평가 결과 결과
    성공 사용자는 범위 쿼리를 제출할 수 있으며 정렬은 제한 없음
    실패 사용자는 (STARTS_WITH, CONTAINS, >=, <= 등을 사용하여 범위 쿼리를 제출할 수 없습니다. 열별 정렬이 제한됩니다.
    중요사항:

    쿼리 ACL(query_match 및 query_range 모두)은 기본적으로 읽기 액세스를 위임하는 star.star ACL로 설정됩니다. 즉, ACL이 쿼리에 적용되는 경우 쿼리 ACL이 작성되지 않은 경우 열에 대한 읽기 권한이 평가됩니다. 쿼리 ACL이 정의되면 기본 동작이 재정의됩니다.