Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在JIRA插件中使用Windows身份验证与SQL Server的JDBC URL连接_Sql Server_Jdbc_Jira_Windows Authentication_Jira Plugin - Fatal编程技术网

Sql server 在JIRA插件中使用Windows身份验证与SQL Server的JDBC URL连接

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插件的参考。这是使

我现在束手无策。我正在尝试将JIRA插件(Atlassian Java SDK)连接到SQL Server 2012数据库。要求我使用Windows身份验证,但JIRA正在记录:

com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证

我已经读到,可以通过将
sqljdbc_auth.dll
文件添加到程序的库路径来解决这个问题,但是除了我没有使用的基本JIRA
dbconfig.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
有什么好处

更新: 我已经进入并在JIRA Windows服务配置工具中将JDBCJAR/DLL分别添加到类路径/库路径中。仍然得到相同的错误

更新2:
我已切换到使用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驱动程序添加到类路径时,它工作得很好。