Einleitung

Row-Level security (RLS) erlaubt es den Entwicklern Kontrolle über die Informationen zeilenweise gefiltert werden.

Das Konzept der RLS besteht aus 3 Teilen:

  • Predicate Function – hierbei handelt es sich um eine Schema Funktion über die gesteuert wird, was der User sehen darf oder nicht
  • Security Predicate – Über ein Security Predicate wird die Predicate Function an die Tabelle gebunden. Es gibt 2 Arten von Security Predicates:
    • Filter Predicate – hierbei wird die Lese (Read) Operation (Select) limitiert. Die Filterung erfolgt ohne Einträge in den Eventlog.
    • Block Predicate – hierbei werden die Schreibzugriffe (INSERT) limitiert. Dabei wird zwischen 4 Typen von Block Predicates unterschieden:
      • AFTER INSERT
      • BEFORE UPDATE
      • AFTER UPDATE
      • BEFORE DELETE
  • Security Policy – dabei handelt es sich um eine Sammlung von Securite Predicates in ein einzelnes neues Projekt.

einfache Datenbank ohne Security

Erweiterung um einen Filter Predicate

Implementing “Row Level Security” (RLS) with “Filter Predicate” in SQL  Server 2016 – Part 1 | SQL with Manoj
Quelle

Einschränkungen durch Block Predicate

Links: