home

행 단위 보안 설정하기

행 단위 보안(Row-Level Security, RLS)은 특정 데이터셋과 역할에 필터를 적용하여 사용자가 조회할 수 있는 데이터 범위를 제한하는 기능입니다.
예를 들어, 마케팅 부서 구성원은 마케팅 부서의 데이터만 볼 수 있도록 설정할 수 있습니다.
RLS 적용 전 선행 조건
RLS는 데이터셋에 대한 접근 권한이 있는 사용자에게만 적용됩니다. 사용자가 데이터셋을 조회하려면 먼저 HC_DataAsset_* 역할에 아래 접근 권한 중 하나 이상이 설정되어 있어야 합니다.
접근 범위
권한 표현
데이터베이스 전체
database access on [데이터베이스명]
특정 스키마
schema access on [스키마명]
특정 데이터셋
datasource access on [데이터셋명]
RLS는 이 접근 권한 위에서 어떤 행까지 볼 수 있는지를 추가로 제한합니다.

1. 행 단위 보안(RLS) 설정 방법

1.
화면 우측 상단의  설정 → 보안 → 행 단위 보안을 클릭합니다.
2.
우측 상단의 + 규칙 버튼을 클릭합니다.
3.
행 단위 보안 필터 정보를 입력합니다.
필터 유형
유형
동작 방식
Regular
필터에 지정된 역할에 속한 사용자의 쿼리에만 WHERE 절을 추가합니다. 해당 역할이 없는 사용자에게는 필터가 적용되지 않아 모든 데이터가 노출됩니다.
Base
필터에 지정된 역할을 제외한 모든 사용자의 쿼리에 필터를 적용합니다. 같은 그룹 내에서 적용 가능한 RLS 필터가 없는 사용자에게 표시할 기본 데이터 범위를 정의할 때 사용합니다.
데이터셋 — 필터를 적용할 데이터셋을 선택합니다. 복수 선택이 가능하며, 선택한 데이터셋을 사용하는 쿼리에만 필터가 적용됩니다.
역할 / 제외된 역할 — 필터를 적용하거나 적용하지 않을 역할을 선택합니다.
RLS 전용 역할(예: HC_RLS_영업부)을 별도로 생성하여 사용하는 것을 권장합니다.
그룹 키 (선택사항) — 여러 RLS 필터를 논리적으로 묶는 식별자입니다.
같은 그룹 키를 가진 필터끼리는 OR로 결합됩니다.
다른 그룹 키를 가진 필터는 AND로 결합됩니다.
그룹 키가 없는 필터는 각각 독립된 그룹으로 처리됩니다. (다른 필터와 묶이지 않고 개별적으로 AND 결합)
WHERE (그룹 키 없는 필터1) AND (그룹 키 없는 필터2) AND (그룹A 필터1 OR 그룹A 필터2) AND (그룹B 필터1 OR 그룹B 필터2)
SQL
복사
그룹 키가 필요한 경우
사용자가 여러 역할을 가지고 있고, 각 역할이 같은 컬럼을 서로 다른 값으로 필터링할 때 그룹 키를 사용합니다. 그룹 키 없이 두 필터를 적용하면 부서 = 'A' AND 부서 = 'B'가 되어 결과가 0건이 됩니다. 같은 그룹 키를 지정하면 (부서 = 'A' OR 부서 = 'B')로 처리되어 두 부서 데이터를 모두 조회할 수 있습니다.
i.
그룹 키를 사용하지 않은 경우
보상센터명 = '전문심사부’ AND 보상센터명 = '충청장기센터’
ii.
그룹 키를 사용한 경우
보상센터명 = '전문심사부’ OR 보상센터명 = '충청장기센터’
조건 절 — 쿼리의 WHERE 절에 추가될 SQL 조건을 입력합니다.
생성된 필터는 쿼리 실행 시 WHERE 절에 자동으로 추가됩니다.
여러 조건을 하나의 필터에 작성할 수 있습니다.
Jinja2 표현식을 사용하면 로그인한 사용자 정보를 조건에 활용할 수 있습니다.
-- 특정 부서 데이터만 조회 부서 = '영업부' -- 여러 조건 조합 부서 = '영업부' AND 팀명 = '온라인팀' -- 로그인한 사용자 이름 기준으로 필터링 (Jinja2) 담당자 = '{{ current_username() }}' -- 아무 데이터도 보여주지 않음 (Base 필터에서 기본값으로 사용) 1 = 0
SQL
복사
4.
저장하기 버튼을 클릭합니다.

2. 행 단위 보안(RLS) 설정 예시

어떤 사용자가 전문심사부 > 전문심사1팀 데이터만 조회해야 하는 경우, 
RBAC(역할 기반 접근 제어)와 RLS(행 단위 보안)를 함께 사용하여 다음과 같이 설정합니다.

1단계 — RLS 역할 생성

설정 → 보안 → 역할 목록에서 RLS 적용을 위한 역할을 생성합니다.
역할 이름
HC_RLS_전문심사부
HC_RLS_전문심사1팀

2단계 — RLS 규칙 생성

설정 → 보안 → 행 단위 보안에서 아래와 같이 규칙을 생성합니다.
규칙 이름
역할
조건 절
전문심사부 필터
HC_RLS_전문심사부
보상센터명 = '전문심사부’
전문심사1팀 필터
HC_RLS_전문심사1팀
보상팀명 = '전문심사1팀’

3단계 — 사용자에게 역할 부여

설정 → 보안 → 사용자 목록에서 해당 사용자에게 생성한 역할을 부여합니다.
역할
HC_RLS_전문심사부
HC_RLS_전문심사1팀

결과

HC_RLS_전문심사부, HC_RLS_전문심사1팀 역할을 가진 사용자가 대시보드나 차트에서 대상 데이터셋(oda.insurance)을 조회할 때 전문심사부이면서 전문심사1팀 데이터만 표시됩니다.
AS-IS
TO-BE
자세한 역할 생성 및 부여 방법은 역할 및 그룹 관리하기 문서를 참고하세요.
 메뉴로 돌아가기