데이터 행 수준에서 액세스 제한

Tableau Server 또는 Tableau Cloud에 통합 문서를 게시하여 다른 사용자와 통합 문서를 공유하는 경우 기본적으로 통합 문서에 액세스할 수 있는 모든 사용자가 뷰에 표시된 모든 데이터를 볼 수 있습니다. 서버에 로그인한 지정된 사용자가 뷰에서 볼 수 있는 데이터 "행"을 지정할 수 있는 필터 유형을 적용하여 이 동작을 재정의할 수 있습니다.

행 수준에서 데이터를 보호하기 위한 이 접근 방식은 라이브 연결이 있는 데이터 원본과 테이블이 다중 테이블로 저장되는 추출 데이터 원본에 적용됩니다. 다중 테이블을 사용한 추출 데이터 저장에 대한 자세한 내용은 추출 데이터를 저장하는 방법 결정을 참조하십시오.

참고: Tableau에서 행 수준 보안을 구현할 때 사용할 수 있는 대체 옵션에 대한 자세한 내용은 Tableau Server 도움말에서 Tableau의 행 수준 보안 옵션에 대한 개요(링크가 새 창에서 열림)를 참조하십시오.

추가 관련 정보는 자격 증명 테이블을 사용한 행 수준 보안에 대한 최상의 방법(영문)(링크가 새 창에서 열림)을 참조하십시오.

사용자 기반 필터링 작동 방식

지난 몇 년간의 제품 집합에 대한 여러 지역의 분기별 매출 보고서를 만들었다고 가정합니다.

이 보고서를 게시할 때 각 지역 관리자가 본인의 지역과 관련된 데이터만 볼 수 있도록 하고 싶습니다. 이 경우 각 관리자에 대해 별도의 뷰를 만드는 대신 사용자의 역할과 같은 사용자의 특성을 기반으로 데이터에 대한 액세스를 제한하는 사용자 필터를 적용할 수 있습니다.

이 방식으로 데이터에 대한 액세스를 제한하는 것을 행 수준 보안(RLS)이라고 합니다. Tableau는 다음과 같은 행 수준 보안 방식을 제공합니다.

  • 사용자 필터를 만들고 수동으로 사용자를 값에 매핑.

    이 방법은 간편하지만 유지 관리 부담이 크고 보안이 취약합니다. 또한 통합 문서별로 수행해야 하므로 사용자 기반이 변경되면 필터를 업데이트하고 데이터 원본을 다시 게시해야 합니다.

  • 데이터의 보안 필드를 사용하여 동적 필터 만들기.

    이 방법을 사용하여 사용자를 데이터 값에 매핑하는 프로세스를 자동화하는 계산된 필드를 만듭니다. 이 방법을 사용하려면 기초 데이터에 필터링에 사용할 보안 정보가 포함되어 있어야 합니다.

    이렇게 하는 가장 일반적인 방법은 이 정보가 포함된 참조(“look-up”, "entitlements" 또는 "security") 테이블을 사용하는 것입니다. 예를 들어 감독관만 볼 수 있도록 뷰를 필터링하려면 기초 데이터에 사용자 이름이 포함되도록 설정하고 각 사용자의 역할을 지정해야 합니다.

    필터링은 데이터 수준에서 정의되고 계산된 필드에 의해 자동화되므로 이 방법이 수동으로 사용자를 데이터 값에 매핑하는 것보다 훨씬 안전합니다.

데이터 원본에 사용자 필터 추가

이전 섹션의 두 가지 방법에서는 통합 문서에 내장된 데이터에 필터를 추가하는 방법에 대해 설명합니다. 여러 통합 문서가 동일한 데이터에 연결한다면 각 통합 문서에서 필터를 만드는 대신 데이터 원본을 필터링하고 게시한 통합 문서를 해당 데이터 원본에 연결할 수 있습니다.

