New projects launched after May 30th will require developers to actively grant permissions for tables in the public schema to be accessible via Supabase's Data API. This marks a significant departure from previous default behavior where tables were automatically exposed. The shift necessitates explicit PostgreSQL grants, either through the dashboard interface or directly via SQL commands.
This change mandates a granular, per-role access control model, specifically addressing the distinction between anonymous and authenticated user permissions. This aims to bolster security and governance for production environments. Explicit grants are designed to be reviewable and auditable, fitting more transparently into migration workflows.
Restoring and Securing Existing Data
For developers looking to align existing projects with this new security posture, Supabase provides methods to revoke and re-grant permissions. Running specific SQL commands can alter default privileges for future table creations, preventing them from being automatically exposed. Existing tables will retain their current access settings unless explicitly modified.
Read More: Big AI Influence on Law Worries Researchers
To stop automatic default privileges for future objects:
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA public REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLES FROM anon, authenticated, service_role;andALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA public REVOKE USAGE, SELECT ON SEQUENCES FROM anon, authenticated, service_role;To secure existing tables, direct
REVOKEstatements per table are advised:REVOKE ALL ON TABLE public.your_table FROM anon, authenticated, service_role;
The company’s 'Data API exposure badge' in the Table Editor and its 'Security Advisor' are tools to help identify tables that warrant review under this new access model.
Underlying Mechanisms and Previous Adjustments
This move builds upon Supabase's ongoing efforts to refine its security framework. Previously, on February 17th, 2026, access to the full OpenAPI specification via anonymous keys was deprecated. This adjustment, however, did not impact standard Data API usage, with the endpoint remaining accessible through service role or secret API keys.
The Data API itself is designed to function in concert with PostgreSQL's built-in access control features. Ensuring secure API endpoints typically involves enabling Row Level Security (RLS) on all tables exposed via the Data API. Policies can then be crafted to define specific access rules, such as allowing anonymous users to 'select' only published posts while authenticated users manage their own content. Supabase's documentation emphasizes using secret and service role keys exclusively on the backend, as they bypass RLS and can compromise security if exposed on the frontend.
Read More: Triton language helps developers write GPU code easily