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

将SQL Server 2019升级到2022 Always On后无法部署SSIS包

解决SQL Server 2022 Always On中SSISDB加入AG后的部署/运行失败问题

问题分析

错误核心为microsoft.sqlserver.integrationservices.server程序集加载失败,属于CLR安全权限范畴。在Always On环境下,AG仅同步用户数据库元数据,master库的安全对象(证书、登录名等)不会自动同步,导致跨节点的程序集权限验证失效,进而引发部署包失败、Agent作业停滞在Created Execution状态的问题。

解决方案

1. 校验所有AG节点的SSISDB程序集状态

在每个AG节点执行以下查询,确认程序集存在且权限配置一致:

USE SSISDB;
GO
SELECT name, permission_set_desc, is_visible
FROM sys.assemblies 
WHERE name = 'microsoft.sqlserver.integrationservices.server';

确保结果中permission_set_desc值为EXTERNAL_ACCESS,若节点间存在差异,执行语句修正:

ALTER ASSEMBLY [microsoft.sqlserver.integrationservices.server]
WITH PERMISSION_SET = EXTERNAL_ACCESS;
GO

2. 重新注册SSIS程序集(若损坏或缺失)

若某节点程序集缺失,从SQL Server 2022安装路径重新加载(替换为实际安装路径):

USE SSISDB;
GO
CREATE ASSEMBLY [microsoft.sqlserver.integrationservices.server]
FROM 'C:\Program Files\Microsoft SQL Server\160\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS;
GO

3. 统一所有AG节点的CLR安全配置

启用CLR并配置严格安全

在每个AG节点执行:

USE master;
GO
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
RECONFIGURE;
GO
sp_configure 'clr strict security', 1;
RECONFIGURE;
GO

创建程序集验证证书与登录名

由于AG不同步master库对象,需在每个AG节点手动执行:

USE master;
GO
-- 从SSIS程序集导出证书
CREATE CERTIFICATE SSISAssemblyCert
FROM ASSEMBLY [microsoft.sqlserver.integrationservices.server];
GO
-- 创建关联登录名
CREATE LOGIN SSISAssemblyLogin
FROM CERTIFICATE SSISAssemblyCert;
GO
-- 授予不安全程序集权限
GRANT UNSAFE ASSEMBLY TO SSISAssemblyLogin;
GO

4. 确保SSISDB的TRUSTWORTHY属性与所有者一致

在每个AG节点执行:

-- 启用TRUSTWORTHY
ALTER DATABASE SSISDB SET TRUSTWORTHY ON;
GO
-- 检查数据库所有者,确保为高权限账户(如sa)
USE SSISDB;
SELECT SUSER_SNAME(owner_sid) AS DB_Owner;
GO
-- 若所有者权限不足,修改为sa
ALTER AUTHORIZATION ON DATABASE::SSISDB TO sa;
GO

5. 同步AG节点的SSIS服务与数据库状态

  • 在所有AG节点重启**SQL Server Integration Services (SSIS)**服务
  • 重启SSISDB的AG副本同步:
ALTER DATABASE SSISDB SET HADR RESUME;
GO

6. 验证SQL Server Agent作业执行上下文

  • 确认运行SSIS包的Agent代理账户拥有SSISDB的ssis_admin角色权限
  • 确保该代理账户在所有AG节点均存在且权限配置一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:19:53