Zum Hauptinhalt springen
Du siehst gerade die Entwicklerdokumentation
Diese Dokumentation richtet sich an Entwickler, die mit der Base44-Entwicklerplattform arbeiten. Informationen zum Verwalten deiner App-Daten über den App-Editor findest du unter App-Daten verwalten.
Entitäten unterstützen zwei Sicherheitsebenen:
  • 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.

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ügen
  • read – Datensätze ansehen
  • update – Datensätze ändern
  • delete – Datensätze entfernen

Field Level Security (FLS)

  • read – Das Feld ansehen
  • write – Das Feld erstellen oder ändern

Berechtigungswerte

Jede Berechtigung akzeptiert einen der folgenden Werte:
  • true – Allen Benutzern erlauben
  • false – Allen Benutzern verbieten
  • {<condition>} – Benutzer erlauben, die der Bedingung entsprechen

Bedingungssyntax

Wenn du {<condition>} als Berechtigungswert verwendest, kannst du Regeln definieren, die Benutzerattribute oder -rollen prüfen. 1. Entity-zu-Benutzer-Vergleich Vergleiche Datensatzfelder mit den Werten des aktuellen Benutzers. Entity-Felder, die du referenzieren kannst:
  • created_by – E-Mail des Benutzers, der den Datensatz erstellt hat
  • created_by_id – ID des Benutzers, der den Datensatz erstellt hat
  • entity_name – Name des Entitätstyps
  • app_id – App-ID
  • environment – Entweder prod oder dev
  • is_sample – Ob es sich um Beispieldaten handelt
  • is_deleted – Soft-Delete-Flag
  • deleted_date – Wann er gelöscht wurde
  • data.* – Jedes Feld aus den properties deines Entity-Schemas
Template-Variablen für Benutzerwerte:
  • {{user.email}} – E-Mail des Benutzers
  • {{user.id}} – ID des Benutzers
  • {{user.role}} – Rolle des Benutzers
  • {{user.data.*}} – Zusätzliche von dir definierte Benutzerfelder
Beispiel:
{"created_by": "{{user.email}}"}
{"data.department": "{{user.data.department}}"}
{"data.status": "approved"}
2. Prüfung der Benutzerbedingung Prüfe Benutzereigenschaften direkt mit user_condition. Benutzerfelder, die du prüfen kannst:
  • email – E-Mail des Benutzers
  • id – ID des Benutzers
  • role – Rolle des Benutzers
  • data.* – Eigene Benutzerfelder
Beispiel:
{"user_condition": {"role": "admin"}}
{"user_condition": {"data.level": "senior"}}
3. Komplexe Bedingungen Kombiniere mehrere Bedingungen mit Operatoren. Unterstützte Operatoren: $or, $and, $nor, $in, $nin, $all Beispiel:
{
  "$or": [
    {"created_by": "{{user.email}}"},
    {"user_condition": {"role": "admin"}}
  ]
}

Beispiel für Row Level Security (RLS)

Füge rls auf Entity-Ebene hinzu:
{
  "name": "task",
  "type": "object",
  "properties": {...},
  "rls": {
    "create": true,
    "read": {"created_by": "{{user.email}}"},
    "update": {"created_by": "{{user.email}}"},
    "delete": {"user_condition": {"role": "admin"}}
  }
}

Beispiel für Field Level Security (FLS)

Füge rls zu einzelnen Feld-Eigenschaften hinzu:
{
  "properties": {
    "salary": {
      "type": "number",
      "rls": {
        "read": {"user_condition": {"role": "admin"}},
        "write": {"user_condition": {"role": "admin"}}
      }
    }
  }
}

Vollständiges Beispiel mit Sicherheit

Hier ist ein Entity-Schema mit RLS und FLS:
{
  "name": "Task",
  "type": "object",
  "title": "Task",
  "description": "A task item with priority, due date, and completion status",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "description": {
      "type": "string",
      "maxLength": 1000
    },
    "priority": {
      "type": "string",
      "enum": ["low", "medium", "high"],
      "default": "medium"
    },
    "completed": {
      "type": "boolean",
      "default": false
    },
    "due_date": {
      "type": "string",
      "format": "date"
    },
    "tags": {
      "type": "array",
      "items": {"type": "string"}
    },
    "internal_notes": {
      "type": "string",
      "rls": {
        "read": {"user_condition": {"role": "admin"}},
        "write": {"user_condition": {"role": "admin"}}
      }
    }
  },
  "required": ["title"],
  "rls": {
    "create": true,
    "read": {"created_by": "{{user.email}}"},
    "update": {"created_by": "{{user.email}}"},
    "delete": {"created_by": "{{user.email}}"}
  }
}

Sicherheitsregeln deployen

Sicherheitsregeln sind Teil deines Entity-Schemas. Nach dem Hinzufügen oder Aktualisieren von Sicherheitsregeln deploye sie mit entities push. Sicherheitsregeln werden außerdem automatisch deployed, wenn du den deploy-Befehl ausführst, um dein gesamtes Projekt zu deployen.

Siehe auch

Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die englische Version.