在內嵌編頁報表中實作數據列層級安全性
適用於: 應用程式擁有數據 用戶擁有數據
本文說明如何將使用 RLS (資料列層級安全性) 的編頁報表內嵌至您的應用程式 擁有數據 應用程式。
注意
本文僅適用於應用程式擁有的數據客戶。
若要針對編頁報表使用 RLS:
- 設定環境 以篩選報表
- 篩選報表或查詢層級的數據
- 使用內嵌令牌傳遞已設定的參數
必要條件
本文假設您知道如何 內嵌Power BI編頁報表。 它說明如何產生內嵌令牌,讓報表只顯示使用者有權存取的內容。
編頁報表是使用 SQL Server Reporting Services 引擎建立,而不是 Power BI (Analysis Services) 引擎,因此 RLS 篩選是在 Power BI 報表產生器 中設定。
設定環境
若要將數據列層級安全性套用至 Power BI 編頁報表,請使用內建字段 UserID 來指派 參數。 此參數可用來 篩選或查詢您的數據。
然後,將 UserID 傳遞至內嵌令牌 - 產生令牌 API 以取得內嵌令牌。
在報表或查詢層級使用UserID做為篩選
您可以使用 UserId 做為 篩選 ,或在數據源的 查詢 中。
篩選資料
在 [ 語意模型屬性 ] 視窗中,從左窗格中選取 [ 篩選]。
從 [ 表達式] 下拉功能表中,選取您要用來篩選數據的參數。
選取 [ 值 ] 函式按鈕。
在 [ 表達式] 視窗中,從 [類別 ] 列表中,選取 [內建字段]。
從 [ 專案 ] 清單中,選取 [UserID ],然後選取 [ 確定]。
在 [ 語意模型屬性 ] 視窗中,確認表達式是您 選取的參數 = UserID,然後選取 [ 確定]。
使用查詢
在 [ 語意模型屬性 ] 視窗中,從左側瀏覽窗格中選取 [參數],然後選取 [ 新增]。
在 [ 參數名稱] 字段中輸入 @UserID,然後在 [參數值 ] 中新增 [&UserID]。
從左窗格中,選取 [查詢],在 [查詢] 中新增 UserID 參數作為查詢的一部分,然後選取 [ 確定]。
注意
在下方的螢幕快照中,色彩參數會作為範例使用 (WHERE FinalTable.Color = @UserID)。 如有需要,您可以建立更複雜的查詢。
產生內嵌令牌
當您為客戶內嵌編頁報表時,請使用 Reports GenerateTokenInGroup API 來取得內嵌令牌。 此令牌也可以用來篩選分頁報表中的一些數據。
您只能使用 服務主體產生令牌。 您無法以主要使用者身分產生令牌。 服務主體必須至少具有 Power BI 服務 中工作區的成員許可權。 (如果服務主體是參與者或查看器,則無法產生令牌。
若要 產生令牌,請使用您想要顯示的資訊來指派 username
欄位。 例如,在具有色彩參數的編頁報表中,如果您在欄位中輸入綠色,則內嵌標記會將內嵌數據限製為只有綠色作為色彩數據行值的數據。username
{
"reports": [
{
"id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
}
],
"identities": [
{
"username": "green",
"reports": [
"8d57615e-cfed-4d60-bd21-7dc05727193c"
]
}
]
}
注意
如果您在未指定使用者標識符的情況下產生內嵌令牌,則會使用服務主體的物件識別碼。
考量與限制
- 主使用者不支援編頁報表來 內嵌客戶。 主用戶支援為組織內嵌。
- 服務主體必須具有至少 成員 或(而非查看器或參與者)的工作區許可權。
相關內容
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: