Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A data-source seção define os detalhes de acesso ao banco de dados. Ele também define as opções de banco de dados.
Configurações da fonte de dados
| Property | Description |
|---|---|
| fonte de dados | Objeto que contém configurações de conectividade de banco de dados |
| data-source.database-type | Banco de dados usado no back-end: mssql, , postgresql, mysql, , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Cadeia de conexão para o tipo de banco de dados selecionado |
| data-source.options | Propriedades específicas do banco de dados (por exemplo, opções para SQL Server, Cosmos DB etc.) |
| data-source.options.database | Nome do banco de dados do Azure Cosmos DB para NoSQL (necessário quando database-type = cosmosdb_nosql) |
| data-source.options.container | Nome do contêiner do Azure Cosmos DB para NoSQL (necessário quando database-type = cosmosdb_nosql) |
| data-source.options.schema | Caminho para o arquivo de esquema GraphQL (necessário quando database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Habilita o envio de declarações JWT (Token Web JSON) como contexto de sessão (somente SQL Server) |
| data-source.health | Objeto configurando verificações de integridade para a fonte de dados |
| data-source.health.enabled | Habilita o ponto de extremidade de verificação de integridade |
| data-source.health.name | Identificador usado no relatório de integridade |
| data-source.health.threshold-ms | Duração máxima em milissegundos para consulta de verificação de integridade |
| data-source.user-delegated-auth | Objeto configurando autenticação OBO (on-Behalf-Of) delegada pelo usuário (somente mssql) |
| data-source.user-delegated-auth.enabled | Habilita a autenticação OBO |
| data-source.user-delegated-auth.provider | Provedor de identidade OBO (somente no momento EntraId ) |
| data-source.user-delegated-auth.database-audience | Público-alvo para o token SQL downstream |
Visão geral do formato
{
"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>"]
}
Fonte de dados
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
$root |
data-source |
objeto | ✔️ Sim | - |
Propriedades aninhadas
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enumeração | ✔️ Sim | None |
data-source |
connection-string |
cadeia | ✔️ Sim | None |
data-source |
options |
objeto | ❌ Não | None |
Valores de propriedade
database-type |
Description | Versão mínima |
|---|---|---|
mssql |
SQL no Fabric | - |
mssql |
Banco de Dados SQL do Azure | - |
mssql |
MI de SQL do Azure | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
dwsql |
Ponto de extremidade da Análise de SQL do Fabric | - |
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>
}
}
}
Exemplo: SQL do 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 Usamos para o SQL do Azure e o SQL Server, que dá suporte a essas variantes de cadeias de conexão.
Consumir SESSION_CONTEXT
Para o SQL do Azure e o SQL Server, o construtor de API de Dados pode incluir informações de Declarações no 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;
Exemplo: 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
As "opções" especificadas (databasee containerschema) são específicas do Azure Cosmos DB.
Variáveis de ambiente
Use variáveis de ambiente para manter segredos de texto sem formatação fora do arquivo de configuração.
Tip
O Construtor de API de Dados dá suporte à @env() função e aos .env arquivos.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Resiliência de conexão
O Construtor de API de Dados usa a Retirada Exponencial para tentar novamente solicitações de banco de dados após erros transitórios.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
MSI (Identidades de Serviço Gerenciado)
As MSI (Identidades de Serviço Gerenciadas) têm suporte com DefaultAzureCredential definido na Azure.Identity biblioteca. Saiba mais sobre identidades gerenciadas no Microsoft Entra para SQL do Azure.
User-Assigned identidades gerenciadas (UAMI)
Para a Identidade Gerenciada Atribuída pelo Usuário, acrescente as propriedades de Autenticação e ID de Usuário à cadeia de conexão, substituindo na ID do cliente da identidade gerenciada atribuída pelo usuário: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
System-Assigned IDENTIDADE Gerenciada (SAMI)
Para a Identidade Gerenciada Atribuída pelo Sistema, acrescente a propriedade Autenticação e exclua os argumentos UserId e Password da cadeia de conexão: Authentication=Active Directory Managed Identity;.
Integridade (fonte de dados)
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
data-source |
health |
objeto | No | – |
O Construtor de API de Dados dá suporte a vários arquivos de configuração, cada um com sua própria fonte de dados. Esse bloco de configuração permite que cada fonte de dados tenha sua própria configuração de integridade.
Propriedades aninhadas
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
data-source.health |
enabled |
boolean | No | true |
data-source.health |
name |
cadeia | No | database-type |
data-source.health |
threshold-ms |
inteiro | No | 1000 |
Nome da verificação
Como vários arquivos de configuração podem apontar para fontes de dados do mesmo tipo, essas fontes de dados não podem ser distinguidas no relatório de integridade. Use name para atribuir um rótulo exclusivo e identificável usado somente no relatório de integridade.
Verificar o comportamento
A consulta mais simples possível, específica ao tipo de banco de dados, é executada na fonte de dados fornecida para validar se a conexão pode ser aberta. Use a threshold-ms propriedade para configurar a duração máxima aceitável (em milissegundos) para que essa consulta seja concluída.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Autenticação delegada pelo usuário
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
objeto | No | – |
Autenticação delegada pelo usuário do OBO (On-Behalf-Of) para SQL Server e SQL do Azure. Quando habilitado, o DAB troca o token de usuário de entrada por um token SQL downstream para que o banco de dados se autentique como o usuário de chamada real. Esse recurso tem suporte apenas para mssql fontes de dados e requer a autenticação de ID do Entra upstream.
Note
A funcionalidade do Construtor de API de Dados 2.0 descrita nesta seção está atualmente em versão prévia e pode ser alterada antes da disponibilidade geral. Para obter mais informações, consulte o que há de novo na versão 2.0.
Propriedades aninhadas
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | falso |
data-source.user-delegated-auth |
provider |
enumeração (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
cadeia | Sim (quando habilitado) | None |
-
enabled— ativa ou desativa o OBO. -
provider— o provedor de identidade para a troca de tokens. Atualmente, há suporte apenas paraEntraId. -
database-audience— o público-alvo do token SQL downstream (por exemplo,https://database.windows.net).
Variáveis de ambiente necessárias
Quando o OBO está habilitado, o DAB lê as seguintes variáveis de ambiente para a troca de tokens:
| Variable | Description |
|---|---|
DAB_OBO_CLIENTID |
ID do aplicativo (cliente) do registro do aplicativo Entra ID |
DAB_OBO_CLIENTSECRET |
Segredo do cliente para o registro do aplicativo |
DAB_OBO_TENANTID |
ID do locatário do Entra ID. |
Pool de conexões por usuário
Quando o OBO está habilitado, o DAB mantém pools de conexão SQL separados por usuário para que o token de acesso de um usuário nunca seja reutilizado para a solicitação de outro usuário.
Note
O pool de conexões por usuário só se aplica quando a autenticação OBO está ativa. As implantações padrão não são afetadas.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Exemplo
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": true,
"provider": "EntraId",
"database-audience": "https://database.windows.net"
}
}
}
Importante
O OBO tem suporte apenas para mssql. A database-audience propriedade é necessária quando o OBO está habilitado. A execução dessa configuração em uma fonte de dados não MSSQL falha na validação.