我有一个简单的场景,其中我有一个 Azure SQL 数据库,并且我想在 Power BI 报表中使用数据库中的数据。数据库服务器仅启用了 Azure AD 身份验证。到目前为止,我设法使用自己的凭据(身份验证方法:OAuth2)创建和刷新数据集,但我想要一个不依赖用户帐户的更通用的解决方案。
是否可以为 Power BI 工作区启用托管标识并使用它连接到 Azure SQL DB 并获取数据?这样,Power BI 将使用其他 Azure 服务访问数据库所使用的相同模式。
如果尚不支持 Power BI 托管身份,那么在不使用用户帐户的情况下提取数据的最佳替代方案是什么?
最佳答案
If Power BI managed identity is not supported yet, what would be the best alternative to pull the data without using a user account?
据我所知,只有 Azure 流分析作业支持托管身份作为 Power BI 的身份验证。
但作为一种解决方法,您可以利用 Azure 服务主体或 Azure AD 应用程序对连接到 Azure SQL 的 Power BI 数据集进行身份验证。
我创建了一个 Power BI 组,其中存在我的 Azure AD 服务主体和用户。
我使用 Powerbi 连接到我的 Azure SQL 服务器,如下所示:-
从 Azure SQL 数据集创建了一份 PowerBi 报告,如下所示:-
已将其上传到 PowerBi Web :-
我有一个 PowerBI 嵌入组,其中包含嵌入演示应用程序和可以访问 Power BI 的用户,如下所示:-
登录我的 Power BI 门户网站 > 设置 > 管理门户 > 租户设置
启用允许嵌入设置:-
允许服务主体使用 Power BI 并授予 powerbiembedgroup 访问权限。
为服务主体提供对工作区或特定数据集的访问权限:-
通过 Powershell 访问 PowerBI:-
安装 PowerBI Powershell 模块 -
Install-Module -Name MicrosoftPowerBIMgmt
使用 SP 连接到 PowerBI -
Connect-PowerBIServiceAccount -ServicePrincipal -Credential (Get-Credential) -Tenant xxxxxxxx-xxxx-xxexx-99ed-af9038592395
在用户名和密码中添加服务主体的应用程序 ID 和密码。
已成功连接到 PowerBI :-
获取工作区 -
Get-PowerBIWorkspace
引用文献:-
关于azure - Power BI - 使用托管标识从 Azure SQL 数据库获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75594823/