Sql server 2008 SQL Server代理未使用密码、xml配置或表配置执行SSIS包
我有一个SSIS包,它从MySQL数据库获取数据并将其放入SQL Server表中。MySQL的连接是ADO.net。该包在投标中运行良好 我想在SQLServer2008上部署作为作业运行的包。MySQL连接要求敏感数据存储在包中或保存在某些外部配置源中。如果它存储在包中,则将使用特定于我的windows用户配置文件的密钥进行加密,或者必须通过密码进行保护 我尝试了三种设置SQL Server代理作业以执行此打包的方法,但都失败了: 使用密码 我将包的ProtectionLevel设置为EncryptSensitiveWithPassword,并为包提供密码。然后我将包的副本保存到msdb。然后,我可以连接到SSIS并运行包,此时系统会提示我输入密码 当我尝试在SQL Server中将此计划作为作业时,系统会提示我通过单击作业步骤属性的“配置”选项卡输入密码,我可以看到/DECRYPT开关已添加到命令行选项卡。运行方式属性设置为SQL Server代理服务帐户,该帐户映射到具有sysadmin服务器角色的数据库登录名。当我尝试启动此作业时,出现以下错误:Sql server 2008 SQL Server代理未使用密码、xml配置或表配置执行SSIS包,sql-server-2008,ssis,sql-server-agent,Sql Server 2008,Ssis,Sql Server Agent,我有一个SSIS包,它从MySQL数据库获取数据并将其放入SQL Server表中。MySQL的连接是ADO.net。该包在投标中运行良好 我想在SQLServer2008上部署作为作业运行的包。MySQL连接要求敏感数据存储在包中或保存在某些外部配置源中。如果它存储在包中,则将使用特定于我的windows用户配置文件的密钥进行加密,或者必须通过密码进行保护 我尝试了三种设置SQL Server代理作业以执行此打包的方法,但都失败了: 使用密码 我将包的ProtectionLevel设置为Enc
Executed as user: DOMAIN\UserROLE. Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved. Started: 12:31:30 Error: 2012-07-03 12:31:31.20 Code: 0xC00291EC Source: Get Data Execute SQL Task Description: Failed to acquire connection "DATA_SOURCE". Connection may not be configured correctly or you may not have the right permissions on this connection. End Error DTExec: The package execution returned DTSER_FAILURE
似乎使用此方法时,包密码本身不会存储在作业访问它的任何位置
使用XML配置文件
然后,我创建了一个包的副本,并将ProtectionLevel设置为DontSaveSensitive,并设置了一个包配置以将MySQL凭据存储在XML文件中。然后将其保存到msdb,然后从运行包时
IntegrationServices我可以提供配置文件的路径,一切都很好。但是,当我再次为包设置作业时,我指向服务器上的配置文件,但作业失败,并出现相同的错误。我想知道这是否是因为SQL Server代理没有关联的windows帐户,该帐户允许它从文件系统中存储的XML文件中读取
使用SQL Server表配置
这次我创建了一个包的副本,并将ProtectionLevel设置为ServerStorage。然后,我在目标SQL Server数据库中创建了一个[SSIS配置]表。我修改了这个表中的条目,以包含MySQL数据源的密码。同样,包从Integration Services成功运行,但失败,错误与以前从作业运行时相同。我已检查SQL Server代理是否能够从[SSIS配置]表中读取ok-我设置了一个独立作业来测试这一点
有人对我在这里还应该做什么有什么建议吗
我正在考虑为此放弃SQL Server代理工作,重新让windows调度器简单地调度包,但在放弃之前,我想先在这里尝试一下。我使用的是通过设置
EncryptSensitiveWithPassword
加密密码的方法,正如您上面所述,而不是看看你做错了什么。在使用integration services导入包时,请记住使用选项保持原始包的保护级别
,但看起来您也在这样做
请尝试将角色
SQLAgentOperatorRole
设置为您的SQL Server代理服务帐户,您没有提到这一点,我不确定您是否提到了。这可能会解决您的权限问题。(我喜欢通过评论来回答这个问题,但我在这里也没有权限:)谢谢stb。我尝试了您关于SQLAgentOperatorRole的建议,但似乎没有达到预期效果。我已经在导入我的软件包,并保持原始软件包的保护级别。我发现了一个有关您问题的“一般故障排除”视频。也许这会有帮助:再次感谢@stb,我确实看过这段视频,但它忽略了我需要看到的关键部分的细节!我给了她一些反馈。我想我会放弃这一点,只是用Windows调度程序来安排我的包。无论如何,感谢你的时间。