使用非 Windows 帐户从 sql server 代理作业运行 SSIS 包
是否可以使用非 Windows 帐户(sql server 帐户)的代理帐户从 sql server 代理作业运行 SSIS 包。
我创建了一个使用特定 SQL Server 帐户运行的 SSIS 包,用于将数据从一台服务器复制到另一台服务器。每次运行包之前,都可以通过输入 sql server 帐户的密码来完成此操作。当尝试安排程序包在代理帐户下运行时,它仅接受 Windows(AD) 凭据,并且无法使用 sql server 帐户创建代理帐户!我还有哪些其他解决方法?
Is it possible to run an SSIS package from a sql server agent job using a proxy account that is not a windows account (sql server account).
I created a SSIS package that runs with a particular sql server account to copy data from one server to another. This can be done everytime by typing the password of the sql server account before running the package. When trying to schedule the package to run under a proxy account, it only accepts Windows(AD) credentials and a proxy account cannot be created with a sql server account! What other workarounds do I have?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
代理帐户必须是 Windows 帐户...但代理并不是完成您想要做的事情的唯一方法。
查看以下文章中的“解决方案”选项卡下的其他方法:
http://support.microsoft.com/kb/918760
即,将凭据存储为 SSIS 的一部分包/模板或将包移动到数据库中。
Proxy account must be Windows account... but proxy isn't the only way to accomplish what you're trying to do.
Look under the "Resolution" tab in the following article for other approaches:
http://support.microsoft.com/kb/918760
i.e. storing credentials as part of your SSIS package/template or moving the package into the database.
就像lazyDBA所说 - 代理帐户必须是真实的Windows帐户。
但详细来说,这个代理帐户只不过是运行 SSIS 进程来执行你的包的帐户。
这不包括您已为其指定用户名和密码(SQL Server 登录名)的包内的数据源。理论上,任何用户都可以运行这些包,但他们必须能够读取 SSIS 文件中加密的用户名和密码(假设您已选择使用加密保存敏感数据)。
您可以做的(也许应该做的) - 是将 SaveSensitiveData 更改为 EncryptSensitiveWithPassword,然后在代理作业中设置此密码,这样就不必每次都输入密码。那么哪个代理/Windows 帐户执行此 SSIS 包就无关紧要了。您仍将使用 SSIS 包中定义的 SQL Server 用户名/密码。
参考:http://msdn.microsoft.com/en-us/library/ms141747 .aspx
like lazyDBA says - the proxy account must be a real windows account.
But to elaborate on this, this proxy account is nothing more than the account which runs the SSIS process to execute your package.
This does not include data sources inside your package for which you have specified username and password (SQL Server Logins). Any user can in theory run these packages, but they must be able to read the username and password that's encrypted in the SSIS file (given that you've selected to SaveSensitiveData with Encryption).
What you could do (maybe should do) - is to change the SaveSensitiveData to EncryptSensitiveWithPassword and then setup this password in the agent job so that it doesn't have to be inputted every time. It would then not matter which proxy / windows account executes this SSIS package. You'll still be using the SQL Server username/password as defined in your SSIS packages.
Reference: http://msdn.microsoft.com/en-us/library/ms141747.aspx