Prerequisites
Perform the following steps to configure your Google Cloud SQL Server Source:
Enable Data Replication Modes
Hevo supports data replication from SQL Server using its built-in Change Tracking and Change Data Capture features. These features track changes, including inserts, updates, and deletes, made to your database. Read Supported Ingestion Modes for more information on these data tracking methods.
Enable Change Tracking
You must enable change tracking on your SQL Server database to replicate incremental data.
Perform the following steps to do this:
-
Connect to your SQL Server database as any user with the ALTER DATABASE privilege or as a masteruser, using an SQL client tool such as sqlcmd.
-
Run the following commands to enable change tracking:
Note: Replace the placeholder values in the commands below with your own. For example, <database_name> with demo.
-
At the database level:
ALTER DATABASE <database_name> SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 7 DAYS, AUTO_CLEANUP = ON)
The CHANGE_RETENTION value specifies the duration for which change tracking information is retained. When the AUTO_CLEANUP value is set to ON, SQL Server runs a cleanup task to remove lapsed or invalid change tracking metadata. Read Enable Change Tracking for a Database for more information on the available options.
Note: Hevo recommends setting the CHANGE_RETENTION value to 7 DAYS. This reduces the risk of log expiry and missed data changes for Pipelines with a low sync frequency, such as 24 hours.
-
At the table level:
```sql
ALTER TABLE <schema_name>.<table_name> ENABLE CHANGE_TRACKING
```
Run the command given above for each table that you want to replicate. Read Enable Change Tracking for a Table for more information on the available options.
Enable Change Data Capture
You must enable change data capture on your SQL Server database to replicate incremental data.
Perform the following steps to do this:
-
Connect to your SQL Server database as a masteruser with an SQL client tool, such as sqlcmd.
-
Run the following commands to enable change data capture:
Note: Replace the placeholder values in the commands below with your own. For example, <database_name> with demo.
-
At the database level:
EXEC msdb.dbo.gcloudsql_cdc_enable_db '<database_name>';
-
At the table level:
USE <database_name>;
--Begin tracking a table
EXEC sys.sp_cdc_enable_table
@source_schema = N'<schema_name>',
@source_name = N'<table_name>',
@role_name = NULL;
Run the command given above for each table that you want to replicate using CDC. Read Enable Table CDC for more information on the available options.
Detecting schema changes for CDC-enabled tables
Hevo displays a warning in the user interface (UI) when the schemas of a CDC-enabled Source table and the associated change table differ. This typically happens when columns are added or modified in a Source table that is already included in the Pipeline.

To allow Hevo to ingest data from these columns, re-enable CDC for the affected table. Re-enabling CDC recreates the change table with the updated schema. To do this, perform the following steps:
Note: Hevo provides a stored procedure to automatically re-enable CDC when schema changes are detected. Using this procedure removes the need for manual CDC reconfiguration. Refer to Hevo Stored Procedures for Change Tracking and Change Data Capture for the installation steps.
-
Connect to your SQL Server database as a masteruser with an SQL client tool, such as sqlcmd.
-
Run the following commands to re-enable CDC for the table included in your Hevo Pipeline:
Note: Replace the placeholder values in the commands below with your own. For example, <affected_table_name> with customers.
USE <database_name>; -- Switch context to the database with the changed schema
-- Stop tracking CDC for the affected table
-- This removes the existing capture instance and its change history.
EXEC sys.sp_cdc_disable_table
@source_schema = N'<schema_name>',
@source_name = N'<affected_table_name>',
@capture_instance = N'all';
-- Start tracking CDC for the affected table
-- This creates a new capture instance that includes the updated columns
EXEC sys.sp_cdc_enable_table
@source_schema = N'<schema_name>',
@source_name = N'<affected_table_name>',
@role_name = NULL;
Once CDC is successfully re-enabled for the affected table, Hevo does the following:
If you want Hevo to ingest data immediately, Resync the Objects. If re-enabling CDC is unsuccessful, the Pipeline continues ingesting data from the affected tables using the previously stored schema.
Note: If the Schema Evolution Policy for your Pipeline is set to Allow all changes and a new table is added to your schema after the Pipeline is created, you must enable at least one data capture mechanism for the new table and refresh the schema. The newly added table is automatically included in the Pipeline for data ingestion. If none of the tracking mechanisms are enabled for the table, Hevo marks it as inaccessible and does not ingest any data from it.
Allowlist Hevo IP addresses for your region
You need to allowlist the Hevo IP address for your region to enable Hevo to connect to your Google Cloud SQL Server database. To do this:
-
Log in to the Google Cloud SQL Console and click the Instance ID that you want to connect to Hevo.

-
In the left navigation pane, click Connections.

-
On the Connections page, click the NETWORKING tab, scroll down to the Authorized networks section, and then click ADD A NETWORK.

-
In the New network panel, specify the following:

-
Click DONE.
-
(Optional) Click ADD A NETWORK and repeat steps 4 and 5 to add all the IP addresses you want to add.
-
Click SAVE.

Create a Database User and Grant Privileges
1. Create a database user (Optional)
Note: Skip to the Grant privileges to the user section if you are using an existing database user.
Perform the following steps to create a database user in your Google Cloud SQL Server database:
-
Connect to your Google Cloud SQL Server database as a masteruser with any SQL client tool, such as sqlcmd.
-
Run the following commands:
-- Select the master database to create a login
USE master;
CREATE LOGIN <login_user> WITH PASSWORD = '<password>';
-- Add a database user to your database for the login created above
USE <database_name>;
CREATE USER <database_user> FOR LOGIN <login_user>;
Note: Replace the placeholder values in the commands above with your own. For example, <login_user> with hevouser.
2. Grant privileges to the user
The database user requires additional privileges to capture incremental data, depending on the replication mode selected in the Hevo Pipeline.
Grant privileges for Change Tracking
To enable your database user to replicate data from Change Tracking–enabled tables, the following privileges are required:
The database user for Hevo requires the following privileges to connect to and ingest data from your Google Cloud SQL Server database:
| Privilege |
Grants access to |
| SELECT |
Retrieve rows from the database tables. |
| VIEW CHANGE TRACKING |
View changes made to tables and schemas for which the Change Tracking feature is enabled. |
Connect to your Google Cloud SQL Server database as a masteruser with any SQL client tool, such as sqlcmd, and run the following commands:
-- Grant SELECT privilege at the database level
GRANT SELECT ON DATABASE::<database_name> TO <database_username>;
-- Grant SELECT privilege at the schema level
GRANT SELECT ON SCHEMA::<schema_name> TO <database_username>;
-- Grant VIEW CHANGE TRACKING privilege at the schema level
GRANT VIEW CHANGE TRACKING ON SCHEMA::<schema_name> TO <database_username>;
-- Grant VIEW CHANGE TRACKING privilege at the table level
GRANT VIEW CHANGE TRACKING ON OBJECT::<schema_name>.<table_name> TO <database_username>;
Note: Replace the placeholder values in the commands above with your own. For example, <database_username> with hevo.
Grant privileges for Change Data Capture
To enable your database user to replicate data from CDC-enabled tables, perform the following steps:
-
Connect to your Google Cloud SQL Server database as a masteruser with any SQL client tool, such as sqlcmd.
-
Run the following commands:
Note: Replace the placeholder values in the commands below with your own. For example, __ with _hevo_.
USE <database_name>;
-- Grant SELECT privilege at the schema level
GRANT SELECT ON SCHEMA::<schema_name> TO <database_user>;
-- Optionally, grant read access to the CDC schema
GRANT SELECT ON SCHEMA::cdc TO <database_user>;
Note: Hevo recommends using a dedicated, minimum-privilege database user in production Pipelines.
Retrieve the Configuration Details (Optional)
Perform the following steps to obtain the configuration details required to create your Hevo Pipeline:
1. Retrieve the database hostname
-
Log in to the Google Cloud SQL Console.
-
Locate the database hostname of the master instance under the Public IP address column.

Note: Google Cloud SQL always uses the default port number, 1433, for the SQL Server instance.
2. Retrieve the database names
-
Log in to the Google Cloud SQL Console and click the Instance ID that you want to connect to Hevo.

-
In the left navigation pane, click Databases.

On the Databases page, you can locate the name of your database under the Name column.
