如何通过Azure AD(托管标识)实现PowerBI与Azure SQL的安全认证?
实现PowerBI通过Azure AD托管标识连接Azure SQL的具体方案
一、PowerBI Service 数据集使用托管标识认证(生产环境推荐)
这是最安全的无凭据认证方式,直接利用PowerBI工作区的托管标识完成认证:
- 配置托管标识权限
- 登录Azure门户,找到目标Azure SQL服务器,进入「访问控制(IAM)」,添加角色分配:选择
SQL DB Contributor(或更细粒度的SQL Reader),指定PowerBI工作区的系统托管标识或用户分配托管标识。 - 登录Azure SQL数据库,执行SQL创建对应数据库用户并授权:
-- 系统托管标识用工作区名称,用户分配托管标识用标识名称 CREATE USER [托管标识/工作区名称] FROM EXTERNAL PROVIDER; -- 按需授予权限,示例为只读权限 ALTER ROLE db_datareader ADD MEMBER [托管标识/工作区名称];
- 登录Azure门户,找到目标Azure SQL服务器,进入「访问控制(IAM)」,添加角色分配:选择
- 配置PowerBI数据集认证
- 在PowerBI Service中进入目标数据集,点击「设置」>「数据源凭据」
- 找到Azure SQL数据源,点击「编辑凭据」
- 选择**「托管标识」**选项(需确保工作区已启用托管标识且权限配置完成),保存后数据集刷新将自动使用托管标识认证,无需存储任何凭据。
二、PowerBI Desktop 安全连接方案(开发阶段)
Desktop本身不支持直接使用托管标识,但可通过以下方式避免基本认证:
- Azure AD组织账户认证:连接Azure SQL时选择「组织账户」,登录你的Azure AD账户。需提前在SQL中创建该账户对应的数据库用户:
CREATE USER [你的AzureAD邮箱] FROM EXTERNAL PROVIDER;并授予必要权限。这种方式依赖Azure AD身份验证,无密码存储风险。 - 本地网关中转托管标识:安装本地数据网关(企业模式),在网关配置中指定使用托管标识访问Azure SQL,Desktop通过网关连接SQL,认证由网关托管标识完成。
三、关键安全配置
- 启用Azure AD身份验证:在Azure SQL服务器的「Azure AD管理员」页面,设置一个Azure AD账户作为管理员,这是所有Azure AD认证方式的前提。
- 禁用基本认证:在Azure SQL服务器的「连接安全性」页面,关闭「允许SQL服务器身份验证」,强制所有连接使用Azure AD认证,从源头杜绝凭据泄露风险。
- 最小权限原则:给托管标识或Azure AD账户分配仅满足业务需求的权限(如只读而非管理员权限)。
内容的提问来源于stack exchange,提问作者R. Maier
相关产品推荐
相关产品推荐

