使用服務主體自動化 進階版 工作區和語意模型工作
服務主體是您在租使用者內建立的 Microsoft Entra ID 應用程式註冊 ,以執行自動資源和服務等級作業。 它們是具有應用程式名稱、應用程式識別碼、租使用者標識碼,以及 密碼客戶端密碼 或憑證的唯一使用者身分識別類型。
Power BI 進階版 使用與 Power BI Embedded 相同的服務主體功能。 若要深入瞭解,請參閱 使用服務主體內嵌 Power BI 內容。
在 Power BI 進階版 中,您可以使用服務主體搭配 XMLA (XML Analysis) 端點來自動化語意模型管理工作,例如布建工作區、部署模型,以及使用下列方式重新整理語意模型:
- PowerShell。
- Azure 自動化。
- Azure Logic Apps。
- 自訂客戶端應用程式。
只有 新的工作區 使用服務主體支援 XMLA 端點連線。 不支持傳統工作區。 服務主體只有指派工作區上執行工作所需的許可權。 許可權是透過工作區存取指派,這與一般 UPN (用戶主體名稱) 帳戶類似。
若要執行寫入作業,容量的語意模型工作負載必須 啟用 XMLA 端點以進行讀寫作業。 從 Power BI Desktop 發佈的語意模型應該已啟用增強的 元數據格式 功能。
建立服務主體
服務主體會在 Azure 入口網站 或使用PowerShell建立為應用程式註冊。 建立服務主體時,請務必分別複製並儲存應用程式名稱、應用程式(用戶端)標識碼、目錄(租使用者)標識碼和客戶端密碼。 如需如何建立服務主體的步驟,請參閱:
建立 Microsoft Entra 安全性群組
根據預設,服務主體可以存取其啟用的任何租用戶設定。 根據您的系統管理員設定,存取權可以包含特定安全組或整個組織。
若要限制服務主體存取特定租用戶設定,您可以允許存取特定安全組。 或者,您可以建立服務主體的專用安全組,並將它從所需的租用戶設定中排除。 若要建立安全組並新增服務主體,請參閱 使用 Microsoft Entra ID 建立基本群組和新增成員。
啟用服務主體
您必須先在Power BI 管理員入口網站中啟用服務主體存取,才能開始在Power BI 中使用服務主體。
- 移至 Power BI 管理員 入口網站,然後選取 [租用戶設定]。
- 捲動至 [ 開發人員設定 ],然後展開 [允許服務主體使用 Power BI API]。
- 選取 [啟用] 。
- 若要將許可權套用至安全組,請選取 [特定安全組][建議]。
- 輸入組名。
- 選取套用。
工作區存取
為了讓服務主體具有執行 進階版 工作區和語意模型作業的必要許可權,您必須將服務主體新增為工作區成員或 管理員。這裡將說明在 Power BI 服務 中使用工作區存取,但您也可以使用新增群組使用者 REST API。
在工作區 Power BI 服務 中,選取 [更多>工作區存取]。
依應用程式名稱搜尋,然後將服務主體新增為 管理員 或成員至工作區。
XMLA 端點的 連線 字串
建立服務主體之後,請為租用戶啟用服務主體,並將服務主體新增至工作區存取權,以作為 XMLA 端點 連接字串 中的使用者身分識別。 差異在於,您不需要 user id
和 password
參數,而是指定應用程式識別碼、租使用者標識碼和應用程式秘密。
Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;
PowerShell
開啟 PowerShell 工作階段以執行下列範例程式代碼。
使用 SQLServer 模組
在下列範例中, AppId
、 TenantId
和 AppSecret
是用來驗證語意模型重新整理作業:
Param (
[Parameter(Mandatory=$true)] [String] $AppId,
[Parameter(Mandatory=$true)] [String] $TenantId,
[Parameter(Mandatory=$true)] [String] $AppSecret
)
$PWord = ConvertTo-SecureString -String $AppSecret -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord
Invoke-ProcessTable -Server "powerbi://api.powerbi.com/v1.0/myorg/myworkspace" -TableName "mytable" -DatabaseName "mydataset" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential
分析管理物件 (AMO) 和 ADOMD.NET
當您與用戶端應用程式和 Web 應用程式連線時,可以使用 AMO 和 ADOMD 用戶端連結庫 15.1.42.26 版(2020 年 6 月)和更新版本的可從 NuGet 安裝套件,以支援 連接字串 中的服務主體,方法是使用下列語法:app:AppID
和密碼或 cert:thumbprint
。
在下列範例中, appID
和 password
值可用來執行模型資料庫重新整理作業:
string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data source=powerbi://api.powerbi.com/v1.0/<tenant>/<workspacename>;Initial catalog=<datasetname>;User ID=app:{appId};Password={authKey};";
Server server = new Server();
server.Connect(connString);
Database db = server.Databases.FindByName("adventureworks");
Table tbl = db.Model.Tables.Find("DimDate");
tbl.RequestRefresh(RefreshType.Full);
db.Model.SaveChanges();
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應