2017-02-27 120 views
0

这是一个令我头痛的问题。SSIS包仅在Windows帐户登录到服务器时执行

我在Visual Studio 2015中使用以下设置创建了一些SSIS包;

域/用户为 工程防护等级:EncryptSensitiveWithPassword(密码是相同域/用户) 包保护级别:EncryptSensitiveWithPassword(密码是相同域/用户)

ODBC连接进行测试和工作。

SSIS来自SQL Server 2014 => MySQL 5.6,64位和32位ODBC驱动程序都安装在MySQL的Windows Server 2012框中。

已将软件包部署到集成服务目录。

当我运行包时,它工作100%,没有错误。但只有当AD帐户域/用户登录到实施SQL Server的Windows Server 2012框时。

当包没有登录域/用户失败,出现以下错误:

Package: Error: An ODBC error -1 has occurred. 
Data Flow Task: Error. ODBC Destination failed validation and returned error code 0x80004005 
Data Flow Task: Error: The AcquireConnection method call to the connection manager DATA_WH.root failed with error code 0xC0014009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. 

在SQL Server上:

创建Security..Logins..domain /用户 分配的ServerAdmin角色 映射到SSISDB和msdb 状态被授予连接到数据库的权限 已启用登录 创建的凭据名为database_credential 身份:域/用户 密码:与域/用户相同 将域/用户映射到database_credential

在SSIS作业活动中,作业类型设置为以database_credential的形式运行,类型为SQL Server Integration Services包。

只要我以Windows Server上的域/用户身份登录,甚至不需要登录到SQL Server SSIS包就可以完美运行。当用户没有登录时,它会翻倒。

这真让我困惑。我正在转圈,需要一些帮助。

任何任何想法?

+1

你检查过32位/ 64位吗?运行带有“以32位运行”标志的作业并发布结果。 – Ferdipux

+0

@Ferdipux谢谢,试图在SQL Server上作业的配置,但仍然失败。即使通过设置包调试在Visual Studio中,没有运气的属性设置为32位...任何其他的想法试过吗? – stevenbranigan82

+0

我很想完全忽略SQL SSIS,只是从一个vbs脚本运行它,并从命令行调用DTEXEC,我有另一个包,我运行这种方式,它像发条一样运行。出于某种原因,SSIS让我头疼。但不利的一点是我没有得到历史等。 – stevenbranigan82

回答

0

任何有兴趣在此,或有同样的问题,我通过创建在运行使用DTEXEC.exe命令行包中的Windows任务调度计划任务实现的一种变通方法。

它的工作完美,唯一的问题是不存在的历史,你会得到通常在SQL Server中使用SSIS服务,但上档它的作品被记录在或不在用户不管。

希望有人认为这有用。

相关问题