-
Suggestion
-
Resolution: Unresolved
-
None
-
None
-
46
-
3
-
Problem Definition
SQL Server Integrated Authentication isn't natively supported in Bamboo 6.0.x since the transition to Microsoft JDBC from JTDS. Integrated authentication allows the driver to login to the database server using Windows / Domain authentication. The credentials are assumed from the Bamboo Service user.
Attempting to start Bamboo without this required library will cause an error similar to the below: {code:java} 2017-06-22 10:52:35,163 ERROR [localhost-startStop-1] [AbstractUpgradeManager] java.lang.RuntimeException: java.sql.SQLException: Connections could not be acquired from the underlying database! java.lang.RuntimeException: java.sql.SQLException: Connections could not be acquired from the underlying database! at com.google.common.base.Throwables.propagate(Throwables.java:160) at com.atlassian.bamboo.upgrade.AbstractBootstrapUpgradeTask.getDatabaseConnection(AbstractBootstrapUpgradeTask.java:47) … Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication. ClientConnectionId:0147495a-6902-4d38-8253-3cf3287759df at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1748) at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<init>(AuthenticationJNI.java:58) … Caused by: java.lang.UnsatisfiedLinkError: no sqljdbc_auth in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at com.microsoft.sqlserver.jdbc.AuthenticationJNI.<clinit>(AuthenticationJNI.java:32)
Suggested Solution
Bundle the required libraries for SQL Server Integrated Authentication and provide documentation on how to enable it. Bitbucket Server example:
Workaround
This workaround assumes the relevant attributes have already been added to the JDBC connection string in <bamboo-home>/bamboo.cfg.xml. Example:
<property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=bamboo;integratedSecurity=true</property>
- Check $BAMBOO_INSTALL\lib to find which version of the Microsoft SQL driver is bundled. For example, Bamboo 9.0 ships with mssql-jdbc-9.4.0.jre8.jar
- Find the relevant release for the Microsoft JDBC driver downloads for that version: https://github.com/microsoft/mssql-jdbc/releases
- Download the mssql-jdbc_auth.zip for the release that matches the version bundled with Bamboo
- Copy the relevant DLL for your platform from the archive (e.g. x86 vs x64)
- Place it in a location on the java.library.path. For Windows, this is a location on your %PATH% environment variable or <bamboo-install>\bin