- Row Level Security (RLS): Steuert, auf welche Datensätze Benutzer zugreifen können.
- Field Level Security (FLS): Steuert, auf welche Felder innerhalb von Datensätzen Benutzer zugreifen können.
Zugriff über die Service-Rolle umgeht diese Regeln:
base44.asServiceRole umgeht RLS und FLS vollständig, egal wie die Entität konfiguriert ist. Du brauchst also keine passende Admin-Regel, damit sie einen Datensatz lesen oder schreiben kann. Sie ist nur in von Base44 gehosteten Backend-Funktionen verfügbar, und deine Funktion ist für alle nötigen Zugriffsprüfungen selbst verantwortlich.Berechtigungstypen
Jede Sicherheitsebene hat unterschiedliche Berechtigungen, die du setzen kannst. Für jede Berechtigung definierst du, wer die Aktion ausführen darf.Row Level Security (RLS)
create– Neue Datensätze hinzufügenread– Datensätze ansehenupdate– Datensätze änderndelete– Datensätze entfernen
Field Level Security (FLS)
read– Das Feld ansehenwrite– Das Feld erstellen oder ändern
Berechtigungswerte
Jede Berechtigung akzeptiert einen der folgenden Werte:true– Allen Benutzern erlaubenfalse– Allen Benutzern verbieten{<condition>}– Benutzer erlauben, die der Bedingung entsprechen
Wie sich abgelehnte Lese- und Schreibvorgänge unterscheiden
Abgelehnte Lesevorgänge verhalten sich, als gäbe es die Daten nicht. So verraten sie nicht, was vorhanden ist. Abgelehnte Schreibvorgänge werfen einen Fehler, damit eine blockierte Änderung nie still fehlschlägt.Bedingungssyntax
Wenn du{<condition>} als Berechtigungswert verwendest, kannst du Regeln definieren, die Benutzerattribute oder -rollen prüfen.
Eine Bedingung, die
{{user.*}} referenziert oder user_condition nutzt, erfordert einen authentifizierten Aufrufer. Ein anonymer Aufrufer hat keinen Benutzer zum Vergleichen. Die Regel blockiert ihn daher direkt, statt als false ausgewertet zu werden.created_by– E-Mail des Benutzers, der den Datensatz erstellt hatcreated_by_id– ID des Benutzers, der den Datensatz erstellt hatentity_name– Name des Entitätstypsapp_id– App-IDenvironment– Entwederprododerdevis_sample– Ob es sich um Beispieldaten handeltis_deleted– Soft-Delete-Flagdeleted_date– Wann er gelöscht wurdedata.*– Jedes Feld aus den properties deines Entity-Schemas
{{user.email}}– E-Mail des Benutzers{{user.id}}– ID des Benutzers{{user.role}}– Rolle des Benutzers{{user.data.*}}– Zusätzliche von dir definierte Benutzerfelder
user_condition.
Benutzerfelder, die du prüfen kannst:
email– E-Mail des Benutzersid– ID des Benutzersrole– Rolle des Benutzersdata.*– Eigene Benutzerfelder
$or, $and, $nor, $in, $nin, $all
Beispiel:
Beispiel für Row Level Security (RLS)
Fügerls auf Entity-Ebene hinzu:
Beispiel für Field Level Security (FLS)
Fügerls zu einzelnen Feld-Eigenschaften hinzu:
Vollständiges Beispiel mit Sicherheit
Hier ist ein Entity-Schema mit RLS und FLS:Sicherheitsregeln deployen
Sicherheitsregeln sind Teil deines Entity-Schemas. Nach dem Hinzufügen oder Aktualisieren von Sicherheitsregeln deploye sie mitentities push. Sicherheitsregeln werden außerdem automatisch deployed, wenn du den deploy-Befehl ausführst, um dein gesamtes Projekt zu deployen.
Siehe auch
- Entitäten – Übersicht: Lerne mehr über die Datenbankschema-Konfiguration
- Entity-Schemas: Definiere deine Entitätsstruktur
- User-Schema: Spezielle eingebaute Entität für Benutzer-Authentifizierung
- Datenzugriff über die Service-Rolle: Daten lesen und schreiben, ohne dass Zugriffsregeln gelten
- Projektstruktur: Wie Entity-Schemas in dein Projekt passen
Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die englische Version.