Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물
CREATE RLS POLICY
데이터베이스 객체에 대한 세분화된 액세스를 제공하는 새 행 수준 보안 정책을 생성합니다.
sys:secadmin 역할이 부여된 수퍼유저와 사용자 또는 역할은 정책을 생성할 수 있습니다.
구문
CREATE RLS POLICY policy_name [ WITH (column_name data_type [, ...]) [ [AS] relation_alias ] ] USING ( using_predicate_exp )
파라미터
- policy_name
-
정책의 이름입니다.
- WITH (column_name data_type [, ...])
-
정책이 연결된 테이블의 열에 참조되는 column_name과 data_type을 지정합니다.
연결된 테이블 열을 RLS 정책에서 참조하지 않는 경우에만 WITH 절을 생략할 수 있습니다.
- AS relation_alias
-
RLS 정책이 연결될 테이블의 별칭을 선택적으로 지정합니다.
- USING ( using_predicate_exp )
-
쿼리의 WHERE 절에 적용되는 필터를 지정합니다. Amazon Redshift는 쿼리 수준 사용자 조건자를 지정하기 전에 정책 조건자를 적용합니다. 예를 들어
current_user = ‘joe’ and price > 10은 가격이 10 USD보다 큰 레코드만 Joe에게 표시하도록 제한합니다.
사용 노트
CREATE RLS POLICY 문과 관련한 작업을 수행할 때는 다음을 준수하세요.
-
Amazon Redshift는 쿼리의 WHERE 절에 포함될 수 있는 필터를 지원합니다.
-
테이블에 연결되는 모든 정책은 동일한 테이블 별칭을 사용하여 생성되어야 합니다.
-
GRANT 및 REVOKE 문을 사용하여 조회 테이블을 참조하는 RLS 정책에 SELECT 권한을 명시적으로 부여하고 취소해야 합니다. 조회 테이블은 정책 정의 내에 사용되는 테이블 객체입니다. 자세한 내용은 GRANT 및 REVOKE(을)를 참조하세요.
-
Amazon Redshift 행 수준 보안은 정책 정의 내에서 카탈로그 테이블, 교차 데이터베이스 관계, 외부 테이블, 일반 보기, 늦은 바인딩 보기, RLS 정책이 설정된 테이블, 임시 테이블 등의 객체 유형을 지원하지 않습니다.
예시
다음 예제에서는 policy_concerts라는 RLS 정책을 만듭니다. 이 정책은 catgroup이라는 VARCHAR(10) 열에 적용되며 USING 필터를 설정하여 catgroup 값이 'Concerts'인 행만 반환합니다.
CREATE RLS POLICY policy_concerts WITH (catgroup VARCHAR(10)) USING (catgroup = 'Concerts');
RLS 정책을 사용하는 엔드 투 엔드 예제는 섹션을 참조하세요.