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 en el back-end: mssql, postgresql, mysql, , cosmosdb_nosql, cosmosdb_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 |
Azure SQL MI | - |
mssql |
SQL Server | 2016 |
dwsql |
Azure Synapse Analytics | - |
dwsql |
Fabric Warehouse | - |
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
SqlClient Usamos para Azure SQL y SQL Server, que admite estas variantes de cadenas de conexión.
Consumir 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 DefaultAzureCredential definidas en Azure.Identity la biblioteca. Obtenga más información sobre las identidades administradas en Microsoft Entra para Azure SQL.
User-Assigned identidades administradas (UAMI)
En Identidad administrada asignada por el usuario, anexe las propiedades Autenticación e Identificador de usuario 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 de System-Assigned (SAMI)
En Identidad administrada asignada por el sistema, anexe la propiedad Authentication y excluya los argumentos UserId y Password de la 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 mssql orígenes de datos y requiere la autenticación de Entra ID 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_CLIENTID |
Id. de aplicación (cliente) del registro de la aplicación Entra ID |
DAB_OBO_CLIENTSECRET |
Secreto de cliente para el registro de aplicaciones |
DAB_OBO_TENANTID |
Identificador de inquilino de Entra ID |
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.