1

我正在使用 pentaho 数据集成 4.1 (Kettle) 来构建 ETL 系统。我的客户需要使用窗口身份验证连接到数据库(MS SQL Server),我知道 Kettle 支持它。但是,当我运行我的 Kettle 工作时,它会引发异常

"I/O Error: SSO Failed: SSPI Not Initialized".

从论坛上的一篇文章中,我将库复制sqljdbc_auth.dlljre/bin文件夹中。结果还不错,可以使用window认证连接SQL server。但是这个功能并不稳定,我的意思是有时它运行良好,有时它会抛出异常

"I/O Error: SSO Failed: SSPI Not Initialized".

请告诉我如何解决此错误。

谢谢你。

4

3 回答 3

0

你在使用 JTDS 驱动程序吗?尝试将其与 ntlmauth.dll 结合使用——当在连接到各种远程 sqlserver 数据库的 Windows Server 2003 上运行 PDI 时,它对我们非常有用。

我们将 DLL 放在这个文件夹中:

libswt\win64

于 2012-06-08T08:32:22.470 回答
0

要连接到 SQL Server 2008,我必须安装“Microsoft JDBC Driver 4.0 for SQL Server”,然后将 sqljdbc_auth.dll 的路径添加到 %PENTAHO_DI_JAVA_OPTIONS% 中的 Spoon.bat。像这样:

set OPT=%PENTAHO_DI_JAVA_OPTIONS% "-Djava.library.path=%LIBSPATH%;C:\PROGRA~1\MICROS~1.0FO\sqljdbc_4.0\enu\auth\x86;C:\PROGRA~1\IBM\SQLLIB\BIN" "-DKETTLE_HOME=%KETTLE_HOME%" "-DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "-DKETTLE_LOG_SIZE_LIMIT=%KETTLE_LOG_SIZE_LIMIT%"

丑陋,但那是你的 Windows 下的 Java。不过现在工作相当可靠。

于 2013-02-01T22:52:19.543 回答
0

在将 JDBC 1.2.2 与 MSSQL 2008 一起使用时,我遇到了同样的问题。事实证明,驱动程序中存在一个错误,如果您使用多个连接对其进行初始化,它会随机崩溃。

如果我们只使用一个与数据库的初始连接,则此错误永远不会出现。

该问题已在更高版本的 JDBC 中得到修复。我们目前使用 1.3.0 并且I/O Error: SSO Failed: SSPI Not Initialized从未出现过。

于 2013-08-01T14:00:03.563 回答