如何借助MS Graph在Azure Data Factory中复制SharePoint Excel至Azure SQL
该方案全程使用ADF原生连接器实现,无需借助Azure Functions、Logic App等额外服务,同时满足权限最小化要求。
前置权限配置
- 在Azure AD注册应用程序,仅授予MS Graph的
Sites.Selected应用程序权限,完成管理员同意,无需配置任何SharePoint全站点权限 - 调用MS Graph权限分配接口,仅给该应用授予目标SharePoint站点下指定文件夹的读取权限,权限范围严格控制到单个文件夹层级
ADF侧实现步骤
1. 配置MS Graph调用的REST链接服务
在ADF中新建REST类型链接服务:
- 验证方式选择服务主体,填写注册应用的客户端ID、客户端密钥、所属租户ID
- 资源URI填写
https://graph.microsoft.com,测试连通性后保存
2. 获取目标Excel文件的临时下载直链
新建Lookup活动,使用上述REST链接服务:
- 请求方法选择GET,填写对应MS Graph获取指定站点下目标文件资源的请求路径
- 活动输出结果中会包含该Excel文件的带签名临时下载直链,无需额外身份验证即可访问
3. 配置Excel读取的HTTP链接服务
在ADF中新建HTTP类型链接服务,验证方式选择匿名,保存即可
4. 配置复制活动完成数据同步
- 复制活动源选择上述HTTP链接服务,相对URL动态传入Lookup活动输出的下载直链,文件格式指定为Excel格式,按需配置对应工作表、表头行、数据读取范围等参数
- 复制活动接收器选择预先配置好的Azure SQL DB链接服务,完成字段映射、写入规则(覆盖/追加/ Upsert)配置即可
5. 调度配置
单次调试验证数据同步逻辑正常后,配置对应的定时触发规则即可实现周期性自动同步
注意事项
- 若单Excel文件体积超过100MB,建议新增Azure Blob存储作为中间层,先将文件同步到Blob存储再转存到Azure SQL DB,降低MS Graph接口调用超时概率
- 注册应用的客户端密钥建议存储在Azure密钥保管库中,ADF直接引用密钥保管库密钥即可,避免明文泄露,同时定期完成密钥轮换
内容的提问来源于stack exchange,提问作者gamezone25
相关产品推荐
相关产品推荐

