데이터 행 수준에서 액세스 제한
Tableau Server 또는 Tableau Cloud에 통합 문서를 게시하여 다른 사용자와 통합 문서를 공유하는 경우 기본적으로 통합 문서에 액세스할 수 있는 모든 사용자가 뷰에 표시된 모든 데이터를 볼 수 있습니다. 서버에 로그인한 지정된 사용자가 뷰에서 볼 수 있는 데이터 "행"을 지정할 수 있는 필터 유형을 적용하여 이 동작을 재정의할 수 있습니다.
행 수준에서 데이터를 보호하기 위한 이 접근 방식은 라이브 연결이 있는 데이터 원본과 테이블이 다중 테이블로 저장되는 추출 데이터 원본에 적용됩니다. 다중 테이블을 사용한 추출 데이터 저장에 대한 자세한 내용은 데이터 추출을 참조하십시오.
참고: Tableau에서 행 수준 보안을 구현할 때 사용할 수 있는 대체 옵션에 대한 자세한 내용은 Tableau Server 도움말에서 Tableau의 행 수준 보안 옵션에 대한 개요(링크가 새 창에서 열림)를 참조하십시오.
추가 관련 정보는 자격 증명 테이블을 사용한 행 수준 보안에 대한 최상의 방법(영문)(링크가 새 창에서 열림)을 참조하십시오.
사용자 기반 필터링 작동 방식
지난 몇 년간의 제품 집합에 대한 여러 지역의 분기별 매출 보고서를 만들었다고 가정합니다.
이 보고서를 게시할 때 각 지역 관리자가 본인의 지역과 관련된 데이터만 볼 수 있도록 하고 싶습니다. 이 경우 각 관리자에 대해 별도의 뷰를 만드는 대신 사용자의 역할과 같은 사용자의 특성을 기반으로 데이터에 대한 액세스를 제한하는 사용자 필터를 적용할 수 있습니다.
이 방식으로 데이터에 대한 액세스를 제한하는 것을 행 수준 보안(RLS)이라고 합니다. Tableau는 다음과 같은 행 수준 보안 방식을 제공합니다.
이 방법은 간편하지만 유지 관리 부담이 크고 보안이 취약합니다. 또한 통합 문서별로 수행해야 하므로 사용자 기반이 변경되면 필터를 업데이트하고 데이터 원본을 다시 게시해야 합니다.
이 방법을 사용하여 사용자를 데이터 값에 매핑하는 프로세스를 자동화하는 계산된 필드를 만듭니다. 이 방법을 사용하려면 기초 데이터에 필터링에 사용할 보안 정보가 포함되어 있어야 합니다.
이렇게 하는 가장 일반적인 방법은 이 정보가 포함된 참조(“look-up”, "entitlements" 또는 "security") 테이블을 사용하는 것입니다. 예를 들어 감독관만 볼 수 있도록 뷰를 필터링하려면 기초 데이터에 사용자 이름이 포함되도록 설정하고 각 사용자의 역할을 지정해야 합니다.
필터링은 데이터 수준에서 정의되고 계산된 필드에 의해 자동화되므로 이 방법이 수동으로 사용자를 데이터 값에 매핑하는 것보다 훨씬 안전합니다.
데이터 원본에 사용자 필터 추가
이전 섹션의 두 가지 방법에서는 통합 문서에 내장된 데이터에 필터를 추가하는 방법에 대해 설명합니다. 여러 통합 문서가 동일한 데이터에 연결한다면 각 통합 문서에서 필터를 만드는 대신 데이터 원본을 필터링하고 게시한 통합 문서를 해당 데이터 원본에 연결할 수 있습니다.
필터링된 데이터 원본에 연결하는 통합 문서는 서버에 로그인한 사용자가 볼 수 있도록 허용된 데이터만 표시합니다. 또한 모든 연결된 통합 문서는 새로 고쳐진 데이터를 표시합니다.
추출 및 사용자 필터가 포함된 라이브 연결
일반적으로 위에 설명된 방법 중 하나를 사용할 경우 추출을 포함하는 RLS는 라이브 연결을 사용하는 데이터 원본을 포함하는 RLS보다 빠르게 만들 수 있으며 더 나은 성능을 제공합니다.
앞서 언급했듯이 추출을 포함하는 RLS를 사용하기 위한 첫 번째 요구 사항은 다중 물리적 테이블을 사용하여 추출의 데이터를 저장해야 한다는 것입니다. 데이터 추출의 단계에 따라 다중 물리적 테이블을 사용하여 데이터를 저장하도록 추출을 구성할 수 있습니다.
위의 요구 사항 외에도 추출을 포함하는 RLS를 사용하려는 경우 몇 가지 추가 고려 사항이 있습니다. 다중 테이블을 사용하여 저장된 추출 데이터는 추출 필터 및 추출의 데이터 양을 줄일 수 있는 몇 가지 다른 기능을 지원하지 않으므로 다음 제안 사항 중 하나를 사용하는 것이 좋습니다.
사용자 지정 SQL을 사용하여 데이터에 연결
적절한 수준의 필터링이 이미 있는 데이터베이스 뷰에 연결
이러한 제안 사항에 대한 자세한 내용은 데이터 추출을 참조하십시오.
추출 데이터 원본을 포함하는 RLS에 대한 권장 사례
추출을 포함하는 RLS를 효과적으로 수행하려면 추출의 테이블(또는 데이터베이스 뷰나 사용자 지정 SQL 쿼리)의 수를 두 개로 유지하는 것이 좋습니다. 즉, 추출의 테이블을 다음과 같은 유형의 테이블로 구성하는 것이 좋습니다.
데이터 테이블 — 표시하려는 모든 데이터를 포함하는 "개체" 테이블입니다.
참조 테이블 — 사용자 정보 및 사용자가 속한 보안 그룹을 포함하는 "조회" 또는 "자격" 테이블입니다.
추출의 테이블을 이러한 두 테이블로 최소화하면 Tableau가 수행해야 하는 유일한 조인이 이 두 테이블 사이에서 실행되므로 데이터 중복 또는 "조인 폭발"을 방지할 수 있습니다.
RLS 및 이전 버전의 Tableau 정보
이전에는 Tableau가 행 중복 및 성능과 관련된 문제 때문에 추출을 포함하는 RLS 워크플로우를 지원할 수 없었습니다. 궁극적으로 이러한 문제는 데이터를 단일 테이블로만 저장하고 쿼리할 수 있는 추출에서 파생되었습니다. 하지만 Tableau 2018.3부터는 다중 테이블을 사용하여 추출의 데이터를 저장하도록 선택할 수 있으므로 이전에 라이브 연결을 포함하는 데이터 원본을 사용하여 수행한 것처럼 추출을 포함하는 RLS에 대한 워크플로우를 사용하도록 설정할 수 있습니다.
Tableau의 추출을 포함하는 RLS에 대한 포괄적인 설명은 이 분야에 대한 풍부한 경험을 가진 Tableau 영업 컨설턴트가 관리하는 블로그를 참조하십시오.
Multiple Table (Normalized) Hyper Extracts(다중 테이블 (정규화된) Hyper 추출)(링크가 새 창에서 열림)
Defusing Row Level Security…Part 1(행 수준 보안 완화…1부)(링크가 새 창에서 열림)
Defusing Row Level Security…Part 2(행 수준 보안 완화…2부)(링크가 새 창에서 열림)
고지 사항: 이러한 링크를 클릭하면 Tableau.com 외부로 이동합니다. Tableau는 외부 웹 사이트 링크의 정확성 및 관련성이 유지되도록 항상 최선을 다하지만 외부 콘텐츠에 대해 책임을 지지 않으며 지원 서비스를 제공하지 않습니다.
참고 항목
Tableau Server 도움말의 데이터 보안(링크가 새 창에서 열림)
Tableau Server 도움말의 Tableau의 행 수준 보안 옵션에 대한 개요(링크가 새 창에서 열림)