Zum Inhalt springen

Row Level Security (RLS)

Row Level Security (RLS) ist die Zugriffskontrolle direkt in der Postgres-Datenbank: Regeln (Policies) entscheiden pro Datenzeile, wer sie lesen oder ändern darf — zum Beispiel „nur der Besitzer“. Ohne aktivierte RLS ist bei Supabase jede Tabelle, die das Frontend erreicht, offen für jeden. RLS ist die eigentliche Sicherheitsschicht einer Supabase-App, nicht der Login-Bildschirm davor.

Der entscheidende Denkfehler in vielen KI-gebauten Apps: 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 Frontend — und wenn RLS nicht aktiv ist, kann jeder mit dem öffentlichen Anon-Key alle Zeilen aller Nutzer abfragen, komplett am Login vorbei.

Zwei Fehlerbilder sind typisch. Erstens: RLS ist auf einer Tabelle gar nicht eingeschaltet — dann gilt gar keine Beschränkung. Zweitens: RLS ist an, aber die Policy lautet „using (true)“ — das erlaubt formal jedem alles und ist damit genauso offen, nur schwerer zu erkennen. Beide sehen in der App identisch aus: Es funktioniert. Sicher ist es nicht.

Richtig gemacht heißt: RLS auf jeder Tabelle aktiviert, und jede Policy an die Identität des Nutzers gebunden (typisch „auth.uid() = user_id“). Unser Rescue-Deep-Scan prüft genau beides — fehlende RLS und zu großzügige „using (true)“-Policies — und macht sichtbar, ob hinter dem Login-Bildschirm wirklich jemand die Tür abgeschlossen hat.

Bereit für produktionsreife Software?

Bringt euer Vorhaben ins Erstgespräch — wir ordnen es ehrlich ein und empfehlen den passenden nächsten Schritt.

115-Min-Gespräch2Klare Einordnung3Start in Tagen