翻譯|使用教程|編輯:況魚杰|2020-03-16 10:06:58.050|閱讀 460 次
概述:本教程將通過使用示例數據集完成以下步驟來演示如何在 Analysis Services 表格模型中實現行級別安全性以及如何在 Power BI 報表中使用它。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
使用 Power BI Desktop 從數據獲得見解,然后進行相關操作利用可視化分析免費創建內容豐富的交互式報表,一切盡在指尖。
本教程將通過使用示例數據集完成以下步驟來演示如何在 Analysis Services 表格模型中實現行級別安全性以及如何在 Power BI 報表中使用它。
注意:本教程要求使用AdventureworksDW2012 數據庫
創建用戶安全表并定義數據關系
可以找到許多介紹如何使用 SQL Server Analysis Services (SSAS) 表格 模型定義行級別動態安全性的文章。
在 AdventureworksDW2012 中,創建 DimUserSecurity 表,如下所示。可以使用 SQL Server Management Studio (SSMS) 來創建表。
創建并保存表后,需要在 DimUserSecurity 表的 SalesTerritoryID 列與 DimSalesTerritory 表的 SalesTerritoryKey 列之間建立關系,如下所示。
在 SSMS 中,右鍵單擊 DimUserSecurity ,然后選擇“設計” 。然后,選擇“表設計器” > “關系...” 。完成后,保存表。
將用戶添加到表。 右鍵單擊 DimUserSecurity ,然后選擇“編輯前 200 行” 。添加了用戶后,DimUserSecurity 表應類似于以下示例(你在即將開始的任務中將看到這些用戶):
接下來,使用 DimSalesTerritory 表執行內部聯接 ,該表顯示與用戶關聯的區域詳細信息。此處的 SQL 代碼執行內部聯接,下圖顯示表隨后的顯示形式。
select b.SalesTerritoryCountry, b.SalesTerritoryRegion, a.EmployeeID, a.FirstName, a.LastName, a.UserName from [dbo].[DimUserSecurity] as a join [dbo].[DimSalesTerritory] as b on a.[SalesTerritoryID] = b.[SalesTerritoryKey]由于在步驟2中創建的關系,聯接的表顯示負責各個銷售區域的人員。例如,可以看到Rita Santos負責Australia 。
創建含事實數據表和維度表的表格模型
準備好關系數據倉庫后,需要定義表格模型。可以使用 SQL Server Data Tools (SSDT) 創建模型。
如下所示,將所有必需表導入模型。
在導入必需的表之后,需要定義一個名為 SalesTerritoryUsers 的具有讀取權限的角色。在SQL Server Data Tools中選擇“模型”菜單,然后選擇“角色” 。在“角色管理器” 中,選擇“新建” 。
在“角色管理器” 中的“成員” 下,添加通過任務 1 在 DimUserSecurity 表中定義的用戶。
接下來,為 DimSalesTerritory 和 DimUserSecurity 表添加適當的函數,如下面的“行篩選器” 選項卡下所示。
LOOKUPVALUE 函數返回某個列的值,該列中的 Windows 用戶名與 USERNAME 函數返回的用戶名匹配。 然后,可以將查詢限定為 LOOKUPVALUE 返回的值與同一表或相關表中的值相匹配的情況。 在 DAX 篩選器列中,鍵入以下公式︰
=DimSalesTerritory[SalesTerritoryKey]=LOOKUPVALUE(DimUserSecurity[SalesTerritoryID], DimUserSecurity[UserName], USERNAME(), DimUserSecurity[SalesTerritoryID], DimSalesTerritory[SalesTerritoryKey])在此公式中,LOOKUPVALUE 函數會返回 DimUserSecurity[SalesTerritoryID] 列的所有值,其中 DimUserSecurity[UserName] 與當前登錄的 Windows 用戶名相同,DimUserSecurity[SalesTerritoryID] 與 DimSalesTerritory[SalesTerritoryKey]相同。
注意:在使用行級別安全性時,不支持使用 DAX 函數 USERELATIONSHIP。
LOOKUPVALUE 返回的 Sales SalesTerritoryKey 集隨后用于限制 DimSalesTerritory 中顯示的行。 僅顯示 SalesTerritoryKey 值位于 LOOKUPVALUE 函數返回的 ID 中的行。
對于 DimUserSecurity 表,在“DAX 篩選器” 列中,添加以下公式:
=FALSE()此公式指定所有列都解析為 false;這意味著無法查詢 DimUserSecurity 表列。最會需要處理并部署模型。
在本地數據網關中添加數據源
表格模型部署完畢并可供使用后,需要向本地 Analysis Services 表格服務器添加數據源連接。若要允許 Power BI 服務訪問本地分析服務,需要在環境中安裝并配置本地數據網關。
正確配置本地數據網關后,需要為 Analysis Services 表格實例創建一個數據源連接。
此過程完成后,網關便已配置完成,并且可與本地 Analysis Services 數據源進行交互。
由于內容過多,本次內容分為上下篇發布。點擊查看下篇>>
Power BI Desktop 2020年2月版發布,新增多種可視化圖表,可點擊此處查看
想要購買Power BI Desktop正版授權,或了解更多產品信息請點擊
關注慧聚IT微信公眾號 ???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: