Rowpass 42501: permission denied for table Not affiliated with Supabase

Fix "permission denied for table" on Supabase

Paste your tables, pick who can reach each one, copy the grants.

 

Waiting for a paste.

    Who can reach each table

    Your tables show up here, one row each, with a choice of who can reach them.

    The SQL appears here as soon as a table is found.

    Parsed in your browser. Your SQL is never uploaded, and no site or database is scanned.

    What Supabase scheduled for 30 October 2026

    • Before: every new table in public was granted to anon, authenticated and service_role automatically.
    • After the change: a new table has no grants until you write them. The Data API answers 42501, permission denied for table.
    • Tables that already existed keep their grants. Row level security works as before.

    Dates are from the Supabase changelog post published 2026-04-28, read 2026-11-10. We have not seen an official post confirming that the 2026-10-30 step finished for every project, so check your own project with this query.

    A grant is a table-level permission for a database role. Source: Supabase changelog, published 2026-04-28, read 2026-11-10. Full timeline · Check if your project is affected

    By error and by task

    By builder tool

    Price

    One table

    Free

    • GRANT + RLS SQL
    • Fix prompt for your builder tool
    • No account

    Whole schema

    $9 one-time · free during launch

    • Every table in one migration file
    • Rollback file
    • No account, no subscription

    Questions

    What does "42501: permission denied for table" mean?

    The database role that made the request has no grant on that table. A grant is a table-level permission. Supabase is ending automatic grants for new public tables: new projects since 30 May 2026, and every existing project scheduled for 30 October 2026. Where that applies, a new table has no grants until you add them.

    What does the tool write?

    For each table: the GRANT statements for anon (signed-out visitors), authenticated (signed-in users) and service_role (your server), a line that turns on row level security, and the matching policies. Row level security, or RLS, is the Postgres feature that decides which rows each request may see.

    Is my schema uploaded?

    No. The page parses what you paste inside your browser. It sends anonymous counts (page visit, tool used, copy, unlock) and anything you type in the feedback box. No SQL, no table names.

    Does it connect to my database or scan my site?

    No. It never contacts your project. You run the SQL yourself, in the Supabase SQL Editor or through your builder tool.

    What is free and what costs $9?

    One table is free: its GRANT + RLS SQL and a fix prompt. The whole schema as one migration file, plus the rollback file, is $9 one-time. During launch the whole thing is free.

    Could the SQL be wrong for my app?

    Yes. The tool cannot see your data or your app, and it only offers three access shapes. Read the SQL before you run it, and test with a signed-out and a signed-in user. It is an information tool, not professional advice.

    Does Supabase already offer a fix?

    Yes, and it is free. The error hint names one missing grant, and the Security Advisor in the dashboard lists affected tables with SQL. This tool is for doing every table and every role in one pass, with policies and a rollback.

    Did it fix your error?