-- 재귀 RLS 정책 제거 + app_metadata 기반으로 교체 -- profiles 테이블에서 자기 자신을 서브쿼리하면 무한 재귀 발생 -- 1. 기존 재귀 정책 삭제 DROP POLICY IF EXISTS "admin_read_all_profiles" ON public.profiles; DROP POLICY IF EXISTS "admin_read_all_subscriptions" ON public.subscriptions; DROP POLICY IF EXISTS "admin_read_all_daily_usage" ON public.daily_usage; -- 2. auth.users.raw_app_meta_data 기반 admin 정책 (재귀 없음) -- 관리자 설정: UPDATE auth.users SET raw_app_meta_data = raw_app_meta_data || '{"role":"admin"}' WHERE id = '...' CREATE POLICY "admin_read_all_profiles" ON public.profiles FOR SELECT TO authenticated USING ( (auth.jwt() -> 'app_metadata' ->> 'role') = 'admin' ); CREATE POLICY "admin_read_all_subscriptions" ON public.subscriptions FOR SELECT TO authenticated USING ( (auth.jwt() -> 'app_metadata' ->> 'role') = 'admin' ); CREATE POLICY "admin_read_all_daily_usage" ON public.daily_usage FOR SELECT TO authenticated USING ( (auth.jwt() -> 'app_metadata' ->> 'role') = 'admin' );