행 수준 보안에 대한 데이터 정책 만들기
데이터 정책을 사용하여 가상 연결에 있는 하나 이상의 테이블에 행 수준 보안을 적용합니다. 데이터 정책은 데이터를 필터링하여 사용자에게 볼 권한이 있는 데이터만 표시합니다. 데이터 정책은 라이브 연결과 추출 연결에 모두 적용됩니다.
데이터 정책 정보
데이터 정책에는 세 가지 주요 구성 요소가 있습니다.
- 정책이 적용되는 테이블이며 정책 테이블이라고 합니다. 이러한 테이블은 필터링되는 테이블입니다.
- 테이블 간의 관계(예: 자격 테이블과 팩트 테이블 간의 관계) 및 테이블 열과 정책 열 간의 관계를 정의하는 매핑된 열입니다. 정책 열은 데이터 필터링에 사용되는 열입니다.
- 정책 조건이며, 이는 쿼리 시간에 모든 행에 대해 평가되는 식 또는 계산입니다. 정책 조건이 TRUE인 경우 해당 행이 쿼리에 표시됩니다.
데이터 정책을 만들 때는 데이터 필터링에 사용할 수 있는 열이 필요합니다. 이 열을 정책 열이라고 합니다. 데이터는 정책 조건으로 필터링되며 일반적으로 USERNAME() 또는 FULLNAME()과 같은 사용자 함수가 사용됩니다.
정책 테이블에 필터링할 수 있는 열이 포함되는 경우 해당 열을 정책 열로 사용합니다.
정책 테이블에 이러한 열이 포함되지 않는 경우 데이터 필터링에 사용할 수 있는 열과 함께 자격 테이블을 사용합니다. 자격 테이블은 정책 테이블 필터링에 사용할 수 있는 정책 열과 정책 테이블의 열에 연관(매핑)할 수 있는 다른 열이 모두 포함된 테이블입니다(위의 데이터 정책 예제 이미지 참조).
정책 테이블의 정책 열을 사용하여 필터링
데이터를 필터링하는 가장 일반적인 방법은 필터링하려는 데이터가 있는 테이블의 열을 사용하는 것입니다. 이 열을 정책 열로 사용한 다음 해당하는 테이블 열을 정책 열에 매핑합니다.
정책 열을 사용하여 데이터를 필터링하려면 왼쪽 패널의 정책에 테이블을 추가합니다. 테이블을 추가하려면 다음 작업 중 하나를 수행합니다.
- 테이블 이름을 두 번 클릭합니다.
- 테이블 이름 근처의 드롭다운 화살표를 클릭하고 정책으로 테이블 관리를 선택합니다.
- 또는 테이블을 오른쪽으로 끌어와 정책 테이블로 추가에 놓습니다.
테이블이 정책에 추가되면 왼쪽 패널의 테이블 이름 오른쪽에 정책 테이블임을 나타내는 방패 아이콘 이 나타납니다.
다음으로, 열을 매핑하여 테이블의 열 이름과 정책 열 이름 간의 관계를 만듭니다. 데이터 정책 조건에서 정책 열 이름을 사용하여 사용자의 행 수준 데이터 액세스를 제어할 수 있습니다.
- +맵에 열 추가를 클릭하여 데이터 필터링에 사용할 하나 이상의 열을 추가합니다.
- 정책 열의 이름을 지정합니다. 이 이름은 정책 조건에 사용됩니다.
- 정책이 적용되는 각 테이블에 대해 드롭다운 메뉴를 사용하여 정책 열에 매핑되는 테이블 열을 선택합니다.
- 정책 조건에 사용할 정책 열의 수만큼 이 프로세스를 반복합니다.
팁: +맵에 열 추가 단추를 사용하는 대신 정책 조건 영역에 계산을 입력하기 시작하고 자동 완성을 통해 입력되는 1단계의 정책 열 정보를 사용하여 열 이름을 선택할 수 있습니다.
정책 테이블의 정책 열 사용 예
- Sales 테이블에 [Salesperson] 열이 있고 Region 테이블에 [SalesRep] 열이 있습니다. Salesperson과 SalesRep 데이터는 사이트에 있는 Tableau 사용자의 전체 이름과 일치합니다.
- Sales 및 Region 데이터를 Salesperson으로 필터링하기 위해 정책 열에 “Salesperson”이라는 이름을 지정하고 Sales 및 SalesRep 열의 Salesperson 열을 Region에서 Salesperson 정책 열로 매핑합니다.
- 그런 다음 두 테이블을 필터링하는 정책 조건을 작성합니다. [Salesperson] 정책 열과 FULLNAME() 사용자 함수를 사용하여 각 사용자가 본인의 데이터만 볼 수 있도록 합니다.
자격 테이블의 정책 열을 사용하여 필터링
자격 테이블은 정책 테이블에 필터링에 사용할 수 있는 열이 없는 경우 사용됩니다. 자격 테이블을 사용하여 데이터 테이블의 열을 자격 테이블의 열에 매핑합니다. 다음에 유의하십시오.
- 자격 테이블을 가상 연결의 테이블로 포함해야 합니다. 모든 연결 또는 데이터베이스의 테이블을 다른 많은 데이터베이스에 있는 테이블을 보호하는 중앙 자격 테이블로 사용할 수 있습니다. 일부 경우 보호하는 테이블과 동일한 데이터베이스에 있는 자격 테이블은 잠재적 보안 위험이 될 수 있습니다. 직원 데이터를 노출할 가능성이 있기 때문입니다. 자격 테이블이 다른 데이터베이스에 있으면 예를 들어 다른 사용자에게 데이터베이스에 대한 액세스 권한을 부여할 때 사용 권한을 제어하기가 더 쉽습니다.
- 가상 연결 사용자에게 자격 테이블을 표시하지 않으려면 테이블 탭에서 표시 유형 열의 설정을 전환하여 숨길 수 있습니다. 숨겨진 자격 테이블은 정책 필터링에 계속 사용할 수 있지만 비주얼리제이션 또는 통합 문서 데이터 원본에서 사용할 수 없습니다.
참고: 자격 테이블의 경우 흐름 출력(.hyper 파일)에 직접 연결하는 것은 지원되지 않습니다. 흐름 출력을 데이터베이스에 직접 써야 합니다.
자격 테이블을 사용하여 데이터를 필터링하려면:
- 데이터 정책을 적용할 데이터 테이블을 추가합니다. 다음 작업 중 하나를 수행합니다.
- 테이블 이름을 두 번 클릭합니다.
- 테이블 이름 근처의 드롭다운 화살표를 클릭하고 정책으로 테이블 관리를 선택합니다.
- 또는 테이블을 오른쪽으로 끌어와 정책 테이블로 추가에 놓습니다.
- 테이블이 정책에 추가되면 왼쪽 패널의 테이블 이름 오른쪽에 정책 테이블임을 나타내는 방패 아이콘 이 나타납니다.
- 자격 테이블을 선택한 후 다음 중 하나를 수행합니다.
- 드롭다운 화살표를 클릭하고 자격 테이블로 사용을 선택합니다.
- 또는 테이블을 오른쪽으로 끌어와 자격으로 추가 테이블에 놓습니다.
- 정책이 적용되는 각 테이블에 대해 드롭다운 메뉴를 클릭하고 열을 선택하여 정책 테이블을 자격 테이블에 매핑합니다.
자격 테이블의 정책 열 사용 예
- 필터링하려는 데이터에는 EMP_ID 열이 있지만 직원 이름 열은 없습니다. 그러나 EMP_ID와 직원의 FULL NAME에 대한 열이 포함된 두 번째 테이블이 있습니다. 직원 FULL NAME 열의 값은 사이트에 있는 Tableau 사용자의 전체 이름과 일치합니다.
- Employees 테이블을 자격 테이블로 정책에 추가한 다음 정책 테이블 열 이름 EMP_ID를 각 테이블의 자격 열 이름 EMP_ID에 매핑할 수 있습니다.
- 그런 다음 정책 조건에서 FULLNAME() 함수를 사용하여 Tableau Server 사용자의 전체 이름을 자격 테이블의 [FULL NAME] 열(정책 열)과 일치함으로써 각 사용자에게 본인의 데이터만 표시할 수 있습니다.
정책 조건 작성
데이터 정책을 만들 때의 마지막 단계는 정책 조건을 작성하는 것입니다. 정책 조건은 행 수준 액세스를 정의하는 데 사용되는 계산 또는 식입니다. 정책 조건은 종종 사용자 함수를 통해 사용자 또는 그룹에 대한 액세스를 제한하는 데 사용됩니다.
정책 조건을 정의합니다.
- 데이터 정책에 필요한지 여부
- 참 또는 거짓으로 평가해야 하는지 여부
- 정책 조건이 참일 때 행을 표시할지 여부
정책 탭을 닫아도 작업이 취소되지 않습니다.
정책 조건 예제
Region 열 값이 North인 행만 표시합니다.
[Region] = "North"
로그인한 사용자는 사용자 이름이 EmployeeName의 값과 일치하는 행을 볼 수 있습니다.
FULLNAME() = [EmployeeName]
관리자 그룹의 멤버는 모든 행을 볼 수 있지만 사용자는 사용자 이름이 employee_name 열의 값과 일치하는 행만 볼 수 있습니다.
ISMEMBEROF('Managers') OR USERNAME() = [employee_name]
정책 조건에서 지원되는 Tableau 함수
정책 조건은 일부 Tableau 함수를 지원합니다.
- 논리적(null 관련 제외)
- 문자열
- 사용자
- 날짜
- 숫자: MIN, MID, MAX
지원되는 함수를 보려면 가상 연결 에디터의 데이터 정책 탭에서 오른쪽의 참조 패널을 참조하십시오.
참고: 가상 연결에 사용자 함수(링크가 새 창에서 열림)(예: USERNAME()
)가 포함된 데이터 정책이 있고 통합 문서 또는 데이터 원본에서 연결하여 추출을 만드는 경우 추출이 만들어질 시점에 가상 연결 데이터 정책과 일치하는 행만 추출에 포함됩니다. 데이터 정책에서 사용자 함수가 있는 가상 연결을 활용하려면 통합 문서 또는 데이터 원본에서 추출 대신 가상 연결에 대한 라이브 연결을 사용하십시오.
이 작업을 수행할 수 있는 사용자
데이터 정책을 만들려면 다음 조건을 충족해야 합니다.
- 가상 연결이 연결하는 데이터베이스에 대한 자격 증명이 있어야 함
- 서버 또는 사이트 관리자이거나 Creator여야 함
다음 단계
데이터 정책을 만든 후 다음 단계는 예상대로 작동하는지 확인하는 것입니다. 사용자로 미리 보기를 통해 행 수준 보안 테스트를 참조하십시오. 또는 가상 연결 및 데이터 정책을 다른 사용자와 공유할 준비가 된 경우 가상 연결 게시 및 사용 권한 설정을 참조하십시오.
리소스
커넥터에 대한 자세한 내용은 Tableau Desktop 및 웹 작성 도움말에서 Tableau의 계산 이해(링크가 새 창에서 열림)를 참조하십시오.
사용자 함수에 대한 자세한 내용은 Tableau Desktop 및 웹 작성 도움말에서 사용자 함수(링크가 새 창에서 열림)를 참조하십시오.
Tableau의 다른 행 수준 보안 옵션에 대한 자세한 내용은 Tableau Server 도움말에서 Tableau의 행 수준 보안 옵션에 대한 개요(링크가 새 창에서 열림)를 참조하십시오.