Freigeben über


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:

  1. Fabric-Arbeitsbereich mit aktiver Kapazität oder Testkapazität
  2. Fabric-Warehouse oder SQL-Analyseendpunkt für ein Lakehouse
  3. 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

  1. 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).
  2. Ö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

  1. 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.

  2. 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 
    
  3. Ersetzen Sie YourSecurityPolicy durch Ihren Richtliniennamen, tvf_securitypredicate durch den Namen Ihrer Prädikatfunktion, sampleschema durch den Namen Ihres Schemas und sampletable durch den Namen Ihrer Zieltabelle.

  4. Ersetzen Sie UserName_column durch eine Spalte in Ihrer Tabelle, die Benutzernamen enthält.

  5. Ersetzen Sie WHERE @UserName = USER_NAME(); durch eine WHERE-Klausel, die dem gewünschten prädikatsbasierten Sicherheitsfilter entspricht. Dadurch werden beispielsweise die Daten gefiltert, bei denen die UserName-Spalte, die dem @UserName-Parameter zugeordnet ist, dem Ergebnis der Systemfunktion USER_NAME() entspricht.

  6. Wiederholen Sie diese Schritte, um bei Bedarf Sicherheitsrichtlinien für andere Tabellen zu erstellen.

3. Testen der Sicherheit auf Zeilenebene

  1. 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() 
    
  2. 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
    
  3. Ä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.