# RLS checker

> Paste schema SQL and see tables with RLS off, policies that pass every row, and views that skip RLS, each with fix SQL.

Source: https://scribase.com/tools/rls-checker

An in-browser checker: paste schema SQL (for example the output of `pg_dump --schema-only`) and it reads CREATE TABLE, ALTER TABLE ... ENABLE ROW LEVEL SECURITY, CREATE/ALTER/DROP POLICY, CREATE VIEW and CREATE INDEX in order. Nothing is sent to a server.

It reports: public tables with RLS off; policies ignored because RLS is off; policies that pass every row (`USING (true)`, `WITH CHECK (true)`, no expression, or only "is someone signed in"); policies that trust `user_metadata`; INSERT policies with a USING clause (Postgres rejects them); UPDATE or DELETE policies with no SELECT policy; views without `security_invoker`; policy columns with no index; and `auth.uid()` calls not wrapped in a select.

Each finding carries the object, the line, and where one exists the SQL that fixes it.