Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Oddíl data-source definuje podrobnosti o přístupu k databázi. Definuje také možnosti databáze.
Nastavení zdroje dat
| Property | Description |
|---|---|
| zdroj dat | Objekt obsahující nastavení připojení k databázi |
| data-source.database-type | Databáze použitá v back-endu: mssql, postgresqlmysql, , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Připojovací řetězec pro vybraný typ databáze |
| data-source.options | Vlastnosti specifické pro databázi (například možnosti PRO SQL Server, Cosmos DB atd.) |
| data-source.options.database | Název databáze Azure Cosmos DB for NoSQL (vyžaduje se, když database-type = cosmosdb_nosql) |
| data-source.options.container | Název kontejneru Azure Cosmos DB for NoSQL (vyžaduje se, když database-type = cosmosdb_nosql) |
| data-source.options.schema | Cesta k souboru schématu GraphQL (vyžaduje se v případě database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Umožňuje odesílání deklarací identity webového tokenu JSON (JWT) jako kontextu relace (pouze SQL Server). |
| data-source.health | Objekt konfigurující kontroly stavu pro zdroj dat |
| data-source.health.enabled | Povolí koncový bod kontroly stavu. |
| data-source.health.name | Identifikátor použitý v sestavě stavu |
| data-source.health.threshold-ms | Maximální doba trvání dotazu kontroly stavu v milisekundách |
| data-source.user-delegated-auth | Objekt konfigurující ověřování delegované uživatelem (Behalf-Of OBO) (pouze mssql) |
| data-source.user-delegated-auth.enabled | Povolí ověřování OBO. |
| data-source.user-delegated-auth.provider | Zprostředkovatel identity OBO (aktuálně EntraId pouze) |
| data-source.user-delegated-auth.database-audience | Cílová cílová skupina pro podřízený token SQL |
Přehled formátu
{
"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>"]
}
Zdroj dat
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
$root |
data-source |
objekt | ✔️ Ano | - |
Vnořené vlastnosti
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
výčet | ✔️ Ano | None |
data-source |
connection-string |
řetězec | ✔️ Ano | None |
data-source |
options |
objekt | ❌ Ne | None |
Hodnoty nemovitostí
database-type |
Description | Minimální verze |
|---|---|---|
mssql |
SQL v prostředcích infrastruktury | - |
mssql |
Azure SQL Database | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Koncový bod Fabric SQL Analytics | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB for NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB for PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Příklad: Azure SQL a 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
Používáme SqlClient pro Azure SQL a SQL Server, které podporují tyto varianty připojovacích řetězců.
Pohlcující SESSION_CONTEXT
Pro Azure SQL a SQL Server může Tvůrce rozhraní DATA API zahrnout informace o deklaracích v 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;
Příklad: 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
Zadané možnosti (database, containera schema) jsou specifické pro službu Azure Cosmos DB.
Proměnné prostředí
Pomocí proměnných prostředí udržujte tajné kódy ve formátu prostého textu mimo konfigurační soubor.
Tip
Tvůrce rozhraní Data API podporuje @env() funkci i .env soubory.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Odolnost připojení
Tvůrce rozhraní Data API používá exponenciální zpochybnění žádostí o databázi po přechodných chybách.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Identity spravované služby (MSI)
Identity spravované služby (MSI) jsou podporovány s definovanými DefaultAzureCredential v Azure.Identity knihovně. Přečtěte si další informace o spravovaných identitách v Microsoft Entra pro Azure SQL.
User-Assigned spravované identity (UAMI)
Pro spravovanou identitu přiřazenou uživatelem připojte vlastnosti Ověřování a ID uživatele k připojovacímu řetězci a nahraďte v ID klienta spravované identity přiřazené uživatelem: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
spravovaná identita System-Assigned (SAMI)
Pro spravovanou identitu přiřazenou systémem připojte vlastnost Ověřování a vylučte z připojovacího řetězce argumenty UserId a Password : Authentication=Active Directory Managed Identity;.
Stav (zdroj dat)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
health |
objekt | No | – |
Tvůrce rozhraní Data API podporuje více konfiguračních souborů, z nichž každý má vlastní zdroj dat. Tento blok konfigurace umožňuje každému zdroji dat mít vlastní konfiguraci stavu.
Vnořené vlastnosti
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
řetězec | No | database-type |
data-source.health |
threshold-ms |
integer | No | 1000 |
Kontrola názvu
Vzhledem k tomu, že několik konfiguračních souborů může odkazovat na zdroje dat stejného typu, nelze tyto zdroje dat rozlišit v sestavě o stavu. Slouží name k přiřazení jedinečného identifikovatelného popisku použitého pouze ve zprávě o stavu.
Kontrola chování
Nejjednodušší možný dotaz – specifický pro typ databáze – se provádí na daném zdroji dat, aby bylo možné ověřit, že je možné připojení otevřít.
threshold-ms Pomocí vlastnosti nakonfigurujte maximální přijatelnou dobu trvání (v milisekundách) pro dokončení dotazu.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Ověřování delegované uživatelem
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
objekt | No | – |
On-Behalf-Of (OBO) uživatelem delegované ověřování pro SQL Server a Azure SQL. Pokud je tato možnost povolená, JAZYK DAB vymění příchozí token uživatele pro podřízený token SQL, aby se databáze ověřila jako skutečný volající uživatel. Tato funkce je podporovaná pouze pro mssql zdroje dat a vyžaduje upstream ověřování Entra ID.
Note
Funkce tvůrce rozhraní Data API 2.0 popsané v této části jsou aktuálně ve verzi Preview a můžou se změnit před obecnou dostupností. Další informace najdete v tématu Co je nového ve verzi 2.0.
Vnořené vlastnosti
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | false |
data-source.user-delegated-auth |
provider |
enum (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
řetězec | Ano (pokud je povoleno) | None |
-
enabled– zapne nebo vypne OBO. -
provider– zprostředkovatele identity pro výměnu tokenů. V současné době se podporuje pouzeEntraId. -
database-audience– cílová skupina podřízeného tokenu SQL (napříkladhttps://database.windows.net).
Požadované proměnné prostředí
Pokud je povolený objekt OBO, DAB přečte následující proměnné prostředí pro výměnu tokenů:
| Proměnná | Description |
|---|---|
DAB_OBO_CLIENTID |
ID aplikace (klienta) registrace aplikace Entra ID |
DAB_OBO_CLIENTSECRET |
Tajný klíč klienta pro registraci aplikace |
DAB_OBO_TENANTID |
ID tenanta Entra ID |
Sdružování připojení pro jednotlivé uživatele
Když je povolený OBO, DAB udržuje samostatné fondy připojení SQL na uživatele, aby přístupový token jednoho uživatele nebyl nikdy znovu použit pro požadavek jiného uživatele.
Note
Sdružování připojení pro jednotlivé uživatele platí jenom v případech, kdy je ověřování OBO aktivní. Standardní nasazení nejsou ovlivněná.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Příklad
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
}
}
Důležité
OBO je podporován pouze pro mssql. Vlastnost database-audience je vyžadována při povolení OBO. Spuštění této konfigurace pro jiný zdroj dat než MSSQL selže při ověřování.