Linking Azure SQL Server as a source
The Azure SQL Server connector can link your database tables to PostHog.
This applies to any MS SQL Server, not just Azure hosted databases. We use Microsoft ODBC 18 to connect to your SQL server.
For Azure databases, we only use SQL authentication (and not Entra ID). You can find your connection details by following the steps listed here.
The Azure database also needs to be publicly accessible (or use a SSH tunnel). You can follow step 1 of this Microsoft guide to enable public access and allow our inbound IP addresses found at the bottom of this page.
To link Azure SQL Server:
- Go to the Data pipeline page and the sources tab in PostHog
- Click New source and select Azure SQL Server
- Enter your database connection details:
- Host: The hostname or IP your database server like
db.example.comor123.132.1.100. - Port: The port your database server is listening to. The default is
1433. - Database: The name of the database you want like
analytics_db. - User: The username with the necessary permissions to access the database.
- Password: The password for the user.
- Schema: (Optional) The schema for your database. Leave blank to browse and sync tables from all schemas, or specify one to limit the selection. The default is
dbo.
- Host: The hostname or IP your database server like
- Click Link
The data warehouse then starts syncing your Azure SQL Server data. You can see details and progress in the sources tab.
Configuration
| Option | Type | Required |
|---|---|---|
Connection string (optional) | text | No |
Host | text | Yes |
Port | number | Yes |
Database | text | Yes |
User | text | Yes |
Password | password | Yes |
Schema | text | No |
Use SSH tunnel? | ssh-tunnel | No |
Selecting columns
By default, PostHog syncs all columns from each table. To sync only specific columns:
- During source setup, click Columns next to any table in the table picker.
- Uncheck columns you don't want to sync.
- Primary key columns and the incremental sync field (if configured) are always synced and cannot be disabled.
You can also change column selection after setup:
- Go to the sources tab and click your Azure SQL Server source.
- Click Configure next to any schema.
- Under Columns, select which columns to sync.
When you add columns to a schema using incremental or append sync, PostHog prompts you to choose:
- Sync forward only - New columns are populated only for future data. Existing rows show
NULLfor the new columns. - Full resync - Triggers a complete resync to backfill the new columns for all rows.
Numeric, decimal, and money columns with values exceeding a precision of 76 or scale of 32 can't be synced. If a sync fails with this error, you have three options:
- Constrain the column with a lower precision/scale
- Cast it to text in a view
- Round the values at the source
If your sync fails with "Invalid object name," the database couldn't find a table or view you're syncing. Common causes include dropped or renamed objects, views referencing missing tables, or cross-database permission issues. Check that all synced objects exist and that the connection user has SELECT permissions on them and their dependencies.
Troubleshooting
Firewall blocking PostHog
This error occurs when your SQL Server's firewall blocks connections from PostHog's IP addresses. Azure SQL error 40615 shows a message containing "is not allowed to access the server."
To fix this:
- Add PostHog's IP addresses to your server's firewall rules. On Azure SQL, do this through the Azure portal under Networking > Firewall rules, or by running
sp_set_firewall_rule. - Wait a few minutes for the new rules to take effect.
- Re-enable the sync in PostHog.
See the Inbound IP addresses section below for the IP addresses to allowlist.
Inbound IP addresses
We use a set of IP addresses to access your instance. To ensure this connector works, add these IPs to your inbound security rules:
| US | EU |
|---|---|
| 44.205.89.55 | 3.75.65.221 |
| 52.4.194.122 | 18.197.246.42 |
| 44.208.188.173 | 3.120.223.253 |