--- title: "Azure SQL" description: "Connect Azure SQL so OpenSRE can diagnose database issues and query performance during investigations" --- When a database alert fires, you need answers fast. OpenSRE connects to your Azure SQL instances to quickly diagnose what's going wrong — checking server health, finding those slow queries that are bogging things down, monitoring resource usage, and analyzing query execution plans to pinpoint bottlenecks. ## What you'll need Before getting started, make sure you have: - An Azure SQL Database instance up and running - Network connectivity from your OpenSRE environment to your Azure SQL server - Database credentials ready (username and password) - Your server hostname handy ## Getting connected ### The easy way: Interactive setup If you prefer guided steps, just run: ```bash opensre integrations setup ``` Pick **Azure SQL** from the menu and follow the prompts. ### The flexible way: Environment variables Add these to your `.env` file: ```bash AZURE_SQL_SERVER=myserver.database.windows.net AZURE_SQL_DATABASE=mydb AZURE_SQL_USERNAME=sqladmin AZURE_SQL_PASSWORD=your_password AZURE_SQL_ENCRYPT=true ``` | Variable | Default | Description | | --- | --- | --- | | `AZURE_SQL_SERVER` | — | **Required.** Azure SQL server hostname | | `AZURE_SQL_DATABASE` | — | **Required.** Database name | | `AZURE_SQL_USERNAME` | — | **Required.** SQL authentication username | | `AZURE_SQL_PASSWORD` | — | **Required.** SQL authentication password | | `AZURE_SQL_ENCRYPT` | `true` | Encrypt your connection for security | | `AZURE_SQL_PORT` | `1433` | SQL Server port | | `AZURE_SQL_DRIVER` | `ODBC Driver 18 for SQL Server` | ODBC driver name | ### The permanent way: Integration store You can also save your connection details to `~/.opensre/integrations.json`: ```json { "version": 1, "integrations": [ { "id": "azure-sql-prod", "service": "azure_sql", "status": "active", "credentials": { "server": "myserver.database.windows.net", "database": "mydb", "username": "sqladmin", "password": "your_password", "encrypt": true } } ] } ``` ## Finding your connection details Your Azure SQL server hostname looks like `myserver.database.windows.net`. You can find it: 1. Open the Azure Portal 2. Navigate to your SQL Database resource 3. Look for **Server name** in the overview panel 4. Copy it and add `.database.windows.net` if needed ## Network access: Firewall setup Azure SQL uses firewall rules to control who can connect. Make sure OpenSRE can reach your server: 1. In Azure Portal, go to your SQL server → **Security** → **Firewalls and virtual networks** 2. Add your OpenSRE environment's IP address 3. Or check **Allow Azure services and resources to access this server** if running in Azure If you're not sure of your IP, start with a permissive rule temporarily, get OpenSRE working, then lock it down. ## Investigation tools When OpenSRE investigates an Azure SQL-related alert, these diagnostic tools are available: ### Server status Retrieves service tier, resource utilization, connection counts, and database size. Useful for spotting DTU or vCore throttling. ### Current queries Lists active sessions and running queries to identify lock contention or long-running operations. ### Slow queries Surfaces top resource-consuming queries from Query Store or DMVs to pinpoint performance regressions. ### Wait stats Reports cumulative wait types to identify I/O, lock, or CPU bottlenecks. ### Resource stats Returns CPU, memory, and I/O utilization metrics for the target database. ## Test the connection Ready to verify everything works? ```bash opensre integrations verify azure_sql ``` Expected output: ``` Service: azure_sql Status: passed Detail: Connected to Azure SQL Database ... ``` ## Troubleshooting | Symptom | Fix | | --- | --- | | **Connection timeout** | Add your OpenSRE IP to the Azure SQL firewall rules. | | **Login failed** | Confirm `AZURE_SQL_USERNAME` and `AZURE_SQL_PASSWORD`. Check that SQL authentication is enabled on the server. | | **SSL/certificate error** | Keep `AZURE_SQL_ENCRYPT=true`. Install the correct ODBC driver (`ODBC Driver 18 for SQL Server`). | | **Permission denied on DMVs** | Grant `VIEW SERVER STATE` and `VIEW DATABASE STATE` to the OpenSRE user. | ## Security best practices - Use a **dedicated read-only SQL user** for OpenSRE — avoid admin credentials. - Keep **encryption enabled** (`AZURE_SQL_ENCRYPT=true`) in production. - Restrict firewall rules to the OpenSRE environment's egress IP. - Store credentials in `.env` or the integration store, never in source code.