Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In data-source de sectie worden de details van de databasetoegang gedefinieerd. Er worden ook databaseopties gedefinieerd.
Gegevensbroninstellingen
| Property | Description |
|---|---|
| gegevensbron | Object met databaseconnectiviteitsinstellingen |
| data-source.database-type | Database die wordt gebruikt in de back-end: mssql, postgresql, mysql, cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Verbindingsreeks voor het geselecteerde databasetype |
| data-source.options | Databasespecifieke eigenschappen (bijvoorbeeld opties voor SQL Server, Cosmos DB, enzovoort) |
| data-source.options.database | Naam van de Azure Cosmos DB for NoSQL-database (vereist wanneer database-type = cosmosdb_nosql) |
| data-source.options.container | Naam van de Azure Cosmos DB for NoSQL-container (vereist wanneer database-type = cosmosdb_nosql) |
| data-source.options.schema | Pad naar het GraphQL-schemabestand (vereist wanneer database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Hiermee schakelt u het verzenden van JSON-webtokenclaims (JWT) in als sessiecontext (alleen SQL Server) |
| data-source.health | Object configureren van statuscontroles voor de gegevensbron |
| data-source.health.enabled | Hiermee schakelt u het eindpunt van de statuscontrole in |
| data-source.health.name | Id die wordt gebruikt in het statusrapport |
| data-source.health.threshold-ms | Maximale duur in milliseconden voor statuscontrolequery |
| data-source.user-delegated-auth | Object configureren aan-Behalf-Of (OBO) door de gebruiker gedelegeerde verificatie (alleen mssql) |
| data-source.user-delegated-auth.enabled | Hiermee schakelt u OBO-verificatie in |
| data-source.user-delegated-auth.provider | OBO-id-provider (momenteel EntraId alleen) |
| data-source.user-delegated-auth.database-audience | Doelgroep voor het downstream-SQL-token |
Overzicht van opmaak
{
"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>
},
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
},
"data-source-files": ["<string>"]
}
Gegevensbron
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
data-source |
object | ✔️ Ja | - |
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Ja | None |
data-source |
connection-string |
string | ✔️ Ja | None |
data-source |
options |
object | ❌ Nee | None |
Vastgoedwaarden
database-type |
Description | Minimale versie |
|---|---|---|
mssql |
SQL in Fabric | - |
mssql |
Azure SQL Database | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Textielmagazijn | - |
dwsql |
Sql Analytics-eindpunt voor fabric | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB voor NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB voor PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Voorbeeld: 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 gebruiken SqlClient voor Azure SQL en SQL Server, die ondersteuning biedt voor deze verbindingsreeksvarianten.
Consumeren SESSION_CONTEXT
Voor Azure SQL en SQL Server kan Data API Builder claimgegevens bevatten in SQL 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;
Voorbeeld: 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 opgegeven opties (database, containeren schema) zijn specifiek voor Azure Cosmos DB.
Omgevingsvariabelen
Gebruik omgevingsvariabelen om geheimen zonder opmaak buiten uw configuratiebestand te houden.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Verbindingstolerantie
Data API Builder maakt gebruik van Exponential Backoff om databaseaanvragen opnieuw uit te voeren na tijdelijke fouten.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Managed Service Identities (MSI)
Managed Service Identities (MSI) worden ondersteund met DefaultAzureCredential gedefinieerde bibliotheek Azure.Identity . Meer informatie over beheerde identiteiten in Microsoft Entra voor Azure SQL.
User-Assigned Beheerde identiteiten (UAMI)
Voor door de gebruiker toegewezen beheerde identiteit voegt u de eigenschappen verificatie en gebruikers-id toe aan uw verbindingsreeks terwijl u de client-id van de door de gebruiker toegewezen beheerde identiteit vervangt: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
System-Assigned Managed Identity (SAMI)
Voor door het systeem toegewezen beheerde identiteit voegt u de eigenschap Verificatie toe en sluit u de argumenten UserId en Wachtwoord uit van de verbindingsreeks: Authentication=Active Directory Managed Identity;.
Status (gegevensbron)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Data API Builder ondersteunt meerdere configuratiebestanden, elk met een eigen gegevensbron. Met dit configuratieblok kan elke gegevensbron een eigen statusconfiguratie hebben.
Geneste eigenschappen
| 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 |
Naam controleren
Omdat meerdere configuratiebestanden naar gegevensbronnen van hetzelfde type kunnen verwijzen, kunnen deze gegevensbronnen niet worden onderscheiden in het statusrapport. Gebruik name dit om een uniek, identificeerbaar label toe te wijzen dat alleen in het statusrapport wordt gebruikt.
Gedrag controleren
De eenvoudigste query, specifiek voor het databasetype, wordt uitgevoerd op basis van de opgegeven gegevensbron om te controleren of de verbinding kan worden geopend. Gebruik de threshold-ms eigenschap om de maximaal acceptabele duur (in milliseconden) voor die query te configureren.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Door de gebruiker gedelegeerde verificatie
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
object | No | – |
On-Behalf-Of (OBO) door de gebruiker gedelegeerde verificatie voor SQL Server en Azure SQL. Indien ingeschakeld, wisselt DAB het binnenkomende gebruikerstoken uit voor een downstream SQL-token, zodat de database wordt geverifieerd als de werkelijke aanroepende gebruiker. Deze functie wordt alleen ondersteund voor mssql gegevensbronnen en vereist upstream-verificatie van Entra-id's.
Note
De data-API builder 2.0-functionaliteit die in deze sectie wordt beschreven, is momenteel in preview en kan veranderen vóór algemene beschikbaarheid. Zie Wat is er nieuw in versie 2.0 voor meer informatie.
Geneste eigenschappen
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | onwaar |
data-source.user-delegated-auth |
provider |
enum (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
string | Ja (indien ingeschakeld) | None |
-
enabled— schakelt OBO in of uit. -
provider— de id-provider voor de tokenuitwisseling. Momenteel wordt alleenEntraIdondersteund. -
database-audience— de doelgroep voor het downstream SQL-token (bijvoorbeeldhttps://database.windows.net).
Vereiste omgevingsvariabelen
Wanneer OBO is ingeschakeld, leest DAB de volgende omgevingsvariabelen voor de tokenuitwisseling:
| Variable | Description |
|---|---|
DAB_OBO_CLIENTID |
Toepassings-id (client) van de entra-id-app-registratie |
DAB_OBO_CLIENTSECRET |
Clientgeheim voor de app-registratie |
DAB_OBO_TENANTID |
Tenant-id entra-id |
Groepsgewijze verbindingen per gebruiker
Wanneer OBO is ingeschakeld, onderhoudt DAB afzonderlijke SQL-verbindingsgroepen per gebruiker, zodat het toegangstoken van één gebruiker nooit opnieuw wordt gebruikt voor de aanvraag van een andere gebruiker.
Note
Groepsgewijze verbindingen per gebruiker is alleen van toepassing wanneer OBO-verificatie actief is. Standaardimplementaties worden niet beïnvloed.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Voorbeeld
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
}
}
Belangrijk
OBO wordt alleen ondersteund voor mssql. De database-audience eigenschap is vereist wanneer OBO is ingeschakeld. Het uitvoeren van deze configuratie voor een niet-MSSQL-gegevensbron mislukt.