Share via


Fabric 數據倉儲中的數據行層級安全性

適用於: Microsoft Fabric 中的 SQL 分析端點和倉儲

數據行層級安全性可簡化應用程式中安全性的設計和編碼,讓您限制數據行存取以保護敏感數據。 例如,確保特定使用者只能存取與其部門相關的數據表特定數據行。

數據層級的數據行層級安全性

存取限制邏輯位於資料庫層中,而不是在任何單一應用層中。 資料庫會在每次嘗試數據存取時,從包括 Power BI 在內的任何應用程式或報告平臺套用存取限制。 這項限制可藉由減少整體安全性系統的介面區,讓您的安全性更加可靠且健全。

數據行層級安全性僅適用於 Fabric 中倉儲或 SQL 分析端點上的查詢。 Direct Lake 模式中倉儲上的 Power BI 查詢將會回復為直接查詢模式,以遵守數據行層級安全性。

將特定數據行的存取限制為特定使用者

此外,數據行層級安全性更簡單,而且比設計其他 檢視 來篩選出數據行,以對使用者施加存取限制。

使用 GRANT T-SQL 語句實作數據行層級安全性。 為了簡化管理,最好使用個人將許可權指派給角色。

數據行層級安全性會套用至 共用倉儲或 Lakehouse,因為基礎數據源尚未變更。

僅支援 Microsoft Entra 驗證。

範例

此範例會建立數據表,並將限制 charlie@contoso.com 可在數據表中看到的數據 customers 行。

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);

我們將允許 Charlie 只存取與客戶相關的數據行,但不允許敏感性 CreditCard 數據行:

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

如果查詢包含資料列,CreditCard則執行為 charlie@contoso.com 的查詢將會失敗:

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

後續步驟