我已经开发了一个SSIS包ETL过程,这是我已经成功地部署到远程服务器。我有这个服务器的窗口和SQL登录,但没有管理员。此ETL过程所加载的数据是每天早上在不同域上的不同计算机上(即我开始工作之前)生成的数据,并且需要在数据生成过程之后尽快自动加载。远程运行的SSIS包和编程
目前,我在SSMS中手动运行ETL软件包,并通过在runas.exe
上启动SSMS来欺骗远程服务器上的Windows用户凭据来对其进行身份验证。由于我们处于早期开发阶段,目前这样做还不错,但这显然不是一个可接受的生产解决方案。因此,我想自动化这个过程,因为a)数据是非常时间敏感的,b)手动运行这个过程是一个PITA。
我应该怎样着手自动化ETL包的执行使得:
执行情况后,立即可用的数据,
无需用户输入从我需要例如输入密码?
尝试的解决方案
安排上日程的SQL Server代理作业是不是一种选择,因为时间的灵敏度。 (另外我的系统似乎还没有启用/禁用SQL Server代理)
继续使用runas.exe
是不是一种选择或者作为/netonly
标志,这是必需的,而/savecred
标志,这将避免对需要手动输入密码,是互斥的。
sqlcmd.exe
可以编写脚本以使用SQL用户和密码运行(我知道,以纯文本形式输入密码的错误做法),但随后运行调用SSIS程序包的存储过程失败,因为需要Windows身份验证才能运行程序包。
如果时间敏感性不是问题(而不是),您可以让您的DBA启用代理吗?因为这是正确的解决方案。 –