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 pelo 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
O construtor de API de Dados usa SqlClient para SQL do Azure e SQL Server, que dá suporte a variantes these cadeia de conexão.
Utilize 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 gerenciadas)
As MSI (identidades de serviço gerenciadas) têm suporte com DefaultAzureCredential definidos na biblioteca Azure.Identity. Saiba mais sobre identidades gerenciadas no Microsoft Entra para SQL do Azure.
Identidades gerenciadas atribuídas pelo usuário (UAMI)
Para a identidade gerenciada atribuída pelo usuário, acrescente as propriedades Authentication e User ID ao cadeia de conexão ao substituir na ID do cliente da identidade gerenciada atribuída pelo usuário: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
IDENTIDADE gerenciada atribuída pelo sistema (SAMI)
Para a identidade gerenciada atribuída pelo sistema, acrescente a propriedade Authentication e exclua os argumentos UserId e Password do 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 fontes de dados mssql e requer autenticação Microsoft Entra ID 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_CLIENT_ID |
ID do aplicativo (cliente) do registro do aplicativo Microsoft Entra ID |
DAB_OBO_CLIENT_SECRET |
Segredo do cliente para o registro do aplicativo |
DAB_OBO_TENANT_ID |
ID do locatário do Microsoft 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.