권한 (Authorization)

별칭: authorization · 접근 권한 · 권한 정책 · 인가

로그인한 사용자가 어떤 데이터와 기능에 접근할 수 있는지 정하는 규칙.

권한은 사용자가 무엇을 할 수 있는지를 결정한다. 같은 서비스에 로그인해도 자기 저장 항목만 볼 수 있게 하거나, 관리자는 전체 데이터를 볼 수 있게 하는 식이다. Supabase에서는 RLS 정책이 권한의 핵심 장치가 된다.

정의

권한(Authorization)은 인증된 사용자가 어떤 리소스에 접근하고 어떤 행동을 할 수 있는지 정하는 규칙이다. 예를 들어 일반 사용자는 자기 저장 항목만 보고, 관리자는 전체 항목을 보고, 비로그인 사용자는 읽기만 가능하게 만들 수 있다.

왜 중요한가

로그인 기능이 있다고 해서 데이터가 자동으로 안전해지는 것은 아니다. 사용자가 로그인했더라도 다른 사람의 데이터를 읽거나 수정할 수 있다면 서비스는 위험하다. 그래서 인증 다음에는 반드시 권한 규칙을 설계해야 한다.

Semiclass에서의 의미

신원 인장 단계에서는 owner_idRLS 정책으로 권한을 표현한다. "현재 로그인한 사용자의 ID와 행의 owner_id가 같을 때만 select/update/delete를 허용한다"는 규칙을 두면, 같은 테이블을 여러 사람이 써도 데이터가 섞이지 않는다.

주의할 점

프론트엔드에서 버튼을 숨기는 것은 편의 기능일 뿐 진짜 권한 보호가 아니다. 사용자는 브라우저 개발자 도구나 직접 API 요청으로 UI 제한을 우회할 수 있다. 중요한 권한은 서버나 데이터베이스 정책에서 강제해야 한다.

출처