접근 권한 (Authorization) 은 아파트 출입카드 같은 것 — 같은 건물에 살아도 내 층, 내 호수만 열리듯, 로그인한 사용자마다 볼 수 있는 데이터를 다르게 제한하는 규칙.
아파트를 생각해보세요. 주민 모두 정문은 통과하지만, 내 집 현관은 나만 열 수 있습니다. 옆집 문은 열리지 않죠. 접근 권한 (Authorization) 이 바로 이 역할입니다. '로그인은 했지만, 이 사람이 이 데이터를 볼 자격이 있는가?'를 데이터베이스 (DB) 수준에서 판단해주는 규칙이에요. RLS (Row Level Security) 는 그 규칙을 테이블의 각 행 (Row) — 즉 데이터 한 줄 한 줄 — 에 직접 적용하는 방식입니다.
1인 비즈니스(1인 사이트 운영)를 운영하다 보면 반드시 이 문제를 만납니다. 멤버십 사이트에서 무료 회원이 유료 전용 글을 볼 수 없어야 하고, 커뮤니티에서 내가 쓴 글만 수정할 수 있어야 하며, SaaS 에서 A 고객의 데이터가 B 고객 화면에 노출되면 절대 안 됩니다. RLS 가 설정되어 있으면 AI 가 만들어준 코드에 실수가 있어도 DB 자체에서 잘못된 접근을 차단해줍니다. 쉽게 말해, 코드가 뚫려도 데이터는 지켜주는 마지막 안전망입니다.
초보가 자주 혼동하는 점은 '로그인 (Authentication) 되었으면 다 볼 수 있는 거 아닌가요?'입니다. 로그인은 '이 사람이 누구인지' 확인하는 것이고, 접근 권한은 '이 사람이 무엇을 할 수 있는지' 결정하는 별개의 단계입니다. 사이트를 처음 만들 때 AI 에게 'RLS 규칙도 함께 설정해줘'라고 명시적으로 요청하는 것이 좋습니다. 기본값으로 꺼져 있는 경우가 많아 깜빡하면 모든 사용자가 전체 데이터를 볼 수 있는 상태가 될 수 있습니다.
AI와 함께 나만의 사이트·서비스를 만드는 법을 강의에서 배워보세요.