행 수준 보안이란?
행 수준 보안(RLS)은 데이터베이스가 행마다 각 사용자가 읽거나 바꿀 수 있는 기록을 결정하는 기능입니다. 앱이 더 많은 것을 요청하더라도 고객은 자신의 주문만 보게 됩니다.
이 기능이 없다면 “사용자는 자신의 데이터만 본다”는 규칙이 앱 코드 안에 있게 됩니다. 어느 한 화면이나 API가 확인을 빠뜨리면 비공개 데이터가 새어 나갈 수 있습니다.
행 수준 보안을 쓰면 규칙이 데이터베이스 자체에 있게 됩니다. “orders의 행은 customer_id가 로그인한 사용자와 일치할 때만 보인다” 같은 정책을 작성하면, 데이터베이스가 모든 조회에 이를 적용합니다.
Postgres는 행 수준 보안을 지원하며, 브라우저에서 데이터베이스에 직접 접근하는 앱을 가진 일부 백엔드 서비스는 이 기능에 크게 의존합니다. 이런 구성에서는 정책이 없는 테이블을 누구나 읽을 수 있습니다.
RLS는 여러 보호 계층 중 하나일 뿐 유일한 보호 수단이 아닙니다. 앱에는 여전히 제대로 된 로그인, 서버 측 확인, 관리자 접근에 대한 신중한 처리가 필요합니다.
예시
- 포털의 고객은 자신의 문서만 본다
- 도구 안의 각 팀은 자신의 프로젝트만 본다
자주 묻는 질문
행 수준 보안이 필요한가요?
많은 사용자의 비공개 데이터를 저장하고, 그중 일부가 브라우저에서 데이터베이스를 직접 조회한다면 필요합니다. 모든 접근이 권한을 확인하는 백엔드를 거친다면 RLS는 추가 안전망입니다.
행 수준 보안은 역할과 같은 것인가요?
아닙니다. 역할은 관리자나 회원처럼 사용자가 어떤 종류인지 설명합니다. 행 수준 보안은 사용자 ID나 역할 같은 정보를 바탕으로 그가 접근할 수 있는 특정 행을 결정합니다.
함께 보기
Mythex · Pricing · AI로 무엇이든 만들기 · 웹사이트 및 앱 템플릿 · Mythex 비교 · AI 앱 개발 용어집 · 무료 AI 앱 개발 도구 · English