Zum Inhalt springen

Glossar · R

Row-Level-Security

Datenbank-Funktion, die Lese- und Schreibrechte zeilenweise einschränkt. Pflicht-Werkzeug für Multi-Tenant-Architekturen.

Definition

Row-Level-Security (RLS) ist eine Sicherheitsfunktion in Datenbanksystemen, die es ermöglicht, den Zugriff auf Daten auf Zeilenebene zu steuern. Dies bedeutet, dass unterschiedliche Benutzer oder Benutzergruppen unterschiedliche Berechtigungen für das Lesen oder Schreiben bestimmter Datensätze innerhalb derselben Tabelle haben können. RLS wird häufig in Anwendungen eingesetzt, in denen mehrere Mandanten auf dieselbe Datenbank zugreifen, um sicherzustellen, dass die Daten eines Mandanten nicht für andere Mandanten sichtbar sind.

Die Implementierung von RLS erfolgt in der Regel durch die Definition von Sicherheitsrichtlinien, die festlegen, welche Zeilen für welchen Benutzer oder welche Benutzergruppe zugänglich sind. Diese Richtlinien können auf verschiedenen Kriterien basieren, wie z.B. Benutzerrollen, Abteilungszugehörigkeit oder spezifischen Attributen der Datenzeilen.

Was bedeutet das für Ihr Unternehmen?

Row-Level-Security ist eine zusätzliche Sicherung für Plattformen, auf denen mehrere Kunden oder Standorte Daten in derselben Datenbank ablegen. Selbst wenn in der Anwendung eine Prüfung vergessen wird, verhindert die Datenbank, dass ein Kunde Datensätze eines anderen zu sehen bekommt. Der Preis sind etwas mehr Planungs- und Testaufwand sowie eine Datenbank wie PostgreSQL, die diese Funktion unterstützt.

Hintergrund

Die Notwendigkeit für Row-Level-Security entstand mit der zunehmenden Verbreitung von Multi-Tenant-Architekturen, bei denen mehrere Kunden dieselbe Datenbankinfrastruktur nutzen. Ohne RLS könnten Daten eines Mandanten versehentlich für andere Mandanten sichtbar werden, was schwerwiegende Datenschutzprobleme verursachen könnte. RLS hilft, diese Risiken zu minimieren und die Datenintegrität zu gewährleisten.

Die Einführung von RLS wurde in verschiedenen Datenbanksystemen standardisiert. Microsoft SQL Server führte RLS mit der Version 2016 ein, während PostgreSQL RLS bereits in Version 9.5 unterstützte. Diese Entwicklungen haben RLS zu einem wichtigen Bestandteil moderner Datenbankmanagementsysteme gemacht.

Funktionsweise

Row-Level-Security funktioniert durch die Definition von Sicherheitsrichtlinien, die auf Tabellen angewendet werden. Diese Richtlinien bestehen aus Filterausdrücken, die bestimmen, welche Zeilen für einen bestimmten Benutzer sichtbar sind. Bei jeder Abfrage, die auf die Tabelle zugreift, wird der Filter automatisch angewendet, sodass nur die relevanten Zeilen zurückgegeben werden.

Zusätzlich zur Filterung von Lesezugriffen kann RLS auch Schreibzugriffe steuern. Dies geschieht durch die Definition von Berechtigungen, die festlegen, welche Benutzer Änderungen an bestimmten Zeilen vornehmen dürfen. Auf diese Weise wird sichergestellt, dass nur autorisierte Benutzer Daten ändern können, die für sie bestimmt sind.

Einsatzgebiete

Row-Level-Security findet Anwendung in einer Vielzahl von Szenarien, insbesondere in Multi-Tenant-Anwendungen, in denen mehrere Kunden auf dieselbe Datenbank zugreifen. Beispiele hierfür sind SaaS-Plattformen, in denen verschiedene Unternehmen ihre Daten in einer gemeinsamen Umgebung speichern, jedoch sicherstellen müssen, dass ihre Daten vor anderen Unternehmen geschützt sind.

Ein weiteres Einsatzgebiet sind Unternehmen, die sensible Daten verwalten, wie z.B. im Gesundheitswesen oder im Finanzsektor. Hier ist es entscheidend, dass nur autorisierte Benutzer Zugriff auf bestimmte Datensätze haben, um Datenschutzvorschriften einzuhalten und das Vertrauen der Kunden zu wahren.

Abgrenzung

Row-Level-Security unterscheidet sich von anderen Sicherheitsmechanismen, wie z.B. der Spaltenebene-Sicherheit, die den Zugriff auf bestimmte Spalten innerhalb einer Tabelle steuert. Während RLS den Zugriff auf ganze Zeilen reguliert, ermöglicht die Spaltenebene-Sicherheit eine differenzierte Kontrolle über die Sichtbarkeit von spezifischen Attributen in den Datensätzen.

Ein weiterer verwandter Begriff ist die Sichtbarkeitssteuerung, die in vielen Datenbanksystemen implementiert ist. Im Gegensatz zu RLS, das auf Zeilenebene arbeitet, bezieht sich die Sichtbarkeitssteuerung oft auf die gesamte Tabelle oder Datenbank und bietet weniger granulare Kontrolle über den Zugriff auf Daten.

Verwandte Begriffe

Aus dem Blog

Passende Leistung

Sie möchten wissen, was das für Ihr Projekt bedeutet? Sprechen Sie uns an.

Zur Leistung: SaaS, Portale