Power BI 報表設計的實用訣竅 (Power BI Report Design Tips)


  1. 目錄
    1. 根據使用者的角色決定可以看到的內容 (RLS, Row Level Security)
    2. 使用 REST API 與報表伺服器互動
    3. 深入的認識 Power BI Architecture
    4. 確認 Power BI 報表以及使用的排程

歸納整理 Power BI New Features ,盤點整理並納為自己設計報表時的解決方案選項。收錄包括利用報表的角色來控制報表的安全性。

logo

目錄

根據使用者的角色決定可以看到的內容 (RLS, Row Level Security)

角色的管理介面可以由 Power BI Desktop 工具面板「模型」中找到。

管理角色

可以依據業務邏輯的需求,創建不同的角色。接著是定義不同角色分別對於不同的資料表有不同的篩選檢視權限,這邊如果有複雜的邏輯,需要藉由 DAX 來輔助篩選的作業。

建立角色

在報表伺服器中,可以選取報表並為報表依照AD或者AD群者授予角色,如此一來擁有不同角色的使用者就會呈現不同的報表內容。

授權使用者角色

參考的 DAX Function

DAX - Username
MS Doc - RLS

使用 REST API 與報表伺服器互動

使用 REST API 與報表伺服器互動,能夠讓管理員以自動化的方式管理報表伺服器。可以進行的包括移除快取、取得資料夾及路徑下的檔案以及其他值得探索的功能 😏

取得報表伺服器的所有資料夾

https://localhost/reports/api/v2.0/Folders

查詢路徑包含關鍵字的報表項目

https://localhost/reports/api/v2.0/CatalogItems?$filter=Contains(Path,'keywords')

參考資料
MS Doc - 使用 Power BI 報表伺服器中的 REST API 進行開發
OData - Built-in Filter Operations & Built-in Query Functions

深入的認識 Power BI Architecture

ithome

確認 Power BI 報表以及使用的排程

SELECT Report.[ItemID]
	    ,Schedule.ScheduleID
      ,[Path]
      ,[Name]
FROM 
  [PowerBIReportServer].[dbo].[Catalog] AS Report
LEFT JOIN
  [PowerBIReportServer].[dbo].[ReportSchedule] AS Schedule 
ON Report.ItemID = Schedule.ReportID
WHERE Schedule.ScheduleID IS NOT NULL