Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la sección se data-source definen los detalles del acceso a la base de datos. También define las opciones de la base de datos.
Configuración del origen de datos
| Property | Description |
|---|---|
| origen de datos | Objeto que contiene la configuración de conectividad de la base de datos |
| data-source.database-type | Base de datos usada por el back-end: mssql, postgresql, mysql, , , cosmosdb_nosqlcosmosdb_postgresql |
| data-source.connection-string | Cadena de conexión para el tipo de base de datos seleccionado |
| data-source.options | Propiedades específicas de la base de datos (por ejemplo, opciones para SQL Server, Cosmos DB, etc.) |
| data-source.options.database | Nombre de la base de datos de Azure Cosmos DB para NoSQL (se requiere cuando database-type = cosmosdb_nosql) |
| data-source.options.container | Nombre del contenedor de Azure Cosmos DB para NoSQL (necesario cuando database-type = cosmosdb_nosql) |
| data-source.options.schema | Ruta de acceso al archivo de esquema graphQL (obligatorio cuando database-type = cosmosdb_nosql) |
| data-source.options.set-session-context | Habilita el envío de notificaciones de JSON Web Token (JWT) como contexto de sesión (solo SQL Server) |
| data-source.health | Objeto que configura comprobaciones de estado para el origen de datos |
| data-source.health.enabled | Habilita el punto de conexión de comprobación de estado |
| data-source.health.name | Identificador usado en el informe de estado |
| data-source.health.threshold-ms | Duración máxima en milisegundos para la consulta de comprobación de estado |
| data-source.user-delegated-auth | Objeto que configura la autenticación delegada por el usuario (solo mssql)Behalf-Of (OBO) |
| data-source.user-delegated-auth.enabled | Habilita la autenticación de OBO |
| data-source.user-delegated-auth.provider | Proveedor de identidades de OBO (actualmente EntraId solo) |
| data-source.user-delegated-auth.database-audience | Audiencia de destino para el token de SQL de nivel inferior |
Introducción al 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>"]
}
Origen de datos
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
data-source |
object | ✔️ Sí | - |
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
database-type |
enum | ✔️ Sí | None |
data-source |
connection-string |
string | ✔️ Sí | None |
data-source |
options |
object | ❌ No | None |
Valores de propiedad
database-type |
Description | Versión mínima |
|---|---|---|
mssql |
SQL en Fabric | - |
mssql |
Azure SQL Database | - |
mssql |
mi de Azure SQL | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Almacén de telas | - |
dwsql |
Punto de conexión de SQL Analytics de Fabric | - |
postgresql |
PostgreSQL | ver. 11 |
mysql |
MySQL | ver. 8 |
cosmosdb_nosql |
Azure Cosmos DB para NoSQL | - |
cosmosdb_postgresql |
Azure Cosmos DB para PostgreSQL | - |
Format
{
"data-source": {
"database-type": <string>,
"connection-string": <string>,
"options": {
"<key-name>": <string>
}
}
}
Ejemplo: Azure SQL & 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
Data API Builder usa SqlClient para Azure SQL y SQL Server, que admite these cadena de conexión variantes.
Utilice SESSION_CONTEXT
Para Azure SQL y SQL Server, el generador de API de datos puede incluir información de notificaciones en 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;
Ejemplo: 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
Las "opciones" especificadas (database, containery schema) son específicas de Azure Cosmos DB.
Variables de entorno
Use variables de entorno para mantener los secretos de texto sin formato del archivo de configuración.
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
Resistencia de la conexión
Data API Builder usa retroceso exponencial para reintentar las solicitudes de base de datos después de errores transitorios.
| Attempts | First | Second | Third | Fourth | Fifth |
|---|---|---|---|---|---|
| Seconds | 2s | 4s | 8s | 16s | 32s |
Identidades de servicio administradas (MSI)
Las identidades de servicio administradas (MSI) se admiten con
Identidades administradas asignadas por el usuario (UAMI)
Para la identidad administrada asignada por el usuario, anexe las propiedades Authentication y User ID a la cadena de conexión al sustituir en el identificador de cliente de la identidad administrada asignada por el usuario: Authentication=Active Directory Managed Identity; User Id=<UMI_CLIENT_ID>;.
Identidad administrada asignada por el sistema (SAMI)
Para la identidad administrada asignada por el sistema, anexe la propiedad Authentication y excluya los argumentos UserId y Password del cadena de conexión: Authentication=Active Directory Managed Identity;.
Estado (origen de datos)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
health |
object | No | – |
Data API Builder admite varios archivos de configuración, cada uno con su propio origen de datos. Este bloque de configuración permite que cada origen de datos tenga su propia configuración de estado.
Propiedades anidadas
| 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 |
Comprobar nombre
Dado que varios archivos de configuración pueden apuntar a orígenes de datos del mismo tipo, esos orígenes de datos no se pueden distinguir en el informe de estado. Use name para asignar una etiqueta única y identificable que solo se usa en el informe de mantenimiento.
Comprobación del comportamiento
La consulta más sencilla posible,específica del tipo de base de datos, se ejecuta en el origen de datos especificado para validar que se puede abrir la conexión. Use la threshold-ms propiedad para configurar la duración máxima aceptable (en milisegundos) para que se complete esa consulta.
Format
{
"data-source": {
"health": {
"enabled": <true> (default) | <false>,
"name": <string>,
"threshold-ms": <integer; default: 1000>
}
}
}
Autenticación delegada por el usuario
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source |
user-delegated-auth |
object | No | – |
Autenticación delegada por el usuario enBehalf-Of (OBO) para SQL Server y Azure SQL. Cuando está habilitada, DAB intercambia el token de usuario entrante para un token SQL de nivel inferior para que la base de datos se autentique como el usuario que realiza la llamada real. Esta característica solo se admite para orígenes de datos de mssql y requiere Microsoft Entra ID autenticación ascendente.
Note
La funcionalidad de Data API Builder 2.0 descrita en esta sección se encuentra actualmente en versión preliminar y podría cambiar antes de la disponibilidad general. Para obtener más información, consulte Novedades de la versión 2.0.
Propiedades anidadas
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
data-source.user-delegated-auth |
enabled |
boolean | No | false |
data-source.user-delegated-auth |
provider |
enumeración (EntraId) |
No | EntraId |
data-source.user-delegated-auth |
database-audience |
string | Sí (cuando está habilitado) | None |
-
enabled— activa o desactiva OBO. -
provider: el proveedor de identidades para el intercambio de tokens. Actualmente solo se admiteEntraId. -
database-audience: la audiencia de destino para el token de SQL de bajada (por ejemplo,https://database.windows.net).
Variables de entorno necesarias
Cuando OBO está habilitado, DAB lee las siguientes variables de entorno para el intercambio de tokens:
| Variable | Description |
|---|---|
DAB_OBO_CLIENT_ID |
Id. de aplicación (cliente) del registro de aplicaciones de Microsoft Entra ID |
DAB_OBO_CLIENT_SECRET |
Secreto de cliente para el registro de aplicaciones |
DAB_OBO_TENANT_ID |
ID de tenant de Microsoft Entra |
Agrupación de conexiones por usuario
Cuando OBO está habilitado, DAB mantiene grupos de conexiones SQL independientes por usuario para que el token de acceso de un usuario nunca se reutilice para la solicitud de otro usuario.
Note
La agrupación de conexiones por usuario solo se aplica cuando la autenticación de OBO está activa. Las implementaciones estándar no se ven afectadas.
Format
{
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')",
"user-delegated-auth": {
"enabled": <true> | <false> (default),
"provider": <string>,
"database-audience": <string>
}
}
}
Ejemplo
{
"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
OBO solo se admite para mssql. La database-audience propiedad es necesaria cuando se habilita OBO. Al ejecutar esta configuración en un origen de datos que no sea MSSQL, se produce un error en la validación.