Sql server 在JIRA插件中使用Windows身份验证与SQL Server的JDBC URL连接
我现在束手无策。我正在尝试将JIRA插件(Atlassian Java SDK)连接到SQL Server 2012数据库。要求我使用Windows身份验证,但JIRA正在记录: com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证 我已经读到,可以通过将Sql server 在JIRA插件中使用Windows身份验证与SQL Server的JDBC URL连接,sql-server,jdbc,jira,windows-authentication,jira-plugin,Sql Server,Jdbc,Jira,Windows Authentication,Jira Plugin,我现在束手无策。我正在尝试将JIRA插件(Atlassian Java SDK)连接到SQL Server 2012数据库。要求我使用Windows身份验证,但JIRA正在记录: com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证 我已经读到,可以通过将sqljdbc_auth.dll文件添加到程序的库路径来解决这个问题,但是除了我没有使用的基本JIRAdbconfig.xml之外,没有专门针对JIRA插件的参考。这是使
sqljdbc_auth.dll
文件添加到程序的库路径来解决这个问题,但是除了我没有使用的基本JIRAdbconfig.xml
之外,没有专门针对JIRA插件的参考。这是使用以下代码在插件内建立的连接:
String url = String.format("jdbc:sqlserver://%s:1433;databaseName=%s;integratedSecurity=true;domain=XXXX;", server, database);
我已尝试将dll文件添加到以下位置,但均无效:
C:/{JIRA安装路径}/bin
C:/{JIRA安装路径}/jre/bin
C://{JAVA安装路径}/jre_8.x.x/bin
我已切换到使用JTDS驱动程序,以查看JIRA是否出于某种原因无法使用标准JDBC驱动程序,但出现了类似的错误: java.sql.SQLException:I/O错误:SSO失败:未加载本机SSPI库。检查java.library.path系统属性
我还创建了一个新的Java应用程序来在受控环境中测试这一点,但在将
ntlmauth.dll
文件添加到C:\Windows\System32
目录后,不会出现此错误。这让我相信这可能是JIRA中的一个bug,或者我的某些配置不正确。经过数周的搜索,我得出了自己的结论:
如果不使用密码(有时这是使用Windows/Active Directory凭据的全部要点),则(目前)不可能做到这一点。但是,您可以将JTDS驱动程序与域、用户名和密码结合使用,对需要windows身份验证的服务器进行身份验证。这并不能解决核心问题,但从我所能看出的是目前唯一一个与之足够接近的解决方案。没有jira,您可以使用jdbc正常连接到该数据库?这正是您所配置的,因为您的屏幕截图没有显示实际使用的值。请注意1)
java.library.path
必须指向文件夹,2)sqljdbc_auth.dll
(auth,而不是ath)有32位和64位的变体。您需要使用哪一个取决于所使用的JVM,3)运行JIRA的用户可能是无法对SQL Server使用Windows身份验证的本地系统帐户(尽管这会导致不同的错误IIRC)。@MarkRotteveel Yes,java.library.path
指向的是C:\Program Files\Microsoft JDBC 4.0 for SQL Server\sqljdbc_4.0\x64
文件夹,而不是dll。JIRA使用的JVM是64位版本,因为这是我安装的JIRA/Java版本。@Daniel是的,当我在一个新的Java项目中尝试它并将jdbc驱动程序添加到类路径时,它工作得很好。