데이터베이스의 행 수준 보안

조직이 이미 데이터베이스에 RLS(행 수준 보안)을 구축한 경우 다음 기법 중 하나를 사용하여 기존 RLS의 이점을 활용할 수 있습니다. 데이터베이스의 보안 모델을 활용하려면 라이브 연결이 필요합니다. 또한 이러한 기법은 Tableau Cloud에서 사용할 수 없습니다. Tableau Cloud의 Tableau 사용자 이름은 고유한 이메일 주소이며, 이러한 이메일 주소는 일반적으로 데이터베이스 측의 사용자 ID가 아닙니다.

기본 제공 RLS 모델을 구현하는 것이 항상 Tableau로 작성하는 것보다 쉽거나 나은 것은 아니라는 점을 염두에 두십시오. 이러한 기법은 일반적으로 조직이 이미 이러한 기술에 투자했으며 해당 투자를 활용하고 싶은 경우에 사용됩니다.

참고: Tableau에서 행 수준 보안을 구현할 때 사용할 수 있는 대체 옵션에 대한 자세한 내용은 Tableau의 행 수준 보안 옵션에 대한 개요를 참조하십시오.

가장(Microsoft SQL Server)

Microsoft SQL Server(그리고 몇 가지 관련 시스템)는 DBA가 작성한 보안 연결 테이블 또는 뷰를 사용하여 데이터베이스의 사용자가 RLS 필터가 기본 제공되는 뷰에만 액세스할 수 있도록 구성할 수 있습니다. Tableau는 “가장”이라고 하는 개념을 사용하여 이 기능을 활용할 수 있습니다.

Tableau Server에 대한 MS SQL Server 연결을 포함하는 Tableau 데이터 원본을 게시할 때 가장을 활용하는 두 가지 인증 옵션을 사용할 수 있습니다. 표시되는 메뉴는 SQL Server에 네트워크 인증을 사용하여 로그인했는지, 아니면 사용자 이름/암호 자격 증명을 입력하여 로그인했는지에 따라 달라집니다.

Tableau Server에서 게시된 데이터 원본에 액세스할 수 있는 사용자에 대해 RLS 필터링을 사용하도록 설정하려면 AD Run-As 계정이나 내장된 SQL Server 자격 증명에 대시보드 또는 데이터 원본에 액세스할 데이터베이스의 모든 Tableau 사용자에 대한 EXECUTE AS 사용 권한이 있어야 합니다. 모든 Tableau 사용자는 데이터베이스 서버에 사용자로 존재해야 하며 연결하려는(RLS가 적용되는) 뷰에 대한 SELECT 권한이 있어야 합니다. 자세한 요구 사항 목록은 가장 요구 사항을 참조하십시오.

Kerberos 및 제한 위임

Kerberos를 사용하는 Tableau Server 내의 제한 위임은 Tableau Server가 통합 문서 뷰 또는 뷰의 Kerberos 자격 증명을 사용하여 Viewer(뷰어) 대신 쿼리를 실행할 수 있게 한다는 점에서 가장과 유사합니다. 또한 데이터베이스에 RLS가 설정되어 있는 경우 통합 문서 Viewer(뷰어)는 자신의 데이터만 볼 수 있게 됩니다.

Kerberos 위임이 지원되는 데이터베이스의 전체 목록을 보려면 Kerberos 위임 사용을 참조하십시오. Active Directory가 필요하며, Tableau Server가 설치된 컴퓨터는 Active Directory 도메인에 가입해야 합니다. 데이터 원본을 게시할 때 지정된 인증 방법(링크가 새 창에서 열림)Viewer(뷰어) 자격 증명이어야 합니다.

Microsoft Analysis Services를 사용할 때 RLS에 Kerberos를 활용할 수 있습니다.

OLAP 큐브

Tableau의 OLAP 큐브 연결에는 Tableau의 자격 테이블 기반 RLS 방법이나 USERNAME() 함수 액세스에 필요한 데이터 원본 필터에 해당하는 기능이 없습니다. 이러한 이유 때문에 OLAP 데이터베이스를 사용하는 RLS에는 Kerberos 및 제한 위임이 권장되는 방법입니다. 이 방법을 사용하면 Tableau가 OLAP 서버 측에 이미 구현되어 있는 사용자 필터링을 활용할 수 있습니다.

대시보드를 보는 사용자가 도메인에 속하지 않는 경우 사용자 필터를 만드는 수동 접근 방식을 사용할 수 있습니다. 하지만 생성되는 사용자 필터 집합은 데이터 원본 필터로 추가할 수 없으며 필터 선반에 존재하기 때문에 이 방법을 사용하여 게시되는 뷰에 웹 편집 및 통합 문서 다운로드 기능을 허용하지 않는 것이 중요합니다.

SAML 위임 및 SAP HANA

Tableau Server가 SAP HANA SSO 구성을 사용하여 SSO(Single Sign-On) 환경을 제공하도록 구성된 경우 해당 사용자로 쿼리를 실행하는 데 Viewer(뷰어) 자격 증명이 사용되며, 이 자격 증명은 사용자 수준에 적용되는 보안 방법 내에서 작동합니다. 데이터 원본을 게시할 때 지정된 인증 방법(링크가 새 창에서 열림)Viewer(뷰어) 자격 증명이어야 합니다.

사용자별 세션을 적용하기 위한 초기 SQL(Oracle VPD)

초기 SQL을 사용하면 세션 기간 중에 사용하거나 사용자 지정 데이터 환경을 설정하기 위해 임시 테이블을 설정하는 용도로 데이터베이스에 연결할 때 실행되는 SQL 명령을 지정할 수 있습니다.

Oracle VPD의 경우 Tableau 사용자의 사용자 이름과 일치하도록 데이터베이스 연결의 컨텍스트를 설정하는 특정 저장 프로시저 또는 함수를 실행하여 사용자에게 한정된 세션을 설정할 수 있습니다.

begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;

이 기능을 사용하기 위한 개략적인 수준의 요구 사항은 가장을 사용하는 RLS와 동일합니다. DBA는 VPD 및 모든 관련 사용자가 데이터베이스에 존재하도록 설정해야 합니다.

MS SQL Server에서는 명령으로 EXECUTE를 적용할 수 있습니다(이 기능은 Tableau가 가장을 사용하여 수행하는 것과 유사함).

EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;

참고: 데이터 원본이 내장되어 있고 사용자에게 통합 문서를 웹 편집하거나 다운로드하는 사용 권한이 있는 경우 RLS가 존재하지 않으며, 이는 이를 적용하는 초기 SQL을 쉽게 제거할 수 있기 때문입니다. 데이터 원본을 통합 문서에 내장된 상태로 두는 것이 아니라 별도로 게시해야 합니다.

행 수준 보안 방법에 대한 비교 매트릭스

방법유용한 상황장점단점
자격 테이블(권장)
  • 데이터베이스에 자격 개념이 존재합니다.
  • 조직은 처음에 행 수준 보안을 설정합니다.
  • 테스트, 업데이트, 유지 관리 및 확장하기 쉽습니다.
  • 버전 2018.3 이상인 경우 라이브 연결과 추출 모두에서 작동합니다.
  • 자격 테이블을 만들고 유지 관리해야 합니다.
  • 성능을 최적화하려면 적절한 키를 선택하고 만들어야 할 수 있습니다.
추출을 사용하는 CONTAINS()
  • 2018.3 이전 버전의 추출에서 RLS 구현
  • 추출의 효율성을 활용할 수 있습니다.
  • 모든 사용자를 단일 열에 매핑해야 합니다.
  • 문자열 계산 때문에 다시 라이브 연결로 전환하기 어렵습니다.
가장
  • 데이터에 액세스하는 모든 사용자가 SQL Server에 사용자로 존재해야 합니다(대개 내부 배포).
  • 보안이 한 위치(데이터베이스)에서 처리되고 유지 관리됩니다.
  • 뷰에 액세스하는 모든 사용자가 SQL Server 내에서 사용자로 존재해야 합니다.
  • Microsoft SQL Server에서만 작동합니다.
Kerberos
  • 모든 필요한 데이터베이스에 Kerberos 위임이 설정되어 있고 RLS가 데이터베이스에 설정되어 있습니다(대개 내부 배포).
  • Viewer(뷰어)의 이름은 데이터베이스의 액세스 로그에 나타납니다.
  • 보안은 데이터베이스에서 처리되고 유지 관리됩니다.
  • LDAP - Active Directory를 사용하도록 Tableau를 구성해야 합니다.
  • Tableau Server가 AD 도메인에 가입되어 있어야 합니다.
  • 모든 사용자가 AD 도메인에 존재해야 합니다.
초기 SQL
  • 데이터베이스가 초기 SQL을 지원하고 RLS가 데이터베이스 측에 설정되어 있습니다.
  • 로드 시 Tableau 매개 변수를 전달할 수 있습니다.
  • 다른 사용자와 공유할 수 없는 전용 연결입니다.
  • 사용자로 쿼리를 실행하려면 사용자가 데이터베이스 내에 존재해야 합니다.
  • 일부 데이터베이스는 초기 SQL을 지원하지 않습니다.
  • 제한된 캐시 공유 때문에 성능 문제가 있을 수 있습니다.
피드백을 제공해 주셔서 감사합니다!귀하의 피드백이 제출되었습니다. 감사합니다!