Agent Job代理 执行SSIS Package
程序员文章站
2022-04-15 17:25:47
摘要: 在使用Agent Job时, 运行SSIS包的Run as账号,必须有SSIS中connection manager的连接权限。 如果没有连接权限,可以用创建proxy账号,并确保proxy账号有连接权限的方式来执行。 案例: 1. Package包中,用到了ODBC的方式连接到数据源,但是 ......
摘要: 在使用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执行定时任务时,就没有问题了。