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 |
|---|---|
| data-source | 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 |
Format overview
{
"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>
}
},
"data-source-files": ["<string>"]
}
Data source
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
$root |
database-source |
objeto | ✔️ Yes | - |
Nested properties
| Parent | Property | Tipo | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enumeração | ✔️ Yes | None |
data-source |
connection-string |
cadeia | ✔️ Yes | None |
data-source |
options |
objeto | ❌ Não | None |
Property values
database-type |
Description | Min Version |
|---|---|---|
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
We use SqlClient for Azure SQL and SQL Server, which supports these connection strings variants.
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.
Environment variables
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 aos @env() arquivos function.env](../reference-functions.md#env) and ['.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Connection resiliency
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)
For User Assigned Managed Identity, append the Authentication and User Id properties to your connection string while substituting in your User Assigned Managed Identity's client id: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
System-Assigned IDENTIDADE Gerenciada (SAMI)
For System Assigned Managed Identity, append the Authentication property and exclude the UserId and Password arguments from your connection string: 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.
Nested properties
| 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 |
Check name
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.
Check behavior
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>
}
}
}