SonarQube 在具有集成身份验证的 SQL Server 上作为 Windows 服务运行 - 有人有工作示例吗?

Posted

技术标签:

【中文标题】SonarQube 在具有集成身份验证的 SQL Server 上作为 Windows 服务运行 - 有人有工作示例吗?【英文标题】:SonarQube running as a Windows Service on SQL Server with integrated authentication - Does anyone have a working example? 【发布时间】:2015-10-07 14:27:02 【问题描述】:

SonarQube 作为服务安装。 jtds-1.3.1-dist 用于 SQL Server 访问。 该服务使用 SQL Server 身份验证工作。

我尝试了许多配置 - 一些示例包括:

sonar.jdbc.url=jdbc:jtds:sqlserver://dbserver/SonarQube;instance=instance1;SelectMethod=Cursor;integratedSecurity=true

sonar.jdbc.url=jdbc:jtds:sqlserver://dbserver/SonarQube;instance=instance1;SelectMethod=Cursor;integratedSecurity=true;domain=thedomain

sonar.jdbc.url=jdbc:jtds:sqlserver://dbserver/SonarQube;instance=instance1;SelectMethod=Cursor;integratedSecurity=true;useNtlm2=true;domain=thedomain

而 ntlmauth.dll 分散在硬盘驱动器中一半的文件夹周围!

日志要么显示类似于“用户声纳无法连接”或“用户来自不同域”的内容。

似乎没有任何效果。

如果有人能发布 sonar.jdbc.url 的工作示例和 ntlmaut.dll 的位置,我将不胜感激。

【问题讨论】:

【参考方案1】:

以下 SonarQube 和带有集成身份验证的 SQL Server 的设置/配置对我有用。

SonarQube 服务器

SonarQube 服务器版本 = 5.2

sonar.properties

sonar.jdbc.url = jdbc:sqlserver://dbserver;databaseName=SonarQube;integratedSecurity=true

请注意:

    必须存在名为 SonarQube 的数据库,并且其排序规则必须区分大小写 (CS) 和区分重音 (AS) 如果要使用 Microsoft Sql Server 的集成安全性,请使用以下连接字符串 如果您使用“Integrated Security”,请勿设置“sonar.jdbc.username”或“sonar.jdbc.password”属性”。 要使“Integrated Security”正常工作,您必须从以下网址下载 Microsoft SQL JDBC 驱动程序包 http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774 并将 sqljdbc_auth.dll 复制到一个文件夹并将该文件夹添加到环境变量 %PATH%。根据 SonarQube 服务器计算机的体系结构复制 32 位或 64 位版本的 dll。 此版本的 SonarQube 已通过 Microsoft SQL JDBC 4.1 版和 Microsoft SQL Server 2012 测试。

【讨论】:

在撰写本文时,使用的 SonarQube 版本为 5.1.2。对我们来说仍然是这种情况,所以不幸的是,这个答案并不相关。在我们的 5.2 测试服务器上,配置集成安全性很简单。

以上是关于SonarQube 在具有集成身份验证的 SQL Server 上作为 Windows 服务运行 - 有人有工作示例吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何指定具有集成安全性的用户 ID/密码?

SQL Server 集成身份验证模式

SQL Server Windows 身份验证安全

Sonarqube 委托对 Gitlab 的身份验证失败

Azure SQL Active Directory集成身份验证,联合域

与 IIS、Firefox 和 SQL Server 集成的 Windows 身份验证