Home / patterns

Row Level Security disabled on Supabase tables

Quick answer: Supabase gives your browser a public anon key. That's safe only if Row Level Security (RLS) is on, with policies, for every table that holds user data.

Last updated October 14, 2026

Steps

  1. In the Supabase dashboard, open Table Editor and check whether RLS is enabled on each table.
  2. Run the Security Advisor, which flags tables without RLS.
  3. Enable RLS on every public-schema table.
  4. Add policies such as using (auth.uid() = user_id) for select, update and delete, plus a with check for insert.
  5. Test by querying as a second test user.

Why it matters

This is a common failure pattern in apps built quickly with AI coding tools. The steps above check your own app only. Never test apps you don't own.

Want an expert to check your app?

VibeRescue checks are coming soon. Join the waitlist, or ask StorenTech AI to fix it for you.

Join the waitlist

Vibe Security Weekly

One email a week with new failure patterns and how to fix them.

Signups open shortly. We'll never sell your email.