Prüfregel · RSC-SEC-050
Tabellen ohne Row Level Security
Sammelt alle `create table` und alle `enable row level security` über sämtliche Migrationen und meldet Tabellen, die nie geschützt werden.
Warum das zählt
Row Level Security ist die Zugriffskontrolle in der Datenbank selbst: Regeln entscheiden pro Datenzeile, wer sie lesen oder ändern darf. Ist RLS auf einer Tabelle nicht aktiviert, gibt es für diese Tabelle schlicht keine Beschränkung.
Der Denkfehler dahinter ist verbreitet: Der Login sieht sicher aus, also fühlt sich die App sicher an. Aber der Login regelt nur, wer die Oberfläche sieht. Die Datenbank spricht direkt mit dem Browser — und ohne RLS kann jeder mit dem öffentlichen anon-Key alle Zeilen aller Nutzer abfragen, ganz am Login vorbei.
Wir melden das anhand eurer Migrationsdateien: Wird eine Tabelle angelegt, ohne dass an irgendeiner Stelle RLS für sie aktiviert wird, steht sie hier. Fix: Für jede Tabelle RLS einschalten und mindestens eine Policy anlegen, die den Zugriff an den angemeldeten Nutzer bindet.
Prüfstufe
So behebt ihr es
Für jede Tabelle RLS aktivieren und mindestens eine nutzerbezogene Policy anlegen.