Implementieren der Sicherheit auf Zeilenebene beim Data Warehousing in Microsoft Fabric
Gilt für:✅ SQL-Analyseendpunkt und Warehouse in Microsoft Fabric
Mit der Sicherheit auf Zeilenebene (Row-level Security, RLS) für ein Fabric-Warehouse und einen SQL-Analyseendpunkt können Sie den Zugriff auf Zeilen in einer Datenbanktabelle basierend auf Benutzerrollen und Prädikaten steuern. Weitere Informationen finden Sie unter Sicherheit auf Zeilenebene beim Data Warehousing in Fabric.
Dieser Leitfaden führt Sie durch die Schritte zum Implementieren der Sicherheit auf Zeilenebene für ein Microsoft Fabric-Warehouse oder einen SQL-Analyseendpunkt.
Voraussetzungen
Bevor Sie beginnen, sollten Sie sicherstellen, dass Folgendes vorhanden ist:
- Fabric-Arbeitsbereich mit aktiver Kapazität oder Testkapazität
- Fabric-Warehouse oder SQL-Analyseendpunkt für ein Lakehouse
- Berechtigungen der Rolle „Administrator“, „Mitglied“ oder „Mitwirkender“ für den Arbeitsbereich oder erhöhte Berechtigungen für das Warehouse oder den SQL-Analyseendpunkt
1. Verbinden
- Melden Sie sich mit einem Konto mit erhöhten Berechtigungen für das Warehouse oder den SQL-Analyseendpunkt an. (Rolle „Administrator“, „Mitglied“ oder „Mitwirkender“ für den Arbeitsbereich oder Zugriffsberechtigungen für das Warehouse oder den SQL-Analyseendpunkt).
- Öffnen Sie den Fabric-Arbeitsbereich und navigieren Sie zum Warehouse oder SQL-Analyseendpunkt, für das bzw. den Sie die Sicherheit auf Zeilenebene anwenden möchten.
2. Definieren von Sicherheitsrichtlinien
Bestimmen Sie die Rollen und Prädikate, die Sie verwenden möchten, um den Zugriff auf Daten zu steuern. Rollen definieren, wer auf Daten zugreifen kann, und Prädikate definieren die Kriterien für den Zugriff.
Erstellen Sie Sicherheitsprädikate. Sicherheitsprädikate sind Bedingungen, die bestimmen, auf welche Zeilen Benutzer*innen zugreifen können. Sie können Sicherheitsprädikate als Inline-Tabellenwertfunktionen erstellen. Bei dieser einfachen Übung wird davon ausgegangen, dass in Ihrer Datentabelle die Spalte
UserName_column
vorhanden ist, die den relevanten Benutzernamen enthält und von der Systemfunktion USER_NAME() aufgefüllt wird.-- Creating schema for Security CREATE SCHEMA Security; GO -- Creating a function for the SalesRep evaluation CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50)) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS tvf_securitypredicate_result WHERE @UserName = USER_NAME(); GO -- Using the function to create a Security Policy CREATE SECURITY POLICY YourSecurityPolicy ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column) ON sampleschema.sampletable WITH (STATE = ON); GO
Ersetzen Sie
YourSecurityPolicy
durch Ihren Richtliniennamen,tvf_securitypredicate
durch den Namen Ihrer Prädikatfunktion,sampleschema
durch den Namen Ihres Schemas undsampletable
durch den Namen Ihrer Zieltabelle.Ersetzen Sie
UserName_column
durch eine Spalte in Ihrer Tabelle, die Benutzernamen enthält.Ersetzen Sie
WHERE @UserName = USER_NAME();
durch eineWHERE
-Klausel, die dem gewünschten prädikatsbasierten Sicherheitsfilter entspricht. Dadurch werden beispielsweise die Daten gefiltert, bei denen dieUserName
-Spalte, die dem@UserName
-Parameter zugeordnet ist, dem Ergebnis der Systemfunktion USER_NAME() entspricht.Wiederholen Sie diese Schritte, um bei Bedarf Sicherheitsrichtlinien für andere Tabellen zu erstellen.
3. Testen der Sicherheit auf Zeilenebene
Melden Sie sich bei Fabric als Benutzer*in mit einer Rolle an, der eine Sicherheitsrichtlinie zugeordnet ist. Verwenden Sie die folgende Abfrage, um den Wert zu überprüfen, der mit dem Wert in der Tabelle übereinstimmen soll.
SELECT USER_NAME()
Fragen Sie die Datenbanktabellen ab, um zu überprüfen, ob die Sicherheit auf Zeilenebene wie erwartet funktioniert. Den Benutzer*innen sollten nur Daten angezeigt werden, die dem Sicherheitsprädikat entsprechen, das in ihrer Rolle definiert ist. Zum Beispiel:
SELECT * FROM sampleschema.sampletable
Ähnliche gefilterte Ergebnisse für die Benutzer*innen werden mit anderen Anwendungen gefiltert, die die Microsoft Entra Authentifizierung für den Datenbankzugriff verwenden. Weitere Informationen zur Microsoft Entra-Authentifizierung als Alternative zur SQL-Authentifizierung in Microsoft Fabric.
4. Überwachen und Verwalten der Sicherheit auf Zeilenebene
Überwachen und aktualisieren Sie regelmäßig Ihre Richtlinien für die Sicherheit auf Zeilenebene, da sich Ihre Sicherheitsanforderungen ändern. Verfolgen Sie Rollenzuweisungen nach, und stellen Sie sicher, dass Benutzer*innen über die entsprechenden Zugriffsberechtigungen verfügen.