구성된 테이블 허용되지 않는 열 - AWS Clean Rooms

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

구성된 테이블 허용되지 않는 열

허용되지 않는 출력 열 구성은 사용자 AWS Clean Rooms 지정 분석 규칙의 제어로, 쿼리 결과에 투영되도록 허용하지 않는 열 목록(있는 경우)을 정의할 수 있습니다. 이 목록에 참조된 열은 “허용되지 않는 출력 열”로 간주됩니다. 즉, 변환, 별칭 지정 또는 기타 수단을 통한 이러한 열에 대한 참조가 쿼리의 최종SELECT(투영)에 존재하지 않을 수 있습니다.

이 기능은 출력에서 열이 직접 투영되는 것을 금지하지만 기본 값이 다른 메커니즘을 통해 간접적으로 추론되는 것을 완전히 방지하지는 않습니다. 이러한 열은 최종 프로젝션에서 참조되지 않는 한 프로젝션 절(예: 하위 쿼리 또는 공통 테이블 표현식(CTE))에서 계속 사용할 수 있습니다.

허용되지 않는 출력 열 구성은 사용 사례 및 해당 개인 정보 보호 요구 사항에 따른 분석 템플릿 수준 검토와 함께 테이블에 제어를 적용하고 코드화할 수 있는 유연성을 제공합니다.

이 구성을 설정하는 방법에 대한 자세한 내용은 섹션을 참조하세요테이블에 사용자 지정 분석 규칙 추가 (안내식 흐름).

예제

다음 예제에서는 허용되지 않는 출력 열 제어가 적용되는 방법을 보여줍니다.

  • 멤버 A는 멤버 B와 공동 작업 중입니다.

  • 멤버 B는 쿼리를 실행할 수 있는 멤버입니다.

  • 멤버 A는 연령, 성별, 이메일이름 열이 있는 테이블 사용자를 정의합니다. 열의 수명이름은 허용되지 않는 출력 열입니다.

  • 멤버 B는 연령, 성별owner_name 열 집합이 유사한 테이블 반려동물을 정의합니다. 그러나 출력 열에는 제약 조건을 설정하지 않으므로 테이블의 모든 열을 쿼리에 자유롭게 투영할 수 있습니다.

멤버 B가 다음 쿼리를 실행하면 허용되지 않는 출력 열을 직접 투영할 수 없으므로 차단됩니다.

SELECT age FROM users

멤버 B가 다음 쿼리를 실행하면 허용되지 않는 출력 열이 프로젝트 스타를 통해 암시적으로 투영될 수 없으므로 차단됩니다.

SELECT * FROM users

멤버 B가 다음 쿼리를 실행하는 경우 허용되지 않는 출력 열의 변환을 프로젝션할 수 없으므로 차단됩니다.

SELECT COUNT(age) FROM users

멤버 B가 다음 쿼리를 실행하는 경우 허용되지 않는 출력 열을 별칭을 사용하여 최종 프로젝션에서 참조할 수 없으므로 차단됩니다.

SELECT count_age FROM (SELECT COUNT(age) AS count_age FROM users)

멤버 B가 다음 쿼리를 실행하면 변환된 제한 열이 출력에 투영되므로 차단됩니다.

SELECT CONCAT(name, email) FROM users

멤버 B가 다음 쿼리를 실행하는 경우 에 정의된 허용되지 않는 출력 열을 최종 프로젝션에서 참조CTE할 수 없으므로 차단됩니다.

WITH cte AS ( SELECT age AS age_alias FROM users ) SELECT age_alias FROM cte

멤버 B가 다음 쿼리를 실행하는 경우 허용되지 않는 출력 열을 최종 프로젝션에서 정렬 또는 파티션 키로 사용할 수 없으므로 차단됩니다.

SELECT LISTAGG(gender) WITHIN GROUP (ORDER BY age) OVER (PARTITION BY age) FROM users

멤버 B가 다음 쿼리를 실행하는 경우 허용되지 않는 출력 열의 일부인 열은 조인 또는 필터 절과 같은 쿼리의 다른 구성에서 계속 사용할 수 있으므로 성공합니다.

SELECT u.name, p.gender, p.age FROM users AS u JOIN pets AS p ON u.name = p.owner_name

동일한 시나리오에서 멤버 B는 사용자의 이름 열을 필터 또는 정렬 키로 사용할 수도 있습니다.

SELECT u.email, u.gender FROM users AS u WHERE u.name = 'Mike' ORDER BY u.name

또한 사용자의 허용되지 않는 출력 열은 다음과 같은 하위 쿼리 및 CTEs와 같은 중간 프로젝션에 사용할 수 있습니다.

WTIH cte AS ( SELECT u.gender, u.id, u.first_name FROM users AS u ) SELECT first_name FROM (SELECT cte.gender, cte.id, cte.first_name FROM cte)