쿼리 ACL
쿼리 ACL을 사용하면 데이터를 쿼리할 수 있는 사용자를 명시적으로 정의하여 보다 세분화된 액세스 제어를 정의할 수 있습니다.
쿼리 ACL이란?
쿼리 ACL 의 작업은 query_range 또는 query_match로 설정되어 있습니다. 쿼리 ACL을 사용하면 사용자 쿼리를 보다 구체적으로 제어하여 설정에 따라 액세스를 제한하거나 활성화할 수 있습니다. 쿼리 ACL은 공격자가 값을 볼 수 없는 경우에도 데이터를 맹목적으로 쿼리하여 결과에서 정보를 추출하는 블라인드 쿼리 공격에 대한 강력한 도구입니다.
쿼리 ACL을 사용하는 경우
열에 중요한 값이 포함되어 있고 데이터에 대한 부분/조건부 액세스를 허용하는 경우 데이터의 민감도에 따라 필요에 따라 쿼리 ACL을 고려하고 구현해야 합니다. 테이블의 행과 해당 열에 대한 부분/조건부 액세스가 있는 경우, 특히 데이터 필터에 의해 액세스가 적용되지 않는 경우 데이터의 민감도에 따라 필요에 따라 쿼리 ACL을 구현해야 합니다.
급여 쿼리 통제
급여 테이블에서 내 급여와 함께 한 행을 볼 수 있지만 급여가 2 개 경계 내에 포함 된 사용자를 쿼리하기 위해 범위 쿼리를 실행할 이유가 없습니다. 급여에 대한query_range ACL로 인해 해당 쿼리를 실행할 수 없습니다.HR 쿼리 통제
모든 hr_profiles 볼 수 있지만 SSN은 나 자신만 볼 수 있습니다. 저는 SSN을 쿼리할 일이 없으며, 쿼리 ACL로 인해 SSN 매핑을 추출하기 위해 다른 HR 프로필의 SSN에 대해 쿼리를 실행할 수 없습니다.
쿼리 ACL 동작
query_match 및 query_range 작업을 사용합니다. 그들의 행동은 아래에 설명되어 있습니다.query_match-
query_match는 EQUALS, NOT_EQUALS, IN, NOT_IN, SAMEAS, NSAMEAS, ANYTHING, ISEMPTYSTRING, ISEMPTY, ISNOTEMPTY, ISNULL, ISNOTNULL로 구성됩니다.query_match는 특정 레코드를 가져오기 위해 구축되었으며 다른 레코드를 반환하는 데 악용될 수 없다는 의미에서 "안전한 연산자"로 구성됩니다.평가 결과 결과 성공 사용자가 일치 쿼리를 제출할 수 있습니다. 실패 사용자는 다음 일치 쿼리를 제출할 수 없습니다. - 같음
- NOT_EQUALS
- IN
- NOT_IN
- 사메아스
- 은사미아스
- 아무것도
- 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이 정의된 경우 기본 동작이 재정의됩니다.