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žívaná back-endem: 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
Tvůrce rozhraní Data API používá SqlClient pro Azure SQL a SQL Server, které podporuje varianty these připojovací řetězec.
Použijte 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) se podporují s DefaultAzureCredential definovanými v knihovně Azure.Identity. Přečtěte si další informace o spravovaných identitách v Microsoft Entra pro Azure SQL.
Spravované identity přiřazené uživatelem (UAMI)
Pro spravovanou identitu přiřazenou uživatelem připojte k připojovací řetězec vlastnosti Authentication a Uživatelské ID a nahraďte id klienta spravované identity přiřazené uživatelem: Authentication=služba Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
Spravovaná identita přiřazená systémem (SAMI)
Pro spravovanou identitu přiřazenou systémem připojte vlastnost Authentication a vylučte z připojovací řetězec argumenty UserId a Password z připojovací řetězec: Authentication=služba 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 zdroje dat mssql a vyžaduje upstream ověřování Microsoft 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_CLIENT_ID |
ID aplikace (klienta) registrace aplikace Microsoft Entra ID |
DAB_OBO_CLIENT_SECRET |
Tajný klíč klienta pro registraci aplikace |
DAB_OBO_TENANT_ID |
Microsoft Entra ID ID tenanta |
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í.