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

如何在GitHub Actions中用ADINT认证部署SSIS包到Azure SQL的SSISDB?

解决GitHub Actions中SSISDeploy.exe使用Azure AD认证部署SSIS包的问题

核心问题分析

你遇到的连接失败,本质是托管GitHub Actions的Windows Runner不属于Azure AD域,无法直接使用ADINT(Active Directory Integrated)认证方式——ADINT依赖当前Windows用户的域身份,而Runner的本地用户并不关联你的Azure AD。同时还需要确保Azure SQL和服务主体的权限配置正确。

解决方案步骤

一、Azure SQL与服务主体的前置配置

  1. 启用Azure SQL的AD认证
    • 登录Azure Portal,找到目标SQL Server,在「Azure Active Directory」设置中启用AD认证,并指定AD管理员(可选择用户或组)。
  2. 授权服务主体访问SQL Server
    • 以AD管理员身份连接到SQL Server的SSISDB,执行以下SQL语句,将OIDC使用的服务主体添加为SSISDB的授权用户:
      CREATE USER [你的服务主体名称] FROM EXTERNAL PROVIDER;
      ALTER ROLE db_ssisadmin ADD MEMBER [你的服务主体名称];
      

    若需要更细粒度的权限,可替换db_ssisadmin为db_ssisoperator或自定义角色。

  3. 确保SQL防火墙允许访问
    • 在SQL Server的「防火墙和虚拟网络」设置中,勾选「允许Azure服务和资源访问此服务器」,或添加GitHub Actions Runner的IP段(推荐前者更灵活)。

二、GitHub Actions工作流的修改

由于ADINT不适用,改用**Active Directory Service Principal(ADSP)**认证,结合OIDC登录后的访问令牌来部署:

  1. 添加获取SQL访问令牌的步骤
    在Azure Login步骤后,添加获取SQL Server访问令牌的命令:
    - name: Get SQL Access Token
      run: |
        $token = (az account get-access-token --resource https://database.windows.net/ --query accessToken -o tsv)
        echo "SQL_TOKEN=$token" >> $env:GITHUB_ENV
    
  2. 修改SSISDeploy的部署命令
    将原Deploy SSIS-packages步骤替换为:
    - name: Deploy SSIS-packages
      run: |
        SSISDeploy.exe `
        -s:${{ github.workspace }}\XXXXX\XXXXX\XXXXX\XXXXX.ispac `
        -d:"catalog;/SSISDB/XXXXXX;${{ vars.SQL_SERVER_NAME }}" `
        -at:ADServicePrincipal `
        -u:${{ secrets.AZURE_CLIENT_ID }} `
        -t:$env:SQL_TOKEN
    

三、关键参数说明

  • -at:ADServicePrincipal:指定使用Azure AD服务主体认证,替代原有的ADINT(不适用托管Runner)。
  • -u:传递服务主体的Client ID(即你配置OIDC时的AZURE_CLIENT_ID)。
  • -t:传递获取到的SQL访问令牌,避免暴露服务主体密码,符合OIDC的安全要求。

四、验证要点

  1. 确认Azure Login步骤执行成功,服务主体已获取到目标订阅的权限。
  2. 检查服务主体是否已被正确添加到SQL Server的AD用户列表,且拥有SSISDB的部署权限。
  3. 验证SQL防火墙规则是否允许GitHub Actions的流量访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:43:11