托管 SQL Server speaks Microsoft SQL Server
Connect Azure SQL to Excel, Sheets and AI
Azure SQL Database or SQL Managed Instance. Same SQL Server dialect, branded so you pick the service you actually pay for.
One connection, every surface
Where your Azure SQL data can go
Connect Azure SQL once and the same read-only connection feeds all of these — no second setup, no second copy of the data. 9 of 11 have a step-by-step guide.
Azure SQL to Excel
Microsoft Excel · Excel add-in
Pull live Azure SQL results straight into a worksheet and refresh them on demand — desktop Excel, Excel Online, Microsoft 365.
Read the Microsoft SQL Server guideAzure SQL to Google Sheets
Sheets add-on
Run a saved Azure SQL query from the sidebar and drop the rows into the sheet. Shared collaborators can refresh it themselves.
Read the Microsoft SQL Server guideAzure SQL MCP server
Claude, Cursor and MCP clients
Give an AI assistant read-only access to Azure SQL with the schema it needs to write correct SQL — no credentials in the chat.
Read the Microsoft SQL Server guideAzure SQL REST API
HTTP endpoint
Publish a Azure SQL query as an authenticated JSON endpoint any application can call, with an OpenAPI 3.1 spec and ready-made Postman, Insomnia and Hoppscotch collections. No database port is opened.
Read the Microsoft SQL Server guideAzure SQL to Airtable
Automation platform
Sync Azure SQL rows into an Airtable base on a schedule, or fetch them inside an Airtable automation script.
Read the Microsoft SQL Server guideAzure SQL to Baserow
Automation platform
Feed a Baserow table from Azure SQL over the REST endpoint — self-hosted or Baserow cloud.
Read the Microsoft SQL Server guideAzure SQL to SeaTable
Automation platform
Keep a SeaTable base current with Azure SQL data without exporting a file or exposing the database.
Read the Microsoft SQL Server guideAzure SQL to Smartsheet
Automation platform
Push Azure SQL results into a Smartsheet grid so plans and reports read from the source system, not last week's export.
Read the Microsoft SQL Server guideAzure SQL to Anvil
Anvil Works · App platform
Back an Anvil Python app with Azure SQL through the REST endpoint instead of embedding database credentials in the app.
Read the Microsoft SQL Server guideAzure SQL to Power BI
Power Query M
Paste the generated Power Query M into the Power BI Advanced Editor and the report reads live Azure SQL results over HTTPS — no ODBC driver, no database port opened.
How Power BI works no Azure SQL walkthrough written yetAzure SQL alerts and reports
Slack · Discord · Email · Webhook
Put a Azure SQL query on a schedule and have the rows delivered to Slack, Discord, email or a signed webhook — or hold the message until a row count, threshold or percentage change crosses the line you set.
How alerts and reports work no Azure SQL walkthrough written yet工作原理
5 steps, no inbound firewall change
Install the Network Agent on a VM inside the VNet and reach the database over a private endpoint. The agent only connects outward, so no inbound rule and no public endpoint are needed.
Give it the server name from the Azure portal — <name>.database.windows.net. Port 1433 is assumed and left out unless you changed it.
Use a SQL login with SELECT on what you want read. SQL authentication is the supported model here.
Let it read the schema. Tables, columns, types and keys are catalogued so the Query Builder and Nova know the shape before anyone writes T-SQL.
Save, and Microsoft Excel, Google Sheets, Power BI, MCP and REST all read that database through the one connection — or join it to your other sources in a single statement.
Feature deep-dive
What Azure SQL gives you
What Azure sees when the agent connects
Azure SQL is a shared service with opinions about who may talk to it, so it is worth being precise about what arrives.
- Reachability is tested over TCP before any login is attempted, so a wrong server name or a blocked path fails as a network problem rather than arriving at Azure as a failed login.
- Connection pooling is off. No idle sessions accumulate against your database between queries — which on a serverless tier is the difference between staying paused and being held awake.
- The Azure firewall's own refusal is recognised for what it is, so a server that has not been told about your address reports a network block rather than a generic failure.
- Every connection to Azure SQL is encrypted, because Azure requires TLS and refuses anything less. That guarantee is Azure's rather than something the agent negotiates on its behalf.
Serverless, and the first query after a pause
This is the one rough edge worth knowing about before you meet it, because the symptom looks like a broken connection and is not.
- A serverless database auto-pauses when idle, and waking it takes time the connection attempt has to sit through.
- The agent waits 30 seconds to connect and 35 seconds for a query to begin returning. A cold wake can exceed that.
- There is no automatic retry, so the honest description is that the first query after a long pause may time out and want running a second time. Everything after it is normal.
- A paused database is recognised as paused rather than reported as missing, so the message tells you what actually happened.
It is SQL Server, with two Azure-shaped caveats
The dialect, the types and the schema layout are the same as any other SQL Server, which is the point of using it. Two things differ.
- The default schema is dbo, and that is what a cross-source reference carries — azure_sql.dbo.orders.
- Windows and Microsoft Entra authentication are not supported; a SQL login is what the agent presents.
- Azure SQL Database has no cross-database T-SQL of its own, so the offer to query a second database on the same connection is withheld for these hosts. It does not affect cross-source queries at all — those are assembled by Query Streams across separate connections, so joining an Azure SQL database to anything else works normally.
- Managed Instance shares the same hostname suffix and is connected to the same way; there is no separate card and no Managed-Instance-only behaviour.
-- Ordinary T-SQL, read-only, against the managed service
SELECT TOP (50)
c.Name,
COUNT(o.OrderId) AS Orders,
SUM(o.Amount) AS Revenue
FROM dbo.Customers AS c
JOIN dbo.Orders AS o ON o.CustomerId = c.CustomerId
WHERE o.PlacedAt >= DATEADD(day, -30, SYSUTCDATETIME())
GROUP BY c.Name
ORDER BY Revenue DESC;
Shared by every database connector
True of every database connector
- 仅限出站 — the agent opens one encrypted connection out to Query Streams. No inbound port to forward, no VPN, no IP allowlist, nothing about your database exposed to the internet.
- Credentials stay put — the database username and password live on the machine you installed the agent on. Query Streams never receives them and cannot reach your database on its own.
- 只读,强制执行 — one statement at a time, SELECT and friends only. A write is rejected on your own machine before it is ever sent to the server, rather than relying on a permission somebody remembered to set.
- Deploy as many agents as you like — one per site, region or cloud. Every data source they can see arrives in a single dropdown, so nobody has to know which agent hosts what.
What you get once a query is saved
- Share the capability, not the SQL — a colleague or an outside partner can run your query and change its filters without ever seeing the statement behind it.
- Filters from either direction — declare them yourself as @variables, or let the connector spot the literal values already sitting in your WHERE clause and offer those as dropdowns.
- Read it from anywhere — Microsoft Excel, Google Sheets, Power BI, the REST API, AI assistants over MCP, the Query Builder and Nova all read the same saved query.
- Run several at once — five saved queries into five worksheet tabs, streamed concurrently, however large the results.
- Join it to anything else you have connected — another database, a business API, or a folder of files, in one read-only statement.
Cross-source SQL
Join Azure SQL to the rest of your data
One statement can span Azure SQL and your other connections at once. Each source runs only the part it can, streams the result back, and the join happens centrally — the sources never talk to each other and nothing is copied anywhere.
3 connections · 3 agents
One statement
-- nothing copied, nothing merged, nothing scheduled
选择 c.region, COUNT(*) AS orders, SUM(i.amount_due) AS invoiced
从 azure_sql.dbo.orders1 f
连接 pg_crm.public.customers2 c ON c.id = f.customer_id
连接 计费.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.region
ORDER BY invoiced DESC;
The three parts are connection, schema and table — and the connection name is whatever you called it. Illustrative columns; your tables will be your tables. Read-only applies to every piece: SELECT, WITH and EXPLAIN only, with a ceiling on how much any one source may hand over for a single query. 联合查询的工作原理
Connection details
What Azure SQL needs
- Host
- <server>.database.windows.net — the same suffix for Azure SQL Database and SQL Managed Instance
- Default port
- 1433, and left out of the connection string when it is the default
- Driver
- Microsoft.Data.SqlClient 6.0.1
- Authentication
- SQL authentication. Microsoft Entra ID, managed identity and Windows authentication are not supported
- 加密
- Azure mandates TLS and refuses unencrypted connections, so traffic is encrypted; the agent does not verify the certificate chain
- Pooling
- Off, deliberately — nothing idles against the database between queries
- Timeouts
- 5 seconds for the TCP reachability check, 30 seconds to connect, 35 seconds for a query to begin returning
- Serverless
- A cold wake can outlast the connect timeout; there is no automatic retry, so the first query after a long pause may need running twice
- Permissions
- A SQL login with SELECT on what you want read
- Default schema
- dbo, which is what a federated reference carries
The security story here is the same one that makes the on-premises SQL Server connector worth having, moved to Azure. The agent sits inside your VNet and opens one connection outward, so the database keeps public network access switched off, keeps its firewall empty of office addresses that change, and never has anything listening for you. Nothing is copied out and nothing is scheduled — a query runs when somebody asks for it.
Serverless is called out deliberately rather than glossed over. Auto-pause is a cost feature people choose on purpose, and the honest consequence is that the first query after a quiet spell can exceed a 30-second connect timeout with no retry behind it. Knowing that in advance turns a mysterious failure into an expected one; pooling being off also means Query Streams is not the thing keeping a paused database awake and billable.
Azure SQL Database cannot join across its own databases in T-SQL, which is a limitation of the service rather than of this connector. Cross-source queries in Query Streams are assembled across separate connections, so an Azure SQL database joins to a Postgres application database, a folder of CSVs or a billing API in one read-only statement regardless — written azure_sql.dbo.orders, because dbo is what SQL Server carries.
Vendor documentation: azure.microsoft.com
FAQ
Questions about Azure SQL
Which tools can read Azure SQL data through Query Streams?
All of them, from one connection: Excel, Google Sheets, MCP, REST API, Airtable, Baserow, SeaTable, Smartsheet, Anvil, Power BI, scheduled alerts and reports. Connect the database once and every surface reads the same read-only connection — there is no per-tool setup and no second copy of the data.
Do I have to open a firewall port to my Azure SQL database?
No. The Query Streams Network Agent runs inside your network and opens a single outbound encrypted connection. Nothing listens for inbound traffic, no VPN is required, and the database keeps its existing firewall rules.
Can Query Streams change data in Azure SQL?
No. The agent enforces read-only at the point of execution — one statement at a time, SELECT and friends only. Credentials stay on the agent and are never sent to Query Streams.
What does Query Streams need to connect to Azure SQL?
A reachable host, a role and its password — the agent carries the driver, so nothing is installed on the database. Host: <server>.database.windows.net — the same suffix for Azure SQL Database and SQL Managed Instance. Default port: 1433, and left out of the connection string when it is the default. Driver: Microsoft.Data.SqlClient 6.0.1. Authentication: SQL authentication. Microsoft Entra ID, managed identity and Windows authentication are not supported.
Can I join Azure SQL to another database in the same query?
Yes — that is a federated query. One statement can reference Azure SQL and your other connections at once, written as connection.schema.table. Each source runs only the part it can and streams the result back; the join happens centrally, so the sources never connect to each other and nothing is copied or scheduled. Read-only applies to every piece — SELECT, WITH and EXPLAIN only — and there is a ceiling on how much any one source may hand over for a single query. Federated queries are a plan feature; the federated queries page carries the current source and size limits.
Is connecting Azure SQL different from connecting Microsoft SQL Server?
Only the connection string. Azure SQL speaks the Microsoft SQL Server wire protocol, so filters, scheduling, sharing, the Excel and Google Sheets add-ons and the MCP server all behave identically. The Azure SQL card pre-fills the host, port and SSL settings that provider expects.
Is there a Azure SQL to Excel guide?
Yes — it is the Microsoft SQL Server guide, and it is correct for Azure SQL as written. Azure SQL speaks the Microsoft SQL Server wire protocol, so Azure SQL to Excel, Azure SQL to Google Sheets and every other destination follow the same steps. The only Azure SQL-specific part is the connection string, and the Azure SQL card fills that in for you.
Put Azure SQL where the work happens
Install the agent, point it at your database, and pick a destination.
只读 仅限出站 Credentials stay on the agent