필터링된 데이터 원본에 연결하는 통합 문서는 서버에 로그인한 사용자가 볼 수 있도록 허용된 데이터만 표시합니다. 또한 모든 연결된 통합 문서는 새로 고쳐진 데이터를 표시합니다.

추출 및 사용자 필터가 포함된 라이브 연결

일반적으로 위에 설명된 방법 중 하나를 사용할 경우 추출을 포함하는 RLS는 라이브 연결을 사용하는 데이터 원본을 포함하는 RLS보다 빠르게 만들 수 있으며 더 나은 성능을 제공합니다.

추출 데이터 원본을 포함하는 RLS에 대한 요구 사항

앞서 언급했듯이 추출을 포함하는 RLS를 사용하기 위한 첫 번째 요구 사항은 다중 물리적 테이블을 사용하여 추출의 데이터를 저장해야 한다는 것입니다. 추출 데이터를 저장하는 방법 결정의 단계에 따라 다중 물리적 테이블을 사용하여 데이터를 저장하도록 추출을 구성할 수 있습니다.

위의 요구 사항 외에도 추출을 포함하는 RLS를 사용하려는 경우 몇 가지 추가 고려 사항이 있습니다. 다중 테이블을 사용하여 저장된 추출 데이터는 추출 필터 및 추출의 데이터 양을 줄일 수 있는 몇 가지 다른 기능을 지원하지 않으므로 다음 제안 사항 중 하나를 사용하는 것이 좋습니다.

  • 사용자 지정 SQL을 사용하여 데이터에 연결

  • 적절한 수준의 필터링이 이미 있는 데이터베이스 뷰에 연결

이러한 제안 사항에 대한 자세한 내용은 물리적 테이블 옵션 사용 시 대체 필터링 제안 사항을 참조하십시오.

추출 데이터 원본을 포함하는 RLS에 대한 권장 사례

추출을 포함하는 RLS를 효과적으로 수행하려면 추출의 테이블(또는 데이터베이스 뷰나 사용자 지정 SQL 쿼리)의 수를 두 개로 유지하는 것이 좋습니다. 즉, 추출의 테이블을 다음과 같은 유형의 테이블로 구성하는 것이 좋습니다.

  • 데이터 테이블 — 표시하려는 모든 데이터를 포함하는 "개체" 테이블입니다.

  • 참조 테이블 — 사용자 정보 및 사용자가 속한 보안 그룹을 포함하는 "조회" 또는 "자격" 테이블입니다.

추출의 테이블을 이러한 두 테이블로 최소화하면 Tableau가 수행해야 하는 유일한 조인이 이 두 테이블 사이에서 실행되므로 데이터 중복 또는 "조인 폭발"을 방지할 수 있습니다.

RLS 및 이전 버전의 Tableau 정보

이전에는 Tableau가 행 중복 및 성능과 관련된 문제 때문에 추출을 포함하는 RLS 워크플로우를 지원할 수 없었습니다. 궁극적으로 이러한 문제는 데이터를 단일 테이블로만 저장하고 쿼리할 수 있는 추출에서 파생되었습니다. 하지만 Tableau 2018.3부터는 다중 테이블을 사용하여 추출의 데이터를 저장하도록 선택할 수 있으므로 이전에 라이브 연결을 포함하는 데이터 원본을 사용하여 수행한 것처럼 추출을 포함하는 RLS에 대한 워크플로우를 사용하도록 설정할 수 있습니다.

Tableau의 추출을 포함하는 RLS에 대한 포괄적인 설명은 이 분야에 대한 풍부한 경험을 가진 Tableau 영업 컨설턴트가 관리하는 블로그를 참조하십시오.

고지 사항: 이러한 링크를 클릭하면 Tableau.com 외부로 이동합니다. Tableau는 외부 웹 사이트 링크의 정확성 및 관련성이 유지되도록 항상 최선을 다하지만 외부 콘텐츠에 대해 책임을 지지 않으며 지원 서비스를 제공하지 않습니다.

참고 항목

피드백을 제공해 주셔서 감사합니다!