欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Agent Job代理 执行SSIS Package

程序员文章站 2024-01-20 13:53:46
摘要: 在使用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)     Agent Job代理 执行SSIS PackageAgent Job代理 执行SSIS Package

ssis连接:

Agent Job代理 执行SSIS Package

 

 

  2. 创建的ssis包,在项目中手工运行时没有问题;但是在agent job中做定时调用时,就会报错 0xc0014009.

      这里用的默认run as账号: sql server agent service account, 因为该账号没有查看odbc的user dns的权限,所以报错;若是想使用这个默认agent账号运行,可以尝试创建odbc数据源的时候,使用system dns的方式。

Agent Job代理 执行SSIS Package

 

  3. 若想在user dns下,依然能在job中调用,则需要创建一个proxy代理账号,并确保该代理账号能够访问user dns, 然后使用该账号运行ssis package.

Agent Job代理 执行SSIS PackageAgent Job代理 执行SSIS Package

 

  这个账号,需要在credential中创建出来的,这里admin具有查看user dns的权限,因此在job中再run as执行定时任务时,就没有问题了。

Agent Job代理 执行SSIS Package