Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Avsnittet data-source definierar information om databasåtkomst. Den definierar även databasalternativ.
Inställningar för datakälla
| Property | Description |
|---|---|
| data-source | Objekt som innehåller inställningar för databasanslutning |
| data-source.database-type | Databas som används i serverdelen: mssql, postgresql, mysql, , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Anslutningssträng för den valda databastypen |
| data-source.options | Databasspecifika egenskaper (till exempel alternativ för SQL Server, Cosmos DB osv.) |
| data-source.options.database | Namnet på Azure Cosmos DB för NoSQL-databasen (krävs när database-type = cosmosdb_nosql) |
| data-source.options.container | Namnet på Azure Cosmos DB för NoSQL-containern (krävs när database-type = cosmosdb_nosql) |
| data-source.options.schema | Sökväg till GraphQL-schemafilen (krävs när database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Aktiverar sändning av JSON-webbtokenanspråk (JWT) som sessionskontext (endast SQL Server) |
| data-source.health | Objekt som konfigurerar hälsokontroller för datakällan |
| data-source.health.enabled | Aktiverar slutpunkten för hälsokontroll |
| data-source.health.name | Identifierare som används i hälsorapporten |
| data-source.health.threshold-ms | Maximal varaktighet i millisekunder för hälsokontrollfråga |
Format overview
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
// mssql only
"set-session-context": <true> (default) | <false>,
// cosmosdb_nosql only
"database": <string>,
"container": <string>,
"schema": <string>
},
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
},
"data-source-files": ["<string>"]
}
Data source
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
database-source |
object | ✔️ Yes | - |
Nested properties
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Yes | None |
data-source |
connection-string |
string | ✔️ Yes | None |
data-source |
options |
object | ❌ Nej | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
mssql |
SQL i infrastrukturresurser | - |
mssql |
Azure SQL Database | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Sql Analytics-slutpunkt för infrastrukturresurser | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB för NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB för PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Exempel: Azure SQL & SQL Server
"data-source": {
"database-type": "mssql",
"connection-string": "Server=tcp:myserver.database.windows.net,1433;Initial Catalog=MyDatabase;User ID=MyUser;Password=MyPassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
"options": {
"set-session-context": true
}
}
Note
We use SqlClient for Azure SQL and SQL Server, which supports these connection strings variants.
Konsumera SESSION_CONTEXT
För Azure SQL och SQL Server kan Data API-byggare inkludera anspråksinformation i SQL:s SESSION_CONTEXT.
CREATE PROC GetUser @userId INT AS
BEGIN
-- Use claims
IF SESSION_CONTEXT(N'user_role') = 'admin'
BEGIN
RAISERROR('Unauthorized access', 16, 1);
END
SELECT Id, Name, Age, IsAdmin
FROM Users
WHERE Id = @userId;
END;
Exempel: Azure Cosmos DB
"data-source": {
"database-type": "cosmosdb_nosql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"options": {
"database": "Your_CosmosDB_Database_Name",
"container": "Your_CosmosDB_Container_Name",
"schema": "Path_to_Your_GraphQL_Schema_File"
}
}
Note
De "alternativ" som anges (database, containeroch schema) är specifika för Azure Cosmos DB.
Environment variables
Använd miljövariabler för att hålla oformaterade texthemligheter borta från konfigurationsfilen.
Tip
Data API Builder stöder båda @env() function.env-filerna](../reference-functions.md#env) and [.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
Data API Builder använder exponentiell backoff för att försöka databasbegäranden igen efter tillfälliga fel.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Hanterade tjänstidentiteter (MSI)
Hanterade tjänstidentiteter (MSI) stöds med DefaultAzureCredential definierade i Azure.Identity biblioteket. Läs mer om hanterade identiteter i Microsoft Entra för Azure SQL.
User-Assigned hanterade identiteter (UAMI)
For User Assigned Managed Identity, append the Authentication and User Id properties to your connection string while substituting in your User Assigned Managed Identity's client id: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
System-Assigned hanterad identitet (SAMI)
For System Assigned Managed Identity, append the Authentication property and exclude the UserId and Password arguments from your connection string: Authentication=Active Directory Managed Identity;.
Hälsa (datakälla)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Data API Builder stöder flera konfigurationsfiler, var och en med sin egen datakälla. Med det här konfigurationsblocket kan varje datakälla ha en egen hälsokonfiguration.
Nested properties
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
string | No | database-type |
data-source.health |
threshold-ms |
integer | No | 1000 |
Check name
Eftersom flera konfigurationsfiler kan peka på datakällor av samma typ kan dessa datakällor inte särskiljas i hälsorapporten. Använd name för att tilldela en unik, identifierbar etikett som endast används i hälsorapporten.
Check behavior
Den enklaste möjliga frågan – specifik för databastypen – körs mot den angivna datakällan för att verifiera att anslutningen kan öppnas. Använd egenskapen threshold-ms för att konfigurera den maximala acceptabla varaktigheten (i millisekunder) för att frågan ska slutföras.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}