You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Service Principal实现Crystal Reports到Azure Synapse Analytics的连接

Service Principal连接Crystal Reports到Synapse SQL On-Demand配置方案

方案1:ODBC DSN配置(推荐,兼容性最好)

  • 首先部署环境安装≥17.7版本的Azure ODBC Driver for SQL Server,该版本原生支持服务主体非交互认证
  • 新建系统级ODBC DSN,驱动选择刚才安装的Azure ODBC Driver,服务器地址填入Synapse SQL on-demand端点,格式为<工作区名称>-ondemand.sql.azuresynapse.net
  • 认证方式选择Active Directory Service Principal,不要使用个人账号常用的交互认证类型
  • 按提示填写参数:
    • 用户名填写Service Principal的Client ID
    • 密码填写Service Principal的Client Secret
    • 租户ID填写企业Azure AD的租户ID
  • 选择目标数据库后测试连接,连接成功后在Crystal Reports中直接引用该DSN作为数据源即可

该方案无需为Service Principal配置Synapse Admin权限,你已完成的两个配置(数据湖读权限、SQL库中添加该服务主体)已经满足最低权限要求,只需额外给SQL库中的服务主体授予对应外部表/视图的SELECT权限即可。

方案2:直连连接字符串配置(无需预配DSN)

  • 打开Crystal Reports数据源配置界面,选择≥18.2版本的Microsoft OLE DB Driver for SQL Server
  • 跳过交互登录步骤,选择手动编辑连接字符串,填入以下格式内容:
Provider=MSOLEDBSQL;Server=<你的Synapse on-demand端点>;Database=<目标数据库名>;UID=<Service Principal Client ID>;PWD=<Client Secret>;Authentication=ActiveDirectoryServicePrincipal;
  • 测试连接通过后直接保存配置即可使用

常见问题排查

  • 若连接提示鉴权失败,可先在Synapse SQL on-demand中执行如下语句确认服务主体权限配置是否正确:
    1. 确认用户已创建:CREATE USER [服务 principal 显示名] FROM EXTERNAL PROVIDER;(已创建可跳过)
    2. 授予最小查询权限:GRANT SELECT ON SCHEMA::<你的业务schema名> TO [服务 principal 显示名];
  • 若查询速度较慢,可在ODBC配置中开启连接池,同时在Synapse SQL中开启结果集缓存,可大幅提升报表拉取数据的效率。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:27:02