如何通过Azure Logic App(借助On-premise data gateway)使用GMSA访问本地SQL Server?
解决方案:通过GMSA身份的本地数据网关连接SQL Server到Azure Logic App
可行性结论
完全可行,核心是利用本地数据网关的GMSA运行身份来代理SQL Server连接,而非让Logic App直接使用GMSA账户认证。
具体配置步骤
验证GMSA账户的SQL权限
- 在目标SQL Server中,创建登录名映射到域账户
DMN\APP-BI-Gateway$。 - 为该登录名分配目标数据库的用户权限,确保拥有
dbo.Company表的SELECT权限。
- 在目标SQL Server中,创建登录名映射到域账户
配置Logic App的SQL连接器
- 新建/编辑SQL "Get row"连接器时,选择已部署的本地数据网关。
- Authentication Type选择Windows Authentication,然后勾选使用网关服务账户(部分界面显示为
Use the gateway's Windows credentials)。 - 无需输入密码——网关会自动使用自身运行的GMSA身份
DMN\APP-BI-Gateway$发起SQL连接。
排查之前的错误原因
- 使用Logic App Managed Identity时出现的
"Gateway has determined that DirectQuery is not supported for the connection."错误,是因为该认证方式不支持SQL连接器的DirectQuery模式,而"Get row"这类操作依赖DirectQuery,因此不适用。 - Windows Authentication要求输入密码的困惑,是因为你未启用"使用网关服务账户"选项——启用后无需手动输入密码,直接复用网关的GMSA身份。
- 使用Logic App Managed Identity时出现的
验证步骤
配置完成后,触发Logic App运行,检查是否成功从dbo.Company表获取数据。若仍有问题,可排查:
- 本地数据网关服务是否确实以
DMN\APP-BI-Gateway$身份运行(在服务管理器中查看On-premises data gateway的登录身份)。 - SQL Server的防火墙/网络策略是否允许网关所在服务器的连接。
- GMSA账户的SQL权限是否配置正确。
内容的提问来源于stack exchange,提问作者Rod
相关产品推荐
相关产品推荐

