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.
Download
Links:
- Row-Level Security
- Aveeks Das – Introduction to Row-Level Security in SQL Server
- Pradeep Raturi – Row Level Security in SQL Server
- Jeff Melnick – How to Implement Row and Column Level Security in SQL Server
- Manoj – Implementing “Row Level Security” (RLS) with “Filter Predicate” in SQL Server 2016 – Part 1 | Part 2
- SQL-Server-Team – Row-Level Security: Performance and common patters
- Tommy Mullaney – New Row-Level Security functionality: Block predicates
- Basavaraj Biradar – Row level security in Sql Server 2016