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

2020-09-22

歸納整理 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