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 | Im Back-End verwendete Datenbank: mssql, postgresql, mysql, , 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 |
Fabric Warehouse | - |
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
Wir verwenden SqlClient Azure SQL und SQL Server, die diese Verbindungszeichenfolgenvarianten unterstützen.
Verbrauchen SESSION_CONTEXT
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 (MANAGED Service Identities, MSI) werden in DefaultAzureCredential der Azure.Identity Bibliothek definiert unterstützt. Erfahren Sie mehr über verwaltete Identitäten in Microsoft Entra für Azure SQL.
User-Assigned Verwaltete Identitäten (UAMI)
Fügen Sie für vom Benutzer zugewiesene verwaltete Identität die Authentifizierungs- und Benutzer-ID-Eigenschaften an Ihre Verbindungszeichenfolge an, während sie in der Client-ID Ihrer vom Benutzer zugewiesenen verwalteten Identität ersetzt werden: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
System-Assigned Managed Identity (SAMI)
Fügen Sie für vom System zugewiesene verwaltete Identität die Authentifizierungseigenschaft an, und schließen Sie die Argumente UserId und Password aus Ihrer 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 die 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_CLIENTID |
Anwendungs-ID (Client)-ID der Entra-ID-App-Registrierung |
DAB_OBO_CLIENTSECRET |
Geheimer Clientschlüssel für die App-Registrierung |
DAB_OBO_TENANTID |
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.