【发布时间】:2016-02-05 23:43:47
【问题描述】:
Sonarqube 5.2 发布后,不再支持 jTDS JDBC 驱动。我们使用此驱动程序连接到我们的 SQLServer 实例,但我们必须切换到 Microsoft SQLServer 驱动程序。我们在 Ubuntu 上运行 Sonarqube,并使用 Active Directory 帐户连接到 SQLServer 数据库。因为我们在 Ubuntu 上运行,所以不能使用集成安全性,因此必须在 Sonarqube 的 JDBC 配置中提供凭据。这将产生以下属性:
sonar.jdbc.url=jdbc:sqlserver://sqlserverhost.my.domain.com:1433;databaseName=sonar;selectMethod=cursor
sonar.jdbc.username=someuser
sonar.jdbc.password=somepassword
这会导致 SQLServer 出现“登录失败”并显示消息“找不到与提供的名称匹配的登录名”。
接下来我尝试使用包含域的用户名进行连接,从而产生以下属性:
sonar.jdbc.url=jdbc:sqlserver://sqlserverhost.my.domain.com:1433;databaseName=sonar;selectMethod=cursor
sonar.jdbc.username=DOMAIN\\someuser
sonar.jdbc.password=somepassword
然而,这也会导致 SQLServer 中出现“登录失败”,这里的消息是“尝试使用带有 SQL Server 身份验证的 NT 帐户名。”
我错过了什么?
更新:
Sonarqube 日志可以在这里找到:http://pastebin.com/AGB9bTQG
我能想到与 jTDS 连接 url 不同的一件事:
jTDS 连接 url 包含“;domain=my.domain.com”,Microsoft SQLServer 驱动程序似乎不支持。因此我尝试了 SQLServer 拒绝的 DOMAIN\someuser 设置。
【问题讨论】:
-
在之前版本的SQ中(使用jTDS时),你使用的用户名和密码和现在的一样吗?换句话说,您是只更新了“sonar.jdbc.url”属性还是更改了其他内容?
-
是的,我们使用相同的凭据已经有一段时间了,只更改了 sonar.jdbc.url 和 sonar.jdbc.driver ofcourse
-
你不必指定“sonar.jdbc.driver”,你设置了什么值?
-
我设置了 sonar.jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
-
你确定你使用的用户和以前一样吗?您能否将服务器日志放在 pastebin.com 上并编辑您的问题以提供链接,以便我们仔细查看?
标签: sql-server jdbc sonarqube