> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sicherheit

> Steuere den Zugriff auf deine Entity-Daten mit Sicherheitsregeln auf Zeilen- und Feldebene.

<div className="dev-docs-banner">
  <div className="dev-docs-banner-content">
    <div className="dev-docs-banner-title">
      Du siehst gerade die Entwicklerdokumentation
    </div>

    <div className="dev-docs-banner-text">
      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 <a href="/Building-your-app/Managing-your-app-data">App-Daten verwalten</a>.
    </div>
  </div>
</div>

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:

```json theme={null}
{"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:

```json theme={null}
{"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:

```json theme={null}
{
  "$or": [
    {"created_by": "{{user.email}}"},
    {"user_condition": {"role": "admin"}}
  ]
}
```

## Beispiel für Row Level Security (RLS)

Füge `rls` auf Entity-Ebene hinzu:

```json theme={null}
{
  "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:

```json theme={null}
{
  "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:

```json theme={null}
{
  "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`](/developers/references/cli/commands/entities-push). Sicherheitsregeln werden außerdem automatisch deployed, wenn du den [`deploy`](/developers/references/cli/commands/deploy)-Befehl ausführst, um dein gesamtes Projekt zu deployen.

## Siehe auch

* [Entitäten – Übersicht](/developers/backend/resources/entities/overview): Lerne mehr über die Datenbankschema-Konfiguration
* [Entity-Schemas](/developers/backend/resources/entities/entity-schemas): Definiere deine Entitätsstruktur
* [User-Schema](/developers/backend/resources/entities/user-schema): Spezielle eingebaute Entität für Benutzer-Authentifizierung
* [Projektstruktur](/developers/backend/overview/project-structure): Wie Entity-Schemas in dein Projekt passen

<Note>Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die [englische Version](/). </Note>
