개발

[supabase][postgresql] Row Level Security 이란

ttoance 2025. 9. 4. 19:25
반응형

https://supabase.com/docs/guides/database/postgres/row-level-security

 

Row Level Security | Supabase Docs

Secure your data using Postgres Row Level Security.

supabase.com

 

 

supabase를 사용하다 보면, RLS enabled/disabled가 보이는데, 해당 기능이 어떤 기능인지 알아봤다. 

supabase 기능이라기보다는 postgres의 기능에 가깝다고 한다. 

 

 

https://www.postgresql.org/docs/current/ddl-rowsecurity.html

 

이 기능을 통해 사용자가 어떤 행을 조회, 삽입, 수정, 삭제할 수 있는지를 제어할 수 있다고 한다.

기본적으로 테이블에는 행 보안 정책이 없으며, SQL 권한 시스템에 의해 테이블 접근 권한이 있으면 테이블의 모든 행에 접근할 수 있다. 

 

 

행 보안 활성화

  • ALTER TABLE ... ENABLE ROW LEVEL SECURITY로 행 보안을 활성화하면, 그 테이블에 대한 모든 조회/수정 작업은 반드시 행 보안 정책에 의해 허용되어야 한다.
  • 테이블 소유자는 기본적으로 정책의 제약을 받지 않지만, ALTER TABLE ... FORCE ROW LEVEL SECURITY를 통해 자신도 정책 적용을 받을 수 있다.
  • 정책이 정의되지 않은 경우 기본 거부(default-deny)가 적용되어 어떠한 행도 보이거나 수정할 수 없다.
  • TRUNCATE, REFERENCES 같은 테이블 전체에 적용되는 작업은 행 보안의 영향을 받지 않는.

 

반응형