Agent Job代理 执行SSIS Package
摘要: 在使用Agent Job时, 运行SSIS包的Run as账号,必须有SSIS中connection manager的连接权限。
如果没有连接权限,可以用创建proxy账号,并确保proxy账号有连接权限的方式来执行。
案例:
1. Package包中,用到了ODBC的方式连接到数据源,但是创建的ODBC是User DNS(仅对当前账号可用),而非System DNS(所有登录到改机的用户都可用,包括NT Services)
SSIS连接:
2. 创建的SSIS包,在项目中手工运行时没有问题;但是在Agent Job中做定时调用时,就会报错 0xC0014009.
这里用的默认Run as账号: SQL Server Agent Service Account, 因为该账号没有查看ODBC的User DNS的权限,所以报错;若是想使用这个默认Agent账号运行,可以尝试创建ODBC数据源的时候,使用System DNS的方式。
3. 若想在User DNS下,依然能在Job中调用,则需要创建一个proxy代理账号,并确保该代理账号能够访问User DNS, 然后使用该账号运行SSIS Package.
这个账号,需要在Credential中创建出来的,这里admin具有查看User DNS的权限,因此在Job中再Run as执行定时任务时,就没有问题了。