由于Sonarqube5.2已经发布,因此不再支持jTDS JDBC驱动程序。我们使用这个驱动程序来连接到我们的SQLServer实例,但是我们必须切换到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中的“登录失败”,这里的消息是“试图在SQLServer身份验证中使用NT帐户名”。
我遗漏了什么?
更新:
Sonarqube日志可以在这里找到:http://pastebin.com/AGB9bTQG
我可以想到一件与jTDS连接url不同的事情: jTDS连接url包含";domain=my.domain.com",而Microsoft驱动程序似乎不支持这一点。因此,我尝试了域\某个用户设置,但SQLServer拒绝了。
发布于 2015-11-20 23:07:14
驱动程序与jtds驱动程序完全不同。为了使用它,您需要指定authenticationScheme=JavaKerberos参数(请参考https://msdn.microsoft.com/en-us/library/gg558122(v=sql.110).aspx这里的问题是,您的Linux机器很可能不在同一个域中,所以您也需要在您的Linux机器上配置https://msdn.microsoft.com/en-us/library/gg558122(v=sql.110).aspx。你最好的选择就是混合模式。
发布于 2015-11-05 17:35:51
连接字符串格式已更改。不再:1443年或selectMethod
sonar.jdbc.url=jdbc:sqlserver://sqlserverhost.my.domain.com;databaseName=sonar
发布于 2015-11-12 12:27:13
连接字符串设置需要采用以下格式:
sonar.jbc.url=jdbc:sqlserver://{server}:{port #};databaseName={db name}
例如:
sonar.jbc.url=jdbc:sqlserver://localhost:36549;databaseName=Sonar
检查Server配置管理器是否启用了TCP/IP协议,并查找要连接到的SQL实例的端口号。请注意,连接字符串中的数据库名称区分大小写,必须与SSMS中显示的内容匹配。

Re: Windows -您需要使用Server用户,或者注释掉sonar.jdbc.username和sonar.jdbc.password,以便SonarQube在运行SonarQube服务的用户的凭据下建立连接;我认为它不支持模拟。
https://stackoverflow.com/questions/33539494
复制相似问题