So sichern Sie ein Lakehouse für Teams zur Datenspeicherung
Einführung
In diesem Artikel finden Sie eine Übersicht über die Konfiguration der Sicherheit für ein Lakehouse in Fabric für die Verwendung mit SQL-Benutzern mit T-SQL-Abfragen. Diese Benutzer könnten Business Analysts sein, die Daten über SQL, Berichts-Generatoren oder Technische Fachkräfte für Daten verwenden, um neue Tabellen und Anzeigen zu erstellen.
Sicherheitsfeatures
Microsoft Fabric verwendet ein Sicherheitsmodell mit mehreren Ebenen und unterschiedlichen Steuerelementen, die auf unterschiedlichen Ebenen verfügbar sind, um nur die minimal erforderlichen Berechtigungen bereitzustellen. Weitere Informationen zu den verschiedenen Sicherheitsfeatures, die in Fabric verfügbar sind, finden Sie in Datenzugriffssteuerungsmodell in OneLake.
In der Fabric Data Warehouse-Workload ermöglichen die Lager- und SQL-Analyseendpunktelemente auch die Definition der systemeigenen SQL-Sicherheit. SQL-Sicherheit verwendet die vollständige Bibliothek von T-SQL-Sicherheitskonstrukten, um eine präzise Zugriffssteuerung von Tabellen, Anzeigen, Zeilen und Spalten innerhalb eines Elements zu ermöglichen. Weitere Informationen über SQL-Sicherheit finden Sie unter detaillierte SQL-Berechtigungen.
Die SQL-Berechtigungen, die im Lagerort oder SQL-Analyse-Endpunkt konfiguriert sind, gelten nur für Abfragen, die für den Lagerort oder SQL–Analyse-Endpunkt ausgeführt werden. Die zugrunde liegenden Daten befinden sich in OneLake, der Zugriff auf OneLake-Daten wird jedoch separat über OneLake-Datenzugriffsrollen gesteuert. Um sicherzustellen, dass Benutzern mit SQL-spezifischen Berechtigungen keine Daten angezeigt werden, auf die sie keinen SQL-Zugriff haben, schließen Sie diese Benutzer nicht in eine OneLake-Datenzugriffsrolle ein.
Sicher nach Anwendungsfall
Die Sicherheit in Microsoft Fabric ist für die Sicherung von Daten für bestimmte Anwendungsfälle optimiert. Ein Anwendungsfall ist eine Gruppe von Benutzern, die spezifischen Zugriff und Zugriff auf Daten über eine bestimmte Engine benötigen. Für SQL-Szenarios sind häufige Anwendungsfälle:
- SQL Writer: Benutzer, die neue Tabellen kreieren, anzeigen oder Daten in vorhandene Tabellen schreiben müssen.
- SQL-Leser: Benutzer, die Daten mithilfe von SQL-Abfragen lesen müssen. Sie können direkt oder über einen anderen Dienst wie Power BI auf die SQL-Verbindung zugreifen.
Anschließend können wir jeden Anwendungsfall mit den erforderlichen Berechtigungen in Fabric ausrichten.
SQL-Schreibzugriff
Es gibt zwei Möglichkeiten, wie ein Benutzer Schreibzugriff auf einen Lagerort oder SQL-Analyseendpunkt zugewiesen bekommt:
- Über Fabric-Arbeitsbereichsrollen können Sie Mitgliedschaft zu drei Arbeitsbereichsrollen zugewiesen bekommen, die Schreibberechtigungen erteilen. Jede Rolle wird automatisch in eine entsprechende Rolle in SQL übersetzt, die gleichwertigen Schreibzugriff gewährt.
- Gewähren Sie Lesezugriff auf das SQL-Modul, und erteilen Sie benutzerdefinierte SQL-Berechtigungen, um in einige oder alle Daten zu schreiben.
Wenn ein Benutzer Schreibzugriff auf alle Lagerorte und SQL-Analyseendpunkte in einem Arbeitsbereich benötigt, weisen Sie ihm eine Arbeitsbereichsrolle zu. Außer im Fall, dass ein Benutzer anderen Benutzern Arbeitsbereichsrollen zuweisen muss, sollte die Rolle Mitwirkender verwendet werden.
Wenn ein Benutzer nur in bestimmte Lagerorte und SQL-Analyseendpunkte schreiben muss, gewähren Sie ihm direkten Zugriff über SQL-Berechtigungen.
SQL-Lesezugriff
Es gibt zwei Möglichkeiten, wie ein Benutzer Lesezugriff auf einen Lagerort oder SQL-Analyseendpunkt zugewiesen bekommt:
- Gewähren Sie Lesezugriff durch die ReadData-Berechtigung, die als Teil der Fabric-Arbeitsbereichsrollen gewährt wird. Alle vier Arbeitsbereichsrollen weisen die ReadData-Berechtigung zu.
- Gewähren Sie Lesezugriff auf den SQL-Engine, und erteilen Sie benutzerdefinierte SQL-Berechtigungen, um einige oder alle Daten zu lesen.
Wenn ein Benutzer Mitglied einer Fabric-Arbeitsbereichsrolle ist, erhält er die ReadData-Berechtigung. Die ReadData-Berechtigung ordnet den Benutzer einer SQL-Rolle zu, die SELECT-Berechtigungen für alle Tabellen im Lagerort oder Lakehouse erteilt. Diese Berechtigung ist hilfreich, wenn ein Benutzer alle oder die meisten Daten im Lakehouse oder Lagerort sehen muss. Alle SQL-VERWEIGERUNGS-Berechtigungen, die für ein bestimmtes Lakehouse oder einen Lagerort festgelegt sind, gelten weiterhin und beschränken den Zugriff auf Tabellen. Darüber hinaus kann die Sicherheit auf Zeilen- und Spaltenebene für Tabellen festgelegt werden, um den Zugriff auf granulare Ebene einzuschränken.
Wenn ein Benutzer nur Zugriff auf ein bestimmtes Lakehouse oder einen Lagerort benötigt, bietet die Freigabefunktion nur Zugriff auf das freigegebene Element. Während der Freigabe können Benutzer wählen nur die Leseberechtigung oder Lesen + ReadData erteilen. Die Zuweisung von Leseberechtigungen ermöglichen es dem Benutzer eine Verbindung mit dem Lagerort oder SQL-Analyseendpunkt herzustellen, bietet jedoch keinen Tabellenzugriff. Wenn Benutzern die ReadData-Berechtigungen erteilt werden, erhalten sie vollständigen Lesezugriff auf alle Tabellen im Lagerort oder SQL-Analyseendpunkt. In beiden Fällen kann zusätzliche SQL-Sicherheit so konfiguriert werden, dass der Zugriff auf bestimmte Tabellen gewährt oder verweigert wird. Diese SQL-Sicherheit kann eine präzise Zugriffssteuerung wie z. B. Die Sicherheit auf Zeilen- oder Spaltenebene umfassen.
Verwenden mit Verknüpfungen
Verknüpfungen sind ein OneLake-Feature, mit dem Daten von einem Speicherort aus referenziert werden können, ohne die Daten physisch zu kopieren. Verknüpfungen sind ein leistungsfähiges Tool, mit dem Daten aus einem Lakehouse an anderen Standorten problemlos wiederverwendet werden können, ohne dass duplizierte Kopien von Daten erstellt werden müssen.
Lagerorte in Fabric unterstützen keine Verknüpfungen. Es gibt jedoch ein spezielles Verhalten für die Interaktion des SQL-Analyseendpunkts für ein Lakehouse mit Verknüpfungen.
Auf alle Verknüpfungen in einem Lakehouse wird beim Abfragen über den SQL-Analyseendpunkt im delegierten Modus zugegriffen. Die delegierte Identität ist der Fabric-Benutzer, der das Lakehouse besitzt. Standardmäßig ist der Besitzer der Benutzer, der den Lakehouse- und SQL-Analyseendpunkt erstellt hat. Der Besitzer kann in ausgewählten Fällen geändert werden, und der aktuelle Besitzer wird in der Spalte Besitzer in Fabric angezeigt, wenn das Element in der Arbeitsbereichselementliste angezeigt wird. Das delegierte Verhalten bedeutet, dass ein Abfragebenutzer aus Verknüpfungstabellen lesen kann, wenn der Besitzer Zugriff auf die zugrunde liegenden Daten hat und nicht der Benutzer die Abfrage ausführt. Der Abfragebenutzer benötigt nur Zugriff, um aus der Verknüpfungstabelle auszuwählen.
Hinweis
Beispielsweise ist UserA der Besitzer eines Lakehouse, und UserB führt eine Abfrage für eine Tabelle aus, die eine Verknüpfung ist. UserB muss zuerst Lesezugriff auf die Tabelle haben, sei es über ReadData oder über SQL-Berechtigungen. Um Daten anzuzeigen, überprüft die Abfrage dann, ob UserA Zugriff auf die Verknüpfung hat. Wenn UserA Zugriff hat, sieht UserB die Abfrageergebnisse. Wenn UserA keinen Zugriff hat, schlägt die Abfrage fehl.
Für Lakehouses, die die OneLake-Datenzugriffsrollen verwenden, wird der Zugriff auf eine Verknüpfung bestimmt, indem der SQL-Analyseendpunktbesitzer Zugriff hat, um das Ziel-Lakehouse anzuzeigen und die Tabelle über eine OneLake-Datenzugriffsrolle zu lesen.
Für Lakehouses, die das Feature OneLake-Datenzugriffsrollen noch nicht verwenden, wird der Verknüpfungszugriff darüber bestimmt, ob der SQL-Analyseendpunktbesitzer über die Berechtigung Lesen und ReadAll für den Zielpfad verfügt.