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

如何将SSIS连接至Google Cloud Platform及创建指向Google OAuth的令牌

Google Cloud Platform (GCP) 与 SSIS 连通实现方案

前置依赖

  • 已开通GCP项目,且启用了需要访问的目标GCP服务API(如BigQuery、Cloud Storage)
  • 本地已配置SSIS运行环境,包含Visual Studio/SSDT、SQL Server Integration Services组件
  • 已在GCP控制台创建OAuth 2.0客户端ID,下载生成的JSON凭据文件,且配置了对应服务的访问授权范围

连通实现方案

两种可选实现方式,可根据业务需求选择:

  • 官方连接器方案:安装Google Cloud SSIS 官方连接器,安装完成后SSIS工具箱会新增GCP专属数据源组件,拖拽组件后在配置页导入OAuth JSON凭据即可完成连通,无需自定义代码。
  • 自定义脚本方案:若官方连接器功能不满足业务需求,可通过SSIS脚本任务调用GCP官方客户端库实现连通,需要提前在脚本项目的NuGet包管理器中安装Google.Apis、Google.Apis.Auth以及对应GCP服务的客户端依赖包(如Google.Apis.Bigquery.v2)。

SSIS 内生成 Google OAuth 访问令牌操作步骤

步骤1:配置SSIS项目存储凭据参数

在SSIS项目中创建两个项目参数:

  • GCPOAuthCredentialPath:字符串类型,值为本地存储GCP OAuth JSON凭据文件的绝对路径
  • GCPOAuthScopes:字符串类型,值为业务需要的GCP授权范围,多个范围用空格分隔,例如BigQuery访问的范围为https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/cloud-platform
    同时创建一个字符串类型的项目/用户变量GCPAccessToken,用于存储生成的访问令牌。

步骤2:创建脚本任务生成令牌

在SSIS控制流中新增「脚本任务」,按如下配置:

  • 在脚本任务的「只读变量」配置项中,添加之前创建的两个项目参数$Project::GCPOAuthCredentialPath、$Project::GCPOAuthScopes
  • 在脚本任务的「读/写变量」配置项中,添加User::GCPAccessToken变量
  • 打开脚本编辑器,在NuGet包管理器中安装Google.Apis.Auth依赖包,替换Main方法逻辑为如下代码:
using Google.Apis.Auth.OAuth2;
using System;

public void Main()
{
    string credentialPath = Dts.Variables["$Project::GCPOAuthCredentialPath"].Value.ToString();
    string[] scopes = Dts.Variables["$Project::GCPOAuthScopes"].Value.ToString().Split(' ');
    
    // 加载凭据并生成带权限范围的授权对象
    GoogleCredential credential = GoogleCredential.FromFile(credentialPath).CreateScoped(scopes);
    // 生成访问令牌
    string accessToken = credential.UnderlyingCredential.GetAccessTokenForRequestAsync().Result;
    // 写入变量供后续组件调用
    Dts.Variables["User::GCPAccessToken"].Value = accessToken;
    
    Dts.TaskResult = (int)ScriptResults.Success;
}

步骤3:令牌使用说明

  • 生成的GCPAccessToken在调用GCP接口时,放入HTTP请求的Authorization头即可,格式为Bearer {实际令牌值}
  • GoogleCredential类自带令牌缓存和自动刷新逻辑,无需手动处理令牌过期问题,每次调用GCP服务前重新执行一次令牌生成逻辑即可保证令牌有效性。

注意:不要将OAuth凭据内容硬编码到脚本中,生产环境建议将凭据路径、授权范围等敏感信息配置为SSIS目录的加密敏感参数,避免信息泄露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:45:04