Share via


Sicherheit auf Spaltenebene in Fabric Data Warehousing

Gilt für: SQL-Analyseendpunkt und Warehouse in Microsoft Fabric

Sicherheit auf Spaltenebene vereinfacht das Entwerfen und Programmieren der Sicherheit in Ihrer Anwendung, indem Sie den Spaltenzugriff einschränken können, um vertrauliche Daten zu schützen. Zum Beispiel können Sie so sicherstellen, dass bestimmte Benutzer nur auf bestimmte Spalten einer Tabelle zugreifen können, die für ihre Abteilung relevant sind.

Sicherheit auf Spaltenebene für die Datenebene

Die Zugriffseinschränkungslogik befindet sich auf der Datenbankebene, nicht auf den einzelnen Anwendungsebenen. Die Datenbank wendet die Zugriffsbeschränkungen jedes Mal an, wenn ein Datenzugriff von einer beliebigen Anwendung oder Berichtsplattform (einschließlich Power BI) aus versucht wird. Dadurch bietet Ihr gesamtes Sicherheitssystem eine geringere Angriffsfläche und ist zuverlässiger und robuster.

Die Sicherheit auf Spaltenebene gilt nur für Abfragen für ein Warehouse oder einen SQL-Analyseendpunkt in Fabric. Bei Power BI-Abfragen für ein Warehouse im Direct Lake-Modus wird auf den Direktabfragemodus zurückgegriffen, um die Sicherheit auf Spaltenebene einzuhalten.

Einschränken des Zugriffs auf bestimmte Spalten für bestimmte Benutzer*innen

Darüber hinaus ist Sicherheit auf Spaltenebene einfacher als der Entwurf zusätzlicher Sichten zum Herausfiltern von Spalten, um den Benutzer*innen Zugangsbeschränkungen aufzuerlegen.

Implementieren Sie die Sicherheit auf Spaltenebene mit der T-SQL-Anweisung GRANT. Um die Verwaltung zu vereinfachen, wird die Zuweisung von Berechtigungen an Rollen der Verwendung von Einzelpersonen vorgezogen.

Sicherheit auf Spaltenebene wird auf freigegebene Warehouses oder Lakehouses angewendet, da sich die zugrunde liegende Datenquelle nicht geändert hat.

Es wird nur die Microsoft Entra Authentifizierung unterstützt.

Beispiele

In diesem Beispiel wird eine Tabelle erstellt, und es werden die Spalten beschränkt, die charlie@contoso.com in der Tabelle customers sehen kann.

CREATE TABLE dbo.Customers
  (CustomerID int,
   FirstName varchar(100) NULL,
   CreditCard char(16) NOT NULL,
   LastName varchar(100) NOT NULL,
   Phone varchar(12) NULL,
   Email varchar(100) NULL);

Wir erlauben Charlie, nur auf die Spalten zuzugreifen, die sich auf den Kunden beziehen, aber nicht auf die vertrauliche Spalte CreditCard:

GRANT SELECT ON Customers(CustomerID, FirstName, LastName, Phone, Email) TO [Charlie@contoso.com];

Bei Abfragen mit der Spalte CreditCard, die als charlie@contoso.com ausgeführt werden, tritt dann ein Fehler auf:

SELECT * FROM Customers;
Msg 230, Level 14, State 1, Line 12
The SELECT permission was denied on the column 'CreditCard' of the object 'Customers', database 'ContosoSales', schema 'dbo'.

Nächster Schritt