我有一个SSIS包,用于查询某些记录的视图,然后使用数据库邮件发送电子邮件。我想将包部署到这些视图所在的SQL Server,然后使用SQL Server Agent安排我们,但我遇到了很多问题。
主要问题是,在作业中有一个连接管理器,它存储了可以访问视图和电子邮件配置文件的SQL Server帐户的凭据。我已经将软件包设置为EncryptSensitiveWithPassword而不是User Key,但我似乎无法找到任何方法在运行作业时将该密码实际传递给SQL Server代理。因此,当它执行时失败,因为它无法连接。
许多网站都说使用配置文件,但是当我走这条路线时,它完全抱怨无法建立OLEDB连接。在那种情况下,我甚至无法在本地机器上运行该作业。
其他一些网站建议将软件包复制到计算机上的本地ssis软件包商店,但我只能通过SQL Server Tools访问该机器,我无法远程访问或在文件系统上安装任何东西,所以我有使用SSIS部署过程通过清单文件进行安装。
我已经阅读了有关在另一个数据库表中存储设置的内容,但这再次出现了服务器权限问题。
最后我尝试在作业调度程序中传递/ password或/ decrypt,但是当我单击确定时,调度程序会删除该参数。
这是一个内部服务器,安全性并不是一个大问题,任何想法我怎么能以明文传递解密密码或只是告诉SSIS不打扰保护敏感数据?
答案 0 :(得分:1)
诀窍是:
这意味着密码随包一起保存,因此可以在任何人执行包时使用。如果这是你不希望任何人执行你的东西,那么适当地锁定安全性。
或者,您可以更改连接,以便它使用集成安全性(Windows身份验证而不是SQL登录)并更改作业,以便它以具有数据库访问权限的用户身份执行程序包。查看包裹查询。从您不需要密码的角度来看,这是首选选项,而是通过用户身份和权限进行管理。
答案 1 :(得分:0)
听起来好像在使用配置文件时,您没有正确设置配置文件。
在本地运行时,您收到的确切错误是什么?我可以尝试重新创建这个问题。
答案 2 :(得分:0)
您是否在出价中设置了用于存储密码的包,然后将包保存到ssis并告诉它加密密码?如果您没有在本地保存它们,可能是您丢失了密码,然后在没有它们的情况下推送它。