Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sekcja data-source definiuje szczegóły dostępu do bazy danych. Definiuje również opcje bazy danych.
Ustawienia źródła danych
| Property | Description |
|---|---|
| źródło danych | Obiekt zawierający ustawienia łączności z bazą danych |
| data-source.database-type | Baza danych używana w zapleczu: mssql, , postgresqlmysql, , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Parametry połączenia dla wybranego typu bazy danych |
| data-source.options | Właściwości specyficzne dla bazy danych (na przykład opcje dla programu SQL Server, usługi Cosmos DB itp.) |
| data-source.options.database | Nazwa bazy danych Azure Cosmos DB for NoSQL (wymagana, gdy database-type = cosmosdb_nosql) |
| data-source.options.container | Nazwa kontenera usługi Azure Cosmos DB for NoSQL (wymagana, gdy database-type = cosmosdb_nosql) |
| data-source.options.schema | Ścieżka do pliku schematu GraphQL (wymagane, gdy database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Umożliwia wysyłanie oświadczeń tokenu internetowego JSON (JWT) jako kontekstu sesji (tylko program SQL Server) |
| data-source.health | Obiekt konfigurując kontrole kondycji źródła danych |
| data-source.health.enabled | Włącza punkt końcowy sprawdzania kondycji |
| data-source.health.name | Identyfikator używany w raporcie kondycji |
| data-source.health.threshold-ms | Maksymalny czas trwania w milisekundach dla zapytania sprawdzania kondycji |
| data-source.user-delegated-auth | Obiekt konfigurując uwierzytelnianie delegowane przez użytkownika (tylko mssql)Behalf-Of (OBO) |
| data-source.user-delegated-auth.enabled | Włącza uwierzytelnianie OBO |
| data-source.user-delegated-auth.provider | Dostawca tożsamości OBO (obecnie EntraId tylko) |
| data-source.user-delegated-auth.database-audience | Docelowi odbiorcy dla podrzędnego tokenu SQL |
Omówienie formatu
{
"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>"]
}
Źródło danych
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
$root |
data-source |
obiekt | ✔️ Tak | - |
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
wyliczenie | ✔️ Tak | None |
data-source |
connection-string |
ciąg | ✔️ Tak | None |
data-source |
options |
obiekt | ❌ Nie | None |
Wartości właściwości
database-type |
Description | Minimalna wersja |
|---|---|---|
mssql |
SQL w sieci szkieletowej | - |
mssql |
Azure SQL Database | - |
mssql |
Zarządzane wystąpienie Azure SQL | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Magazyn tkanin | - |
dwsql |
Punkt końcowy usługi SQL Analytics w sieci szkieletowej | - |
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>
}
}
}
Przykład: Azure SQL i 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
Używamy dla SqlClient usług Azure SQL i SQL Server, które obsługują te warianty parametrów połączenia.
Spożywanie SESSION_CONTEXT
W przypadku usług Azure SQL i SQL Server konstruktor interfejsu API danych może zawierać informacje o oświadczeniach w usługach SESSION_CONTEXTSQL .
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;
Przykład: 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
Określone opcje (database, containeri schema) są specyficzne dla usługi Azure Cosmos DB.
Zmienne środowiskowe
Użyj zmiennych środowiskowych, aby zachować wpisy tajne zwykłego tekstu z pliku konfiguracji.
Tip
Konstruktor interfejsu @env() API danych obsługuje zarówno funkcję, jak i .env pliki.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Odporność połączenia
Konstruktor interfejsu API danych używa wycofywania wykładniczego w celu ponawiania żądań bazy danych po błędach przejściowych.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Tożsamości usługi zarządzanej (MSI)
Tożsamości usługi zarządzanej (MSI) są obsługiwane przez funkcję zdefiniowaną DefaultAzureCredential w Azure.Identity bibliotece. Dowiedz się więcej o tożsamościach zarządzanych w usłudze Microsoft Entra for Azure SQL.
tożsamości zarządzane User-Assigned (UAMI)
W polu Tożsamość zarządzana przypisana przez użytkownika dołącz właściwości Authentication (Uwierzytelnianie ) i User ID (Identyfikator użytkownika) do parametrów połączenia podczas zastępowania identyfikatora klienta tożsamości zarządzanej przypisanej przez użytkownika: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
tożsamość zarządzana System-Assigned (SAMI)
W polu Tożsamość zarządzana przypisana przez system dołącz właściwość Authentication i wyklucz argumenty UserId i Password z parametrów połączenia: Authentication=Active Directory Managed Identity;.
Kondycja (źródło danych)
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
health |
obiekt | No | – |
Konstruktor interfejsu API danych obsługuje wiele plików konfiguracji, z których każdy ma własne źródło danych. Ten blok konfiguracji umożliwia każdemu źródle danych posiadanie własnej konfiguracji kondycji.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
ciąg | No | database-type |
data-source.health |
threshold-ms |
liczba całkowita | No | 1000 |
Sprawdź nazwę
Ponieważ wiele plików konfiguracji może wskazywać źródła danych tego samego typu, te źródła danych nie mogą być rozróżniane w raporcie kondycji. Służy name do przypisywania unikatowej, możliwej do zidentyfikowania etykiety używanej tylko w raporcie kondycji.
Sprawdzanie zachowania
Najprostsze możliwe zapytanie — specyficzne dla typu bazy danych — jest wykonywane względem danego źródła danych w celu sprawdzenia, czy połączenie można otworzyć.
threshold-ms Użyj właściwości , aby skonfigurować maksymalny dopuszczalny czas trwania (w milisekundach) dla tego zapytania do ukończenia.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Uwierzytelnianie delegowane przez użytkownika
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
obiekt | No | – |
Uwierzytelnianie delegowane przez użytkownika wBehalf-Of (OBO) dla programu SQL Server i usługi Azure SQL. Po włączeniu język DAB wymienia token użytkownika przychodzącego dla podrzędnego tokenu SQL, aby baza danych uwierzytelniła się jako rzeczywisty użytkownik wywołujący. Ta funkcja jest obsługiwana tylko w przypadku mssql źródeł danych i wymaga uwierzytelniania entra ID nadrzędnego.
Note
Funkcja narzędzia Data API Builder 2.0 opisana w tej sekcji jest obecnie dostępna w wersji zapoznawczej i może ulec zmianie przed ogólną dostępnością. Aby uzyskać więcej informacji, zobacz Co nowego w wersji 2.0.
Właściwości zagnieżdżone
| Parent | Property | Typ | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | fałszywy |
data-source.user-delegated-auth |
provider |
wyliczenie (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
ciąg | Tak (po włączeniu) | None |
-
enabled— włącza lub wyłącza funkcję OBO. -
provider— dostawca tożsamości dla wymiany tokenów. Obecnie obsługujemy tylkoEntraId. -
database-audience— docelowy odbiorca tokenu SQL podrzędnego (na przykładhttps://database.windows.net).
Wymagane zmienne środowiskowe
Po włączeniu funkcji OBO usługa DAB odczytuje następujące zmienne środowiskowe dla wymiany tokenów:
| Zmienna | Description |
|---|---|
DAB_OBO_CLIENTID |
Identyfikator aplikacji (klienta) rejestracji aplikacji Entra ID |
DAB_OBO_CLIENTSECRET |
Wpis tajny klienta dla rejestracji aplikacji |
DAB_OBO_TENANTID |
Identyfikator dzierżawy identyfikatora entra |
Buforowanie połączeń poszczególnych użytkowników
Gdy funkcja OBO jest włączona, usługa DAB utrzymuje oddzielne pule połączeń SQL na użytkownika, dzięki czemu token dostępu jednego użytkownika nigdy nie jest ponownie używany dla żądania innego użytkownika.
Note
Buforowanie połączeń poszczególnych użytkowników ma zastosowanie tylko wtedy, gdy uwierzytelnianie OBO jest aktywne. Wdrożenia standardowe nie mają wpływu.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Przykład
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
}
}
Ważna
Funkcja OBO jest obsługiwana tylko dla systemu mssql. Właściwość jest wymagana database-audience , gdy jest włączona funkcja OBO. Uruchomienie tej konfiguracji względem źródła danych innego niż MSSQL kończy się niepowodzeniem weryfikacji.