SQL Server 2022运行SSIS包报Invalid Authorization Specification错误求助
问题概况
在SQL Server 2022虚拟机运行SSIS包时触发错误:
Invalid Authorization Specification
该包在本地及其他服务器可正常运行,使用的连接字符串为:
Integrated Security=SSPI;Persist Security Info=False;Data Source=MyVMName;
已尝试操作:安装最新版OLE DB Driver 19、在连接字符串中指定驱动、切换32/64位模式运行;且虚拟机上通过UDL使用Microsoft OLEDB Provider for SQL Server可成功连接。
可行解决建议
- 检查SSIS服务运行账户权限:
SSIS包在服务器上运行时,默认使用SQL Server Integration Services服务的账户(而非登录虚拟机的本地账户)。确认该账户是否拥有目标数据库的登录权限,以及能否通过Windows身份验证访问MyVMName实例。可尝试将SSIS服务账户添加到目标数据库的db_datareader/db_datawriter角色,或赋予对应的登录权限。 - 验证SPN配置:
使用Windows身份验证(SSPI)跨机器连接时,服务主体名称(SPN)配置错误会导致授权失败。检查目标SQL Server实例的SPN注册情况:- 在虚拟机或域控制器的命令提示符中执行
setspn -L <SQL服务账户>,查看已注册的SPN列表。 - 确认存在格式为
MSSQLSvc/MyVMName:1433(或对应实例的端口号)的SPN,若缺失则执行setspn -A MSSQLSvc/MyVMName:1433 <SQL服务账户>添加。
- 在虚拟机或域控制器的命令提示符中执行
- 切换身份验证方式测试:
暂时将连接字符串改为SQL Server身份验证,排查Windows身份验证的问题:
若此方式能正常运行,说明Windows身份验证环节存在配置问题,可针对性进一步排查。Server=MyVMName;Database=YourTargetDB;User Id=SQLAccount;Password=YourPassword; - 检查SSIS包连接管理器与保护级别:
打开SSIS包的连接管理器,确认是否勾选「保存敏感数据」,同时检查包的保护级别设置。如果包使用EncryptSensitiveDataWithUserKey,在虚拟机上因运行账户不同会导致敏感数据无法解密,可改为EncryptSensitiveDataWithPassword或DontSaveSensitive(配合配置文件存储敏感信息)。 - 验证虚拟机Kerberos配置:
在虚拟机命令提示符执行klist get MSSQLSvc/MyVMName:1433,查看能否获取到Kerberos票据。若获取失败,说明Kerberos身份验证存在异常,需检查虚拟机的DNS配置、域信任关系(若为域环境)。
内容的提问来源于stack exchange,提问作者wilson_smyth
相关产品推荐
相关产品推荐

