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.
Soluciones para problemas comunes de conectividad, autenticación y configuración de entidades de SQL Server en data API Builder.
Preguntas frecuentes
¿Qué es la compatibilidad con SQL Server en DAB?
Data API Builder admite Microsoft SQL Server y Azure SQL como back-end de base de datos relacional. DAB se conecta mediante el controlador Microsoft.Data.SqlClient y traduce las solicitudes REST y GraphQL en consultas T-SQL. Se admiten las instancias locales de SQL Server y Azure SQL Database.
¿Qué formato de cadena de conexión usa SQL Server?
DAB utiliza cadenas de conexión de estilo ADO.NET para SQL Server. Una cadena típica se ve como Server=localhost,1433;Database=mydb;User Id=sa;Password=yourpassword;TrustServerCertificate=True;. Establezca la cadena de conexión en el campo data-source.connection-string de dab-config.json o pásela a través de la opción --connection-string en dab init.
¿Qué modos de autenticación se admiten?
DAB admite la autenticación de SQL (nombre de usuario y contraseña), la autenticación integrada de Windows y la autenticación de Microsoft Entra (anteriormente Azure Active Directory) para Azure SQL. Para usar la autenticación Entra, establezca Authentication=Active Directory Default o Active Directory Managed Identity en la cadena de conexión y asegúrese de que se haya concedido acceso a la base de datos a la identidad administrada o a la entidad de servicio.
Problemas comunes
No se puede conectar al contenedor de SQL Server
Síntoma: Un error de conexión evita que DAB se inicie, como A network-related or instance-specific error occurred.
Causa: El puerto de contenedor de SQL Server no está asignado correctamente, el nombre de host es incorrecto o el contenedor aún no está listo para aceptar conexiones.
Resolución: Compruebe que el contenedor se está ejecutando con docker ps. Confirme la asignación de puertos (valor predeterminado 1433) y use localhost,1433 en la cadena de conexión. Agregue TrustServerCertificate=True si usa un certificado autofirmado. Si el contenedor acaba de iniciarse, espere unos segundos para que SQL Server se inicialice antes de iniciar DAB.
Error de inicio de sesión para el usuario
Síntoma: Los registros DAB muestran Login failed for user 'sa' o un error de autenticación similar.
Causa: El modo de nombre de usuario, contraseña o autenticación de la cadena de conexión no coincide con la configuración de SQL Server. SQL Server también se puede ejecutar en modo de solo autenticación de Windows.
Resolución: Confirme que las credenciales coinciden con las establecidas cuando se creó el contenedor o el servidor. Si usa un contenedor, compruebe la variable de entorno SA_PASSWORD. Para habilitar la autenticación de SQL en una instancia existente, establezca el modo de autenticación del servidor en SQL Server y el modo de autenticación de Windows en SQL Server Management Studio en Seguridad de propiedades > del servidor.
Error de entidad no encontrada
Síntoma: Las solicitudes REST o GraphQL devuelven un 404 error de esquema o que indica que la tabla de origen de la entidad no existe.
Causa: El nombre de tabla o el prefijo de esquema del campo de source la entidad no coincide con el objeto de base de datos real. Los nombres de tabla de SQL Server no distinguen mayúsculas de minúsculas de forma predeterminada, pero el prefijo de esquema (por ejemplo, dbo) debe estar presente si no se usa el esquema predeterminado.
Resolución: Compruebe el source valor en dab-config.json. Use un nombre completamente calificado como dbo.Products. Ejecute SELECT * FROM INFORMATION_SCHEMA.TABLES en la base de datos de destino para confirmar el nombre y el esquema de la tabla.
Error de firewall o red al conectarse a Azure SQL
Síntoma: Las conexiones a la Base de Datos de Azure SQL agotan el tiempo de espera o devuelven Cannot open server ... requested by the login.
Causa: Las reglas de firewall de Azure SQL Server no permiten la dirección IP del cliente o la configuración de acceso al servicio de Azure está deshabilitada.
Resolución: En Azure Portal, vaya al recurso de SQL Server y seleccione Redes. Agregue la dirección IP del cliente a la lista de permitidos del firewall o habilite Permitir que los servicios y recursos de Azure accedan a este servidor si DAB se ejecuta en Azure. Para la autenticación de identidad administrada, compruebe que la identidad se ha agregado como usuario de base de datos con CREATE USER [identity-name] FROM EXTERNAL PROVIDER.
Las columnas JSON no se detectan automáticamente
Síntoma: Una columna con un tipo JSON o NVARCHAR(MAX) que almacena datos JSON no se expone como un objeto estructurado en el esquema de API.
Causa: Data API Builder aún no detecta y asigna automáticamente columnas JSON en Azure SQL. Se trata de una limitación conocida que se realiza en el problema 444 de GitHub.
Resolución: No hay ninguna solución alternativa en este momento. La columna se expondrá como un valor de texto sin formato. Siga el problema de GitHub para obtener actualizaciones cuando se agregue compatibilidad con columnas JSON nativas.