Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der data-source Abschnitt definiert die Datenbankzugriffsdetails. Außerdem werden Datenbankoptionen definiert.
Datenquelleneinstellungen
| Property | Description |
|---|---|
| Datenquelle | Objekt, das Datenbankkonnektivitätseinstellungen enthält |
| data-source.database-type | Vom Back-End verwendete Datenbank: mssql, , mysqlpostgresql, , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Verbindungszeichenfolge für den ausgewählten Datenbanktyp |
| data-source.options | Datenbankspezifische Eigenschaften (z. B. Optionen für SQL Server, Cosmos DB usw.) |
| data-source.options.database | Name der Azure Cosmos DB für NoSQL-Datenbank (erforderlich, wenn database-type = cosmosdb_nosql) |
| data-source.options.container | Name des Azure Cosmos DB für NoSQL-Container (erforderlich, wenn database-type = cosmosdb_nosql) |
| data-source.options.schema | Pfad zur GraphQL-Schemadatei (erforderlich, wenn database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Aktiviert das Senden von JSON-Webtokenansprüchen (JWT) als Sitzungskontext (nur SQL Server) |
| data-source.health | Objektkonfiguration von Integritätsprüfungen für die Datenquelle |
| data-source.health.enabled | Aktiviert den Integritätsprüfungsendpunkt. |
| data-source.health.name | Bezeichner, der im Integritätsbericht verwendet wird |
| data-source.health.threshold-ms | Maximale Dauer in Millisekunden für die Integritätsprüfungsabfrage |
| data-source.user-delegated-auth | Objekt, das die benutzerdelegierte Authentifizierung (On-Behalf-Of, OBO) konfiguriert (nur mssql) |
| data-source.user-delegated-auth.enabled | Aktiviert die OBO-Authentifizierung |
| data-source.user-delegated-auth.provider | OBO-Identitätsanbieter (derzeit EntraId nur) |
| data-source.user-delegated-auth.database-audience | Zielgruppe für das nachgeschaltete SQL-Token |
Formatübersicht
{
"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>"]
}
Datenquelle
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
data-source |
object | ✔️ Ja | - |
Verschachtelte Eigenschaften
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Ja | None |
data-source |
connection-string |
string | ✔️ Ja | None |
data-source |
options |
object | ❌ Nein | None |
Immobilienwerte
database-type |
Description | Min Version |
|---|---|---|
mssql |
SQL in Fabric | - |
mssql |
Azure SQL-Datenbank | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Stofflagerhaus | - |
dwsql |
Fabric SQL Analytics-Endpunkt | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB für NoSQL-Datenbanklösungen | - |
cosmosdb_postgresql |
Azure Cosmos DB für PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Beispiel: 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
Der Daten-API-Generator verwendet SqlClient für Azure SQL und SQL Server, die these Verbindungszeichenfolge Varianten unterstützt.
SESSION_CONTEXT verwenden
Für Azure SQL und SQL Server kann der Daten-API-Generator Anspruchsinformationen in SQL enthalten 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;
Beispiel: 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
Die angegebenen "Optionen" (database, containerund schema) sind spezifisch für Azure Cosmos DB.
Umgebungsvariablen
Verwenden Sie Umgebungsvariablen, um geheime Nur-Text-Schlüssel aus Ihrer Konfigurationsdatei zu behalten.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Verbindungsstabilität
Der Daten-API-Generator verwendet exponentielles Backoff, um Datenbankanforderungen nach vorübergehenden Fehlern erneut zu versuchen.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Verwaltete Dienstidentitäten (MSI)
Verwaltete Dienstidentitäten (MSI) werden mit DefaultAzureCredential unterstützt, die in der bibliothek Azure.Identity definiert sind. Erfahren Sie mehr über verwaltete Identitäten in Microsoft Entra für Azure SQL.
Vom Benutzer zugewiesene verwaltete Identitäten (UAMI)
Fügen Sie für vom Benutzer zugewiesene verwaltete Identität die Eigenschaften Authentication und Benutzer-ID an Ihre Verbindungszeichenfolge an, während sie die Client-ID Ihrer vom Benutzer zugewiesenen verwalteten Identität ersetzen: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
Vom System zugewiesene verwaltete Identität (SAMI)
Fügen Sie für vom System zugewiesene verwaltete Identität die Eigenschaft Authentication an, und schließen Sie die Argumente UserId und Password aus Ihrem Verbindungszeichenfolge aus: Authentication=Active Directory Managed Identity;.
Integrität (Datenquelle)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Der Daten-API-Generator unterstützt mehrere Konfigurationsdateien, die jeweils über eine eigene Datenquelle verfügen. Mit diesem Konfigurationsblock kann jede Datenquelle über eine eigene Integritätskonfiguration verfügen.
Verschachtelte Eigenschaften
| 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 |
Überprüfen des Namens
Da mehrere Konfigurationsdateien auf Datenquellen desselben Typs verweisen können, können diese Datenquellen im Integritätsbericht nicht unterschieden werden. Dient name zum Zuweisen einer eindeutigen, identifizierbaren Bezeichnung, die nur im Integritätsbericht verwendet wird.
Überprüfen des Verhaltens
Die einfachste abfrage , die für den Datenbanktyp spezifisch ist, wird für die angegebene Datenquelle ausgeführt, um zu überprüfen, ob die Verbindung geöffnet werden kann. Verwenden Sie die threshold-ms Eigenschaft, um die maximal zulässige Dauer (in Millisekunden) für diese Abfrage zu konfigurieren.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Benutzerdelegierte Authentifizierung
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
object | No | – |
On-Behalf-Of (OBO) benutzerdelegierte Authentifizierung für SQL Server und Azure SQL. Wenn diese Option aktiviert ist, wechselt DAB das eingehende Benutzertoken für ein nachgeschaltetes SQL-Token, sodass die Datenbank als tatsächlich aufgerufener Benutzer authentifiziert wird. Dieses Feature wird nur für mssql-Datenquellen unterstützt und erfordert Microsoft Entra ID Authentifizierung upstream.
Note
Die in diesem Abschnitt beschriebene Funktionalität des Daten-API-Generators 2.0 befindet sich derzeit in der Vorschau und kann sich vor der allgemeinen Verfügbarkeit ändern. Weitere Informationen finden Sie unter Neuigkeiten in Version 2.0.
Verschachtelte Eigenschaften
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | FALSCH |
data-source.user-delegated-auth |
provider |
Enumeration (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
string | Ja (wenn aktiviert) | None |
-
enabled– aktiviert oder deaktiviert OBO. -
provider– der Identitätsanbieter für den Tokenaustausch. Derzeit wird nurEntraIdunterstützt. -
database-audience— die Zielgruppe für das nachgeschaltete SQL-Token (z. Bhttps://database.windows.net. ).
Erforderliche Umgebungsvariablen
Wenn OBO aktiviert ist, liest DAB die folgenden Umgebungsvariablen für den Tokenaustausch:
| Variable | Description |
|---|---|
DAB_OBO_CLIENT_ID |
Anwendungs-ID (Client) der Microsoft Entra ID App-Registrierung |
DAB_OBO_CLIENT_SECRET |
Geheimer Clientschlüssel für die App-Registrierung |
DAB_OBO_TENANT_ID |
Microsoft Entra ID Mandanten-ID |
Pro Benutzerverbindungspooling
Wenn OBO aktiviert ist, verwaltet DAB separate SQL-Verbindungspools pro Benutzer, sodass das Zugriffstoken eines Benutzers nie für die Anforderung eines anderen Benutzers wiederverwendet wird.
Note
Die pooling pro Benutzer gilt nur, wenn die OBO-Authentifizierung aktiv ist. Standardbereitstellungen sind nicht betroffen.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Beispiel
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
}
}
Von Bedeutung
OBO wird nur für mssql. Die database-audience Eigenschaft ist erforderlich, wenn OBO aktiviert ist. Das Ausführen dieser Konfiguration für eine Nicht-MSSQL-Datenquelle schlägt die Überprüfung fehl.