如何針對資料倉儲團隊保護 lakehouse
簡介
本文將概述如何設定 Fabric 的 lakehouse 安全性,以便與具有 T-SQL 查詢的 SQL 使用者搭配使用。 這些使用者可能是透過 SQL 取用資料的商務分析師、報表建立者,或是建立新資料表與檢視的資料工程師。
安全性功能
Microsoft Fabric 使用多層安全性模型,在不同層級提供不同控制項,以便僅提供最低需求權限。 如需 Fabric 可用的不同安全性功能詳細資訊,請參閱 OneLake 資料存取控制模型。
在 Synapse 資料倉儲工作負載,倉儲與 SQL 分析端點項目也允許定義原生 SQL 安全性。 SQL 安全性使用完整 T-SQL 安全性建構程式庫來允許對項目資料表、檢視、資料列與資料行進行細微存取控制。 如需 SQL 安全性詳細資訊,請參閱 SQL 細微權限。
在倉儲或 SQL 分析端點設定的 SQL 權限僅適用針對倉儲或 SQL 分析端點執行的查詢。 基礎資料位於 OneLake,然而必須透過 OneLake 資料存取角色來單獨控制 OneLake 資料存取權。 為確保具有 SQL 特定權限的使用者無法看到其不具 SQL 存取權的資料,請勿將這些使用者納入 OneLake 資料存取角色。
按使用案例保護
Microsoft Fabric 已針對保護特定使用案例的資料最佳化安全性。 使用案例是一組需要特定存取權限的使用者,且其透過特定引擎存取資料。 對於 SQL 案例,部分常見使用案例如下:
- SQL 寫入者:此類使用者需要建立新資料表、檢視或將資料寫入現有資料表。
- SQL 讀取者:此類使用者需要使用 SQL 查詢來讀取資料。 其可直接存取 SQL 連線,或透過 Power BI 等其他服務來存取。
然後,我們可將每個使用案例與 Fabric 必要權限對齊。
SQL 寫入存取權
有兩種方式可向使用者授予倉儲或 SQL 分析端點的寫入存取權:
- 透過 Fabric 工作區角色,您可將成員資格授予三個可授予寫入權限的工作區角色。 每個角色會自動轉換為 SQL 的對應角色,該角色可授予相等寫入存取權。
- 向 SQL 引擎授予讀取存取權,並授予自訂 SQL 權限以寫入部分或所有資料。
若使用者需要工作區所有倉儲或 SQL 分析端點的寫入存取權,請向其指派工作區角色。 除非使用者需要向其他使用者指派工作區角色,否則應使用參與者角色。
若使用者僅需寫入特定倉儲或 SQL 分析,請透過 SQL 權限向其授予直接存取權限。
SQL 讀取存取權
有兩種方式可向使用者授予倉儲或 SQL 分析端點的讀取存取權:
- 透過 ReadData 權限授予讀取存取權,該權限作為 Fabric 工作區角色的一部分授予。 所有四個工作區角色均授予 ReadData 權限。
- 向 SQL 引擎授予讀取存取權,並授予自訂 SQL 權限,以讀取部分或所有資料。
若使用者是 Fabric 工作區角色的成員,則向其授予 ReadData 權限。 ReadData 權限會將使用者對應至 SQL 角色,該角色會對倉儲或 lakehouse 的所有資料表授予 SELECT 權限。 若使用者需要查看 lakehouse 或倉儲的所有或大部分資料,則此權限將非常實用。 在特定 lakehouse 或倉儲設定的任何 SQL DENY 權限仍將適用,並限制對資料表的存取權限。 此外,可在資料表設定資料列與資料行層級安全性,以更細微的方式限制存取。
若使用者僅需要存取特定 lakehouse 或倉儲,則共用功能僅提供共用項目存取權。 在共用期間,使用者可選擇僅授予讀取權限或讀取 + ReadData。 授予讀取權限可讓使用者連線倉儲或 SQL 分析端點,但不授予資料表存取權限。 授予使用者 ReadData 權限可給予其完整讀取存取權以存取倉儲或 SQL 分析端點的所有資料表。 這兩種案例均可設定額外 SQL 安全性,針對特定資料表授予或拒絕存取權。 此 SQL 安全性可包括細微存取控制,例如資料列或資料行層級安全性。
與捷徑搭配使用
捷徑是 OneLake 功能,可讓您從單一位置參考資料而無需複製實體資料。 捷徑是功能強大的工具,可讓您在其他位置輕鬆重複使用來自單一 lakehouse 的資料,而無需複製資料複本。
Fabric 的倉儲不支援捷徑。 然而,lakehouse 的 SQL 分析端點在與捷徑互動時會顯示特殊行為。
在透過 SQL 分析端點查詢時,會以委派模式存取 lakehouse 的所有捷徑。 委派的身分是擁有 lakehouse 的 Fabric 使用者。 根據預設,擁有者是建立 lakehouse 與 SQL 分析端點的使用者。 在特定情況可變更擁有者,當檢視工作區項目清單的項目時,目前擁有者會顯示在 Fabric 的擁有者資料行。 委派行為表示,若擁有者(而非執行查詢的使用者)擁有基礎資料存取權,則查詢使用者可從捷徑資料表讀取資料。 查詢使用者僅需擁有選取捷徑資料表的存取權限。
注意
例如,UserA 是 lakehouse 的擁有者,而 UserB 正在對捷徑資料表執行查詢。 UserB 首先必須擁有資料表的讀取存取權(不論是透過 ReadData 還是 SQL 權限)。 為查看資料,查詢會檢查 UserA 是否具有該捷徑的存取權限。 若 UserA 具存取權限,則 UserB 將看到查詢結果。 若 UserA 不具存取權限,查詢將失敗。
對於使用 OneLake 資料存取角色功能的 lakehouse,捷徑存取權取決於 SQL 分析端點擁有者是否有權查看目標 lakehouse,並透過 OneLake 資料存取角色讀取資料表。
對於尚未使用 OneLake 資料存取角色功能的 lakehouse,捷徑存取權取決於 SQL 分析端點擁有者在目標路徑是否具有讀取與 ReadAll 權限。