MS SQL Integrated Security - Starting SonarQube on Linux

  • 8.9 LTS Community Edition
  • MSSQL 2019 on Windows Server 22, SonarQube LTS on RHEL 7.7

I’m trying to start SonarQube using integrated security. I made sure to install the correct driver package 9.2.0 and copied the .dll to both the bin and lib folder of my java installation on RHEL. I made sure to comment out username and password in the properties file.

Path is as follows:
/usr/lib/jvm/java-11-openjdk-11.0.16.1.1-1.el7_9.x86_64/bin
/usr/lib/jvm/java-11-openjdk-11.0.16.1.1-1.el7_9.x86_64/lib

When I launch SonarQube, using ./sonar.sh console, the cursor keeps flashing. It only gets to the launch process. SonarQube does not start and no errors appear. I have no trouble connecting to SonarQube using normal SQL authentication.

I’m wondering if there’s anything I still have to configure. Looking at this post from stack, it seems that it’s not possible: java - Connect To SQL Server With Windows Authentication From A Linux Machine Through JDBC - Stack Overflow. However, that was 6 years ago.

Would appreciate any help.

Hey there.

Typically we recommend that Linux users continue to use SQL authentication, as this doesn’t require any additional setup and historically Integrated Authentication was only possible for Linux machines joined to a Windows domain using a specific JDBC driver (that we didn’t test or support).

That being said, it appears the winds have changed and it’s possible to utilize Integrated Authentication with the regular Microsoft SQL Server JDBC Driver on a Linux box joined to a Windows domain if Kerberos is setup correctly on the Linux machine.

There are some more details here, and it appears that by appending…

;integratedSecurity=true;authenticationScheme=JavaKerberos

Caveat: We have not tested this ourselves! But if you believe Kerberos is set up correctly on your Linux machine that is joined to a Windows domain, we encourage you to give it a go on a test instance and let us know any roadblocks you run into.

Thanks for this. Will probably stick to SQL authentication for now