弹性搜索 JDBC River 插件 SQL 服务器集成安全

Elastic Search JDBC River Plugin SQL Server Integrated Security

所以我一直致力于使用 JDBC River 插件实现弹性搜索,以便从我们的 SQL 服务器数据库中获取数据到弹性搜索中。

我使用 SQL 服务器凭据可以正常工作,但尝试使用集成安全性不起作用。它将创建索引,但其中没有数据。 我一直在使用的参数是:

  PUT /_river/test_river/_meta 
    {  
       "type":"jdbc",
       "jdbc":
             {
                "driver":"com.microsoft.sqlserver.jdbc.SQLServerDriver", 
                "url":"jdbc:sqlserver://testServer:1433;databaseName=TestDb;
                integratedSecurity=true;",
                "user":"",
                "password":"",
                "sql": "select * from users",
                "poll":"30s",
                "index":"testindex",
                "type":"testusers"
             }
     }

我试过很多东西,包括完全删除用户和密码字段,删除 integratedSecurity=true,但结果相同。 我检查了他们的 github 的 river 插件,它说这个问题早在一月份就已修复,但它似乎仍然没有用。

另外我用的是弹性搜索版本:1.5.1 和 jdbc 河流插件版本:1.4.0.10

如有任何帮助,我们将不胜感激

删除用户和密码选项。你不会需要它们的。

在 运行 elasticserch.bat 时检查控制台,当它尝试更新河流时,您应该会看到一条错误消息。我要冒险并假设您可能看到一个错误,指出无法找到文件 sqljdbc_auth.dll。如果是这种情况,您可以从 here 下载此文件并将 sqljdbc_auth.dll 的 x64 版本复制到您的 java lib 文件夹。对我来说,这个文件夹是 C:\ProgramData\Oracle\Java\javapath,但您可以在控制台 window 中键入 echo %path% 来找到您的文件夹。

完成这些步骤后,重新启动 elasticsearch.bat,它应该会开始处理您的河流。如果不是,post 返回您在 运行 elasticsearch.bat.

时看到的输出