121 lines
4.6 KiB
Markdown
121 lines
4.6 KiB
Markdown
---
|
|
title: Query SQL Server
|
|
list_title: SQL Server
|
|
description: >
|
|
Use [`sql.from()`](/flux/v0/stdlib/sql/from/) with the `sqlserver` driver to
|
|
query SQL Server.
|
|
menu:
|
|
flux_v0:
|
|
name: SQL Server
|
|
parent: SQL databases
|
|
weight: 101
|
|
related:
|
|
- /flux/v0/stdlib/sql/from/
|
|
list_code_example: |
|
|
```js
|
|
import "sql"
|
|
|
|
sql.from(
|
|
driverName: "sqlserver",
|
|
dataSourceName: "sqlserver://user:password@localhost:1433?database=examplebdb",
|
|
query: "GO SELECT * FROM Example.Table",
|
|
)
|
|
```
|
|
---
|
|
|
|
To query [Microsoft SQL Server](https://www.microsoft.com/sql-server/) with Flux:
|
|
|
|
1. Import the [`sql` package](/flux/v0/stdlib/sql/).
|
|
2. Use [`sql.from()`](/flux/v0/stdlib/sql/from/) and provide the following parameters:
|
|
|
|
- **driverName**: sqlserver
|
|
- **dataSourceName**: _See [data source name](#sql-server-data-source-name)_
|
|
- **query**: SQL query to execute
|
|
|
|
```js
|
|
import "sql"
|
|
|
|
sql.from(
|
|
driverName: "sqlserver",
|
|
dataSourceName: "sqlserver://user:password@localhost:1433?database=examplebdb",
|
|
query: "GO SELECT * FROM Example.Table",
|
|
)
|
|
```
|
|
|
|
---
|
|
|
|
- [SQL Server data source name](#sql-server-data-source-name)
|
|
- [SQL Server ADO authentication](#sql-server-ado-authentication)
|
|
- [SQL Server to Flux data type conversion](#sql-server-to-flux-data-type-conversion)
|
|
|
|
## SQL Server data source name
|
|
The `sqlserver` driver uses the following DSN syntaxes (also known as a **connection string**):
|
|
|
|
```
|
|
sqlserver://username:password@localhost:1433?database=examplebdb
|
|
server=localhost;user id=username;database=examplebdb;
|
|
server=localhost;user id=username;database=examplebdb;azure auth=ENV
|
|
server=localhost;user id=username;database=examplebdbr;azure tenant id=77e7d537;azure client id=58879ce8;azure client secret=0143356789
|
|
```
|
|
|
|
## SQL Server ADO authentication
|
|
Use one of the following methods to provide SQL Server authentication credentials as
|
|
[ActiveX Data Objects (ADO)](https://docs.microsoft.com/en-us/sql/ado/guide/ado-introduction?view=sql-server-ver15)
|
|
DSN parameters:
|
|
|
|
- [Retrieve authentication credentials from environment variables](#retrieve-authentication-credentials-from-environment-variables)
|
|
- [Retrieve authentication credentials from a file](#retrieve-authentication-credentials-from-a-file)
|
|
- [Specify authentication credentials in the DSN](#specify-authentication-credentials-in-the-dsn)
|
|
- [Use a Managed identity in an Azure VM](#use-a-managed-identity-in-an-azure-vm)
|
|
|
|
### Retrieve authentication credentials from environment variables
|
|
```
|
|
azure auth=ENV
|
|
```
|
|
|
|
### Retrieve authentication credentials from a file
|
|
{{% warn %}}
|
|
**InfluxDB Cloud** and **InfluxDB OSS** _**do not**_ have access to
|
|
the underlying file system and do not support reading credentials from a file.
|
|
To retrieve SQL Server credentials from a file, execute the query in the
|
|
[Flux REPL](/influxdb/v2/tools/flux-repl/) on your local machine.
|
|
{{% /warn %}}
|
|
|
|
```powershell
|
|
azure auth=C:\secure\azure.auth
|
|
```
|
|
|
|
### Specify authentication credentials in the DSN
|
|
```powershell
|
|
# Example of providing tenant ID, client ID, and client secret token
|
|
azure tenant id=77...;azure client id=58...;azure client secret=0cf123..
|
|
|
|
# Example of providing tenant ID, client ID, certificate path and certificate password
|
|
azure tenant id=77...;azure client id=58...;azure certificate path=C:\secure\...;azure certificate password=xY...
|
|
|
|
# Example of providing tenant ID, client ID, and Azure username and password
|
|
azure tenant id=77...;azure client id=58...;azure username=some@myorg;azure password=a1...
|
|
```
|
|
|
|
### Use a managed identity in an Azure VM
|
|
_For information about managed identities, see [Microsoft managed identities](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview)._
|
|
|
|
```
|
|
azure auth=MSI
|
|
```
|
|
|
|
## SQL Server to Flux data type conversion
|
|
`sql.from()` converts SQL Server data types to Flux data types.
|
|
|
|
| SQL Server data type | Flux data type |
|
|
| :-------------------------------------- | :------------------------------------------ |
|
|
| INT, TINYINT, SMALLINT, BIGINT | [int](/flux/v0/data-types/basic/int/) |
|
|
| DECIMAL, REAL, FLOAT, MONEY, SMALLMONEY | [float](/flux/v0/data-types/basic/float/) |
|
|
| DATETIMEOFFSET | [time](/flux/v0/data-types/basic/time/) |
|
|
| BIT | [bool](/flux/v0/data-types/basic/bool/) |
|
|
|
|
{{% caption %}}
|
|
All other SQL Server data types (including other [date/time types](https://docs.microsoft.com/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql?view=sql-server-ver15#DateandTimeDataTypes))
|
|
are converted to strings.
|
|
{{% /caption %}}
|