I / O错误:SSO失败:SSPI未初始化

时间:2012-06-07 04:52:35

标签: sql-server jdbc pentaho kettle sspi

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

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

从论坛上的文章中,我将库sqljdbc_auth.dll复制到jre/bin文件夹中。结果非常好,我可以使用窗口身份验证连接到SQL服务器。但是这个函数不稳定,我的意思是有时它运行良好,有时会引发异常

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

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

谢谢。

3 个答案:

答案 0 :(得分:0)

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

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

libswt \ Win64的

答案 1 :(得分:0)

要连接到SQL Server 2008,我必须安装'Microsoft JDBC Driver 4.0 for SQL Server',然后在%PENTAHO_DI_JAVA_OPTIONS%中将sqljdbc_auth.dll的路径添加到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。现在工作非常可靠。

答案 2 :(得分:0)

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

如果我们只使用了一个与DB的初始连接,则此错误从未出现过。

此问题已在更高版本的JDBC中修复。我们目前使用1.3.0并且I/O Error: SSO Failed: SSPI Not Initialized永远不会出现。