使用靜態方法設定資料列層級安全性
數據 列層級安全性中的靜態方法 (RLS) 會使用 DAX 篩選中的固定值,而動態方法則使用 DAX 函式。
RLS 涉及數個設定步驟,且這些步驟應依照下列順序完成:
在 Microsoft Power BI Desktop 中建立報表。
匯入資料。
確認這兩個數據表之間的語意模型。
建立報表視覺效果。
使用 DAX 在 Power BI Desktop 中建立 RLS 角色。
在 Power BI Desktop 中測試角色。
將報表部署至 Microsoft Power BI 服務。
在 Power BI 服務中將成員新增至角色。
在 Power BI 服務中測試角色。
在 Power BI Desktop 中建立報表
遵循一般步驟以在 Power BI Desktop 中建立報表。 使用 Microsoft Power Query 來擷取及清理資料。 然後,使用 [模型] 索引標籤確認兩個資料表之間存在關聯性;其在 empID 資料行上應為一對多關聯性。
下一個步驟是建立 Power BI 報表。
請注意資料表包括所有部門的所有銷售資料列。 您將會限制可見度,讓特定部門員工只能看見其部門的銷售。
在 Power BI Desktop 中建立 RLS 角色
若要在 Power BI Desktop 中建立 RLS 角色,請選取 [模型] 索引標籤,然後選取 [管理角色]。
在 [管理角色] 頁面上,選取 [建立]。
Power BI 資料列層級安全性 (RLS) 使用 DAX 來控制哪些人可查看的資料為何。 您可將其視為是無論使用者在 Power BI 報表上選擇的篩選、交叉分析篩選器或互動為何,皆一律將另一個篩選新增至適當的使用者。
在 [管理角色] 頁面上,為每個部門建立角色,然後將 DAX 運算式新增至其中。 例如,您可建立名為 Game 的角色,然後新增 DAX 運算式 [department] = "Game"。 接著,每次該角色的成員與報表互動時,Power BI 就會將該篩選新增至其互動,進而限制其看到的內容。
在篩選中會在等號的右側使用固定值 (在此案例中為 "Game")。 這表示如果需要新增類別,即必須在 DAX 運算式中使用新值來建立新的角色。
請注意在維度資料表中套用 DAX 篩選的方式。 以星型結構描述組織資料時,資料列層級安全性的執行效果比較好。 將 DAX 篩選套用到維度資料表,如同對 Products 資料表執行的操作。
DAX 篩選會套用到使用者套用的每個互動、交叉分析篩選器和篩選。 若具有執行不佳的 DAX 篩選,使用者體驗即會受到負面影響。 因此,請盡可能讓 DAX 篩選保持簡單。
在 Power BI Desktop 中測試角色
您可透過選取 [建立模型] 索引標籤,然後選取 [以角色檢視] 來驗證該篩選。
在 [以角色身分檢視] 視窗中,選取 Game 角色。 報表現在會根據該角色進行轉譯,彷彿您正在該角色中,且您只會看見包含在 Game 部門中的記錄。
您可透過再次選取 [以角色身分檢視],然後選取 [無] 來還原此篩選。
將報表部署至 Power BI 服務
您可透過選取 [首頁] 索引標籤上的 [發佈] 按鈕,然後選取工作區,以將報表部署至 Power BI 服務。
在 Power BI 服務中將成員新增至角色
若要在 Power BI 服務中將成員新增至角色,請在 Power BI 服務中前往工作區。 尋找您使用與報表同名建立的語意模型。 選取省略符號 (…) 按鈕,然後選取 [安全性]。
在 [數據列層級安全性] 畫面中,您可以將 Microsoft Entra ID 使用者和安全組新增至安全性角色。 將成員新增至此角色時,先前所定義的 DAX 篩選即會套用到這些角色。 如果成員未新增至角色卻可存取報表,則 RLS 就不會套用到這些成員。 您可將三個 Game 部門中的人員新增至 Game 角色。 現在當這些成員登入時,就只會看到包含其所適用資料的報表。
在 Power BI 服務中測試角色
您可透過選取 [資料列層級安全性] 畫面上位於 Game 角色旁邊的省略符號 (…),然後選取 [以角色測試] 來測試角色。
這項選取會在 Power BI 服務中,根據角色成員身分來顯示報表。
就是這麼簡單! 我們已在 Power BI 中成功實作資料列層級安全性。