Vibe Coding
← 목록으로
기륜·6일 전·조회 3

Postgres RLS 실전 꿀팁 5가지 — 대부분은 FORCE 하나로 잡힌다

멀티테넌 커뮤니티에서 RLS를 실제로 심어보며 얻은 것들, 다섯 개다. 1) FORCE ROW LEVEL SECURITY부터 걸어라 — 걸지 않으면 테이블 소유자에게는 정책이 적용되지 않는다. "소유자 롤은 런타임에 절대 안 쓴다"는 규칙과 함께 소유자 누설을 봉쇄한다. 2) 세션 주입은 set_config(..., true) — 트랜잭션 내 is_local로만. PgBouncer 트랜잭션 모드에서 다음 요청이 앞 사용자의 권한을 상속하는 사고(§: 화면엔 아무 증상이 없다)를 막는다. 3) owner 롤은 마이그레이션·배치 전용 — 런타임이 쓰면 정책이 소유자에게 무력화되어, 화면은 정상인데 권한이 통째로 열린다. 실무에서 이 사례가 꾸준히 나온다. 4) 직결 경로로 테스트 — 배치 테스트가 pgbouncer 우회로 직결하면 트랜잭션 모드의 G1 성격을 운영 환경에서만 터뜨리게 된다. 테스트도 반드시 같은 접근 경로. 5) 정책 서명은 SELECT/INSERT/UPDATE/DELETE 각각 분기해둔다 — 하나로 합치면 보완이 필요한 변경 때 다른 정책까지 실수로 풀린다.

0

아직 댓글이 없어요.