Setting up TeamCity with MS SQL Server
This article provides step-by-step instructions on integrating TeamCity with a MS SQL Server. For a quick reference, see this section.
MS SQL server
MS SQL Server Management Studio
Enable TCP/IP protocol for your SQL server
Open SQL Server Configuration Manager and do the following:
Expand SQL Server Network Configuration, click Protocols for MS SQL.
In the right pane, right-click TCP/IP, then click Enabled and select Yes. (MS SQL comes with TCP/IP disabled by default.) Click OK.
You need to restart your MSSQL server for the changes to take effect: in the left pane, click SQL Server Services, in the right pane right-click SQL Server and click Restart.
Check that SQL Server Browser is running.
Create New Database
In MS SQL Server Management Studio:
Connect to your database server, right-click the Databases node in the Object Explorer, and select New database.
On the General page, specify the database name ("TeamCity" on the screenshot below) and allocate sufficient transaction log space. The recommended minimum is 1 GB (1024 MB). The requirements vary depending on how intensively the server will be used.
Specify the primary collation. Go to the Options node in the left pane and select a collation on the right. We recommend a case-sensitive collation (with the collation name ending with
_CS_AS) corresponding to your locale. Click Ok to save the settings:
Make sure the
no countsetting is disabled as follows: right-click the server instance in Object Explorer, go to Properties | Connections. In the Default Connection Options frame,
no countmust be turned off. Save changes if any.
Set Up TeamCity Database User
SQL Server supports two ways of authentication: SQL Server authentication and Windows authentication mode.
SQL Authentication requires specifying username and a password in the database settings. It is recommended to start with this authentication before you try to use Windows authentication.
Windows authentication (MS SQL integrated security) allows the TeamCity server running under a specific Windows user connect to the SQL server as that user, without providing a username and a password. However, it requires additional setup
Create Dedicated User for TeamCity with SQL Server Authentication
Go to the Security node, right-click Logins, select New Login, and in the General window that opens provide the login name ("TeamCity" on the image below), select the SQL server authentication and provide the password for the user. Set the default database to TeamCity.
Select User Mapping in the left pane, in the upper right pane check the TeamCity database in the list and in the lower pane grant the user TeamCity database owner rights: check the
db_ownerbox. Click OK.
Create SQL Database User with Windows Authentication
Go to the Security node, right-click Logins, select New Login, and in the General window that opens provide the login name, select Windows authentication, and click the search button.
In the Select user or Group dialog, specify the user account which will be used to run TeamCity. Click Check names. Once the user is found, click OK.
Grant this user the DB owner permissions: select User Mapping in the left pane, in the upper right pane check the TeamCity database in the list and in the lower pane grant the user TeamCity database owner rights: check the
db_ownerbox. Click OK.
Set Up JDBC Driver for SQL Server Database
Download a Microsoft JDBC driver version 6.0 or later (pick
.tar.gzdepending on your TeamCity server platform) from the Microsoft Download Center.
Unpack the downloaded package into a temporary directory.
mssql-jdbc-<version>.jre8.jarin versions above 6.0) package from the just downloaded package into the
<TeamCity Data Directory>/lib/jdbcdirectory.
Additional Settings for Windows Authentication (MS SQL Integrated Security)
For Windows authentication (MS SQL integrated security), in addition to the JDBC driver, it is necessary to install native driver library
sqljdbc_auth.dll from the JDBC driver package. The required version of the library depends on the bitness of the Java version used by the server.
For the default 32-bit JVM bundled with the TeamCity server, copy the
<sql_jdbc_home>/enu/auth/x86/sqljdbc_auth.dll file into
<TeamCity Data Directory>/lib/jdbc/native/windows-i386.
For the 64-bit JVM used to run the TeamCity server, use
<sql_jdbc_home>/enu/auth/x64/sqljdbc_auth.dll, and place it into the
<TeamCity Data Directory>/lib/jdbc/native/windows-amd64 directory.
Start the TeamCity server. For Windows authentication (MS SQL integrated security), make sure the server is running under the user configured at this step.
Select MS SQL as the database.
Click the Refresh the JDBC drivers if asked.
Specify the connection settings:
Database host — your SQL server host.
Port — optional. By default, TeamCity will try to connect to the database on a default port (
1433). If your database uses a different port (for example, it can be autoassigned by MS SQL Express or changed manually), remember to enter it in this field. You can check what port is used by your database in SQL Server Configuration Manager: TCP/IP Properties | IP Addresses | TCP Dynamic Ports.
Database instance name — leave blank for the default SQL server instance. If a named instance is used, provide its name here.
Database name — the name of the newly created database
Select the required authentication type, for SQL Server authentication provide the credentials of the dedicated SQL user configured at this step.
Continue with the setup. It'll take some time to initialize the database schema and the components.