Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В data-source разделе определяются сведения о доступе к базе данных. Он также определяет параметры базы данных.
Параметры источника данных
| Property | Description |
|---|---|
| источник данных | Объект, содержащий параметры подключения к базе данных |
| тип data-source.database | База данных, используемая в серверной части: mssql, postgresql, mysqlcosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Строка подключения для выбранного типа базы данных |
| data-source.options | Свойства, относящиеся к базе данных (например, параметры SQL Server, Cosmos DB и т. д.) |
| data-source.options.database | Имя базы данных Azure Cosmos DB для NoSQL (необходимо, если database-type = cosmosdb_nosql) |
| data-source.options.container | Имя контейнера Azure Cosmos DB для NoSQL (необходимо, если database-type = cosmosdb_nosql) |
| data-source.options.schema | Путь к файлу схемы GraphQL (необходимо, если database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Включает отправку утверждений веб-маркера JSON (JWT) в качестве контекста сеанса (только SQL Server) |
| data-source.health | Настройка проверок работоспособности для источника данных |
| data-source.health.enabled | Включает конечную точку проверки работоспособности |
| data-source.health.name | Идентификатор, используемый в отчете о работоспособности |
| data-source.health.threshold-ms | Максимальная длительность в миллисекундах для запроса проверки работоспособности |
| data-source.user-delegated-auth | Объект, настроивBehalf-Of (OBO), делегированную пользователем проверку подлинности (только mssql) |
| data-source.user-delegated-auth.enabled | Включает проверку подлинности OBO |
| data-source.user-delegated-auth.provider | Поставщик удостоверений OBO (только сейчас EntraId ) |
| data-source.user-delegated-auth.database-audience | Целевая аудитория для нижестоящего токена SQL |
Обзор формата
{
"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>"]
}
Источник данных
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
data-source |
object | ✔️ Да | - |
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Да | None |
data-source |
connection-string |
string | ✔️ Да | None |
data-source |
options |
object | ❌ Нет | None |
Значения свойств
database-type |
Description | Минимальная версия |
|---|---|---|
mssql |
SQL в Fabric | - |
mssql |
База данных SQL Azure | - |
mssql |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Склад тканей | - |
dwsql |
Конечная точка Аналитики SQL Fabric | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB для NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB для PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Пример: SQL Azure и 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
Мы используем SqlClient для SQL Azure и SQL Server, которые поддерживают эти варианты строк подключения.
Потребляющий SESSION_CONTEXT
Для SQL Azure и SQL Server построитель API данных может включать сведения о утверждениях SESSION_CONTEXTв SQL.
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;
Пример: 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
Указанные параметры (database, containerи schema) относятся к Azure Cosmos DB.
Переменные среды
Используйте переменные среды для сохранения секретов обычного текста из файла конфигурации.
Tip
Построитель данных поддерживает как функцию@env(), так и .env файлы.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Устойчивость подключения
Построитель данных использует экспоненциальную обратную передачу для повторных запросов к базе данных после временных ошибок.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Удостоверения управляемых служб (MSI)
Управляемые удостоверения службы (MSI) поддерживаются в DefaultAzureCredentialAzure.Identity библиотеке. Дополнительные сведения об управляемых удостоверениях в Microsoft Entra для SQL Azure.
User-Assigned управляемых удостоверений (UAMI)
Для управляемого удостоверения, назначаемого пользователем, добавьте свойства проверки подлинности и идентификатора пользователя в строку подключения, подставив идентификатор клиента назначаемого пользователем управляемого удостоверения: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;
управляемое удостоверение System-Assigned (SAMI)
Для управляемого удостоверения, назначаемого системой, добавьте свойство Authentication и исключите аргументы UserId и Password из строки подключения: Authentication=Active Directory Managed Identity;
Работоспособности (источник данных)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Построитель данных поддерживает несколько файлов конфигурации, каждый из которых имеет собственный источник данных. Этот блок конфигурации позволяет каждому источнику данных иметь собственную конфигурацию работоспособности.
Вложенные свойства
| 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 |
Проверить имя
Так как несколько файлов конфигурации могут указывать на источники данных одного типа, эти источники данных не могут отличаться в отчете о работоспособности. Используется name для назначения уникальной идентифицируемой метки, используемой только в отчете о работоспособности.
Проверка поведения
Самый простой запрос, характерный для типа базы данных, выполняется в заданном источнике данных, чтобы убедиться, что подключение можно открыть.
threshold-ms Используйте свойство, чтобы настроить максимальную допустимую длительность (в миллисекундах) для завершения этого запроса.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Делегированная пользователем проверка подлинности
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
object | No | – |
Делегированная пользователем проверка подлинности вBehalf-Of (OBO) для SQL Server и Azure SQL. Если этот параметр включен, DAB обменивается входящим маркером пользователя для нижестоящего маркера SQL, чтобы база данных выполняла проверку подлинности в качестве фактического вызывающего пользователя. Эта функция поддерживается только для mssql источников данных и требует вышестоящей проверки подлинности идентификатора записи.
Note
Функции построителя данных 2.0, описанные в этом разделе, находятся в предварительной версии и могут измениться до общедоступной доступности. Дополнительные сведения см. в статье "Новые возможности" версии 2.0.
Вложенные свойства
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | false |
data-source.user-delegated-auth |
provider |
перечисление (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
string | Да (если включена) | None |
-
enabled— включает или отключает OBO. -
provider— поставщик удостоверений для обмена токенами. Поддерживается толькоEntraId. -
database-audience— целевая аудитория для нижестоящего маркера SQL (например,https://database.windows.net).
Обязательные переменные среды
Если OBO включен, DAB считывает следующие переменные среды для обмена токенами:
| Variable | Description |
|---|---|
DAB_OBO_CLIENTID |
Идентификатор приложения (клиента) регистрации приложения Entra ID |
DAB_OBO_CLIENTSECRET |
Секрет клиента для регистрации приложения |
DAB_OBO_TENANTID |
Идентификатор клиента entra ID |
Пул подключений для каждого пользователя
Если OBO включен, DAB поддерживает отдельные пулы подключений SQL на пользователя, чтобы маркер доступа одного пользователя никогда не был повторно использован для запроса другого пользователя.
Note
Пул подключений для каждого пользователя применяется только при активной проверке подлинности OBO. Стандартные развертывания не влияют на них.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Пример
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
}
}
Это важно
OBO поддерживается только для mssql. Свойство database-audience требуется при включении OBO. Выполнение этой конфигурации для источника данных, отличного от MSSQL, завершается ошибкой проверки.