> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thanx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SQL Server

> Configuring your SQL Server destination.

## Prerequisites

* [ ] If your SQL Server database is protected by security groups or other firewall settings, you will need to have the data-syncing service's static IP available to complete Step 1.
* [ ] Confirm that your SQL Server database is configured to allow TCP/IP connections.

## Step 1: Allow access

Create a rule in a security group or firewall settings to whitelist:

* incoming connections to your host and port (usually `1433`) from the static IP.
* outgoing connections from ports `1024` to `65535` to the static IP.

## Step 2: Create writer user

Create a database user to perform the writing of the source data.

1. Open a connection to your SQL Server database.
2. Create a user for the data transfer by executing the following SQL command. The should be the target destination database.

```sql theme={null}
USE <database>;
CREATE LOGIN <username> WITH PASSWORD = '<password>';
CREATE USER <username> FOR LOGIN <username>;
```

3. Grant user `CREATE TABLE` privileges on the database.

```sql theme={null}
GRANT CREATE TABLE TO <username>;
```

<Warning>
  **Understanding the `CREATE TABLE` permission in SQL Server**

  The `CREATE TABLE` permission is a database level permission that allows for the creation of new tables in a given database. The user must also have the `ALTER` permission granted on a given schema in order to create new tables in that schema (see the next step for details).
</Warning>

4. Grant user `CREATE SCHEMA` privileges on the database *if the schema does not exist*.

```sql theme={null}
GRANT CREATE SCHEMA TO <username>;
```

<Warning>
  **If the `SCHEMA` already exists**

  By default, the service creates a new schema based on the destination configuration. If you prefer to create the schema yourself before connecting the destination, you may must ensure that the writer user has the proper permissions on the schema, using `GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON SCHEMA :: <schema> TO <username>;`.

  If the `SCHEMA` already exists, the user does not need the `GRANT CREATE SCHEMA` permission.
</Warning>

## Step 3: Add your destination

Securely share your **host name**, **database name**, **port**, your chosen **schema name**, **username**, and **password** with us to complete the connection.
