Power BI直连PME租户Azure SQL:弃用SQL认证的方案咨询
PME租户下Power BI直连Azure SQL的无SQL认证最佳方案
针对你的场景,Azure Active Directory (AAD)服务主体认证是最优方案——它属于PME租户内部的AAD身份,不受外部*microsoft.com用户的限制,完全替代SQL认证实现权限管控。
具体实施步骤
1. 在PME租户AAD中创建服务主体
可以通过Azure门户或Azure CLI创建,CLI命令示例:
az ad sp create-for-rbac --name "PowerBI-SQL-Access-SP"
执行后记录三个关键信息:应用程序ID、租户ID、客户端密码(或选择证书认证,更安全)。
2. 给服务主体分配数据库权限
使用PME租户内的AAD管理员账户登录Azure SQL数据库,执行以下T-SQL:
-- 将服务主体添加到目标数据库 CREATE USER [PowerBI-SQL-Access-SP] FROM EXTERNAL PROVIDER; -- 分配只读权限(根据需求调整角色) ALTER ROLE db_datareader ADD MEMBER [PowerBI-SQL-Access-SP];
如果需要读写权限,可替换为db_datawriter或自定义数据库角色。
3. Power BI中配置服务主体连接
- Power BI Desktop:连接Azure SQL时,选择「Azure Active Directory - 服务主体」认证,填入之前记录的应用程序ID、租户ID、客户端密码,测试连接通过后即可正常构建报表。
- Power BI服务:发布报表后,进入数据集的「数据源设置」,将认证方式更新为服务主体;若使用网关,需确保网关已配置该服务主体的访问权限。
可选补充方案:托管身份(适用于Power BI Premium容量)
如果你的Power BI报表使用Premium容量,可以启用数据集的托管身份:
- 在Power BI服务中开启数据集的托管身份
- 将托管身份添加到Azure SQL数据库并分配权限(步骤同服务主体的T-SQL操作)
- 数据源设置中选择「托管身份」认证,无需额外凭证
关键注意事项
- 确保Azure SQL Server已配置PME租户的AAD管理员,否则无法添加任何AAD身份到数据库
- 遵循最小权限原则,仅给服务主体/托管身份分配所需的数据库权限
- 客户端密码需定期轮换,证书认证优先于密码认证
内容的提问来源于stack exchange,提问作者Veena
相关产品推荐
相关产品推荐

