Row Level Security (RLS)

Was hat die neue Funktion „Row Level Security“ zu bedeuten, und wie wird diese eingesetzt?
RLS bedeutet nichts anderes als „Daten auf Zeilenebene“ richtlinienbasierend zu filtern bzw. zu blockieren.
Man unterscheidet zwischen der Filterung (SELECT) und Blockierung (INSERT, UPDATE, DELETE). Dieser Zugriff wird durch ein Sicherheitsprädikat beschränkt, dass vorher über eine Tabellenwertfunktion angelegt werden muss. So wird bei jeder Ausführung die Prüfung aufgerufen und durch die Sicherheitsrichtlinie erzwungen. In diesem Video zeige ich die Funktionalität und deren Anwendung. Unterscheiden Sie bitte, dass auch Administratoren nicht unbedingt alle Daten zu Gesicht bekommen dürfen. Hier kommt RLS ins Spiel und hilft mit entsprechender Funktionalität Maßnahmen einzuleiten. Beachten Sie auch die Laufzeitverhalten, da mit jeder Ausführung die Richtlinie greift.

Create Function [dbo].[fn_BuchungsJahr](@Jahr int)
RETURNS TABLE WITH SCHEMABINDING
AS RETURN
SELECT 1 as fn_BuchungsJahr_Ergebnis
WHERE @Jahr IN (2020,2021,2022)
OR USER_NAME() = 'Admin';
Create Security Policy Buchungsfilter
ADD FILTER PREDICATE Sicherheit.fn_Buchungsfilter(Jahr) ON dbo.tblBestellungen
WITH (STATE = ON);

CREATE USER MGS WITHOUT LOGIN;
GRANT SELECT dbo.tblBestellungen TO MGS;
EXECUTE AS USER = 'MGS';
--Hier sehen Sie die gefilterten Daten
SELECT * FROM dbo.tblBestellungen;
Facebook
Twitter
LinkedIn
WhatsApp
Email