我正在尝试运行一个简单的SSIS包(将数据从外部文件夹复制到SQL 2005表中).我想从Asp.net 2.0应用程序运行此包.有什么建议?
我搜索了许多不同的博客和网站,但所有这些方法都导致失败(通常是因为安全问题)
dtexec/FILE"包名"等
EXEC master..xp_cmdshell @cmd(据说是一个非常糟糕的主意)
sp_start_job
app.LoadPackage(@"\ servername\sharename\Package1.dtsx",null)
在此先感谢您提供给我的任何帮助.
那么,杰克,你所列出的是一个半正确答案的大杂烩.
有很多方法可以启动SSIS包.但是,最好的方法可能就是sp_start_job.现在,这意味着您已经创建了一个将运行SSIS包的作业.
很多时候,这只小狗由于凭证问题而失败.也就是说,您正在尝试将血腥的东西作为SQL Server代理帐户(又名LOCAL SYSTEM)运行,这对于执行能力来说并不是一个好兆头.因此,您需要创建一个Credential,然后创建一个代理作为运行的作业.因此,您需要做的是:
CREATE CREDENTIAL MyCred WITH IDENTITY 'CORP\MyUser', SECRET = '<PassGoesHere>'
GO
sp_add_proxy @proxy_name='MyProxy', @enabled = 1, @credential = 'MyCred'
GO
sp_grant_proxy_to_subsystem @proxy_name = 'MyProxy', @subsystem_id = 3
GO
sp_add_job @job_name = 'MyJob', @enabled = 1
GO
sp_add_jobstep
@job_name = 'MyJob',
@step_name = 'Run SSIS Package',
@subsystem = 'CMDEXEC',
@command = 'dtexec /F C:\Path\To\Package.dtsx',
@proxy_name = 'MyProxy'
Run Code Online (Sandbox Code Playgroud)
有意义的文档:
| 归档时间: |
|
| 查看次数: |
5791 次 |
| 最近记录: |