Tunnels — SQL Server
This page covers reaching an on-prem Microsoft SQL Server database through Conduit using a Tunnel’s read-only mssql connector. If you haven’t deployed a Tunnel yet, start with the Quickstart; this page is the SQL-specific layer on top of it.
What’s in scope
Section titled “What’s in scope”Any Microsoft SQL Server database the Tunnel host can reach on the local network — including the SQL Server databases behind on-prem business systems (ERPs, accounting packages, line-of-business apps). The Tunnel talks to SQL Server directly via the mssql connector.
If the system’s data lives in something other than SQL Server (a proprietary or file-based data store), the mssql connector cannot reach it — confirm the deployment is SQL Server-backed before planning this deploy.
Read-only by design
Section titled “Read-only by design”The mssql connector is read-only. It exposes exactly three tools and never writes:
| Tool | What it does |
|---|---|
query |
Runs a single read-only SELECT/WITH statement. Writes and multi-statement batches are refused. Results are capped at 100 rows by default, 1000 max. |
list_tables |
Lists tables available to the connected SQL login. |
describe_table |
Returns a table’s columns and types. |
Writes — posting transactions, editing records — go through the application that owns the database, never raw SQL. This path is for reading data (reporting, lookups, agent queries), not mutating it.
The scoped read-only SQL login is the real enforcement
Section titled “The scoped read-only SQL login is the real enforcement”The mssql connector’s tools are read-only, but the enforcement boundary you own is the SQL principal you give it. Provision a dedicated, scoped read-only login — do not reuse an application or admin account.
- Grant
db_datareaderon the target database, or a curated set of roles limited to the tables/views the use case actually needs. - Do not grant write, DDL, or admin roles. Even though the connector won’t issue writes, the login itself should be incapable of them — that’s defense-in-depth, and it’s the control a security review will look for.
- Scope the login to the one database in play.
What you’ll be asked for
Section titled “What you’ll be asked for”When your Conduit operator configures the mssql connector for you, they’ll need these (the connector’s config fields — see the Reference):
host— the SQL Server hostname or IP the Tunnel can reach on the local network.port— SQL Server TCP port (default1433).database— the target database name.user— the scoped read-only SQL login you provisioned above.password— that login’s password (stored encrypted in Conduit; pushed over the tunnel; held in Tunnel memory only).encrypt—"true"(default) to require TLS to SQL Server; use"disable"only for a lab DB with no TLS.
Once applied, you’ll see config applied connectors=[mssql] in the Tunnel logs, and the three tools are reachable through Conduit for authenticated users in your org.
Related
Section titled “Related”- Tunnels — quickstart — deploy a Tunnel first, then have your operator enable mssql.
- Tunnels — reference — the full mssql config fields and tool details.
- Tunnels — architecture context — how config (including the SQL credential) is encrypted, pushed, and held in memory.

