본문 바로가기
Q&A2025년 2월 7일1분 읽기

PostgreSQL Row Level Security(RLS) 설정

홍
홍재원
조회 569댓글 3

PostgreSQL RLS로 사용자별로 다른 데이터만 보이게 하는 방법을 알려주세요.

댓글 3

김김영삼1년 전

Row Level Security 기본 설정:

-- RLS 활성화
ALTER TABLE posts ENABLE ROW LEVEL SECURITY;

-- 정책: 본인 글만 조회
CREATE POLICY "users_own_posts" ON posts
FOR SELECT
USING (author_id = current_setting('app.user_id')::int);

-- 앱에서 사용자 ID 설정
SET app.user_id = '123';
SELECT * FROM posts; -- 본인 글만 반환

Supabase가 RLS를 핵심 보안 레이어로 사용합니다.

홍홍재원(guest)1년 전
RLS를 쓰면 성능이 떨어지나요?
김김영삼1년 전

약간의 오버헤드가 있지만 대부분의 경우 무시할 수준입니다. author_id에 인덱스가 있으면 성능 차이가 거의 없습니다. 복잡한 정책(서브쿼리 포함)이면 주의가 필요하고, EXPLAIN으로 실행 계획을 확인하세요.

Ctrl+Enter로 등록