Conectar SSMS, Azure Data Studio y sqlcmd a Microsoft Fabric Warehouse
El portal web de Microsoft Fabric es una herramienta excelente para exploraciones rápidas y modelado básico, pero se queda corto cuando necesitamos realizar tareas de ingeniería pesada, scripting complejo o comparaciones de esquemas. Para un consultor que gestiona entornos de retail o industria, donde las tablas de Ventas o Inventario pueden alcanzar volúmenes considerables, la agilidad que aporta el software local es indiscutible. La capacidad de conectar herramientas externas mediante el protocolo TDS (Tabular Data Stream) permite tratar al Warehouse de Fabric como si fuera una instancia de SQL Server, aunque con matices importantes que debemos conocer.
En este artículo abordaremos cómo establecer esta comunicación de forma robusta. No se trata solo de copiar una cadena de conexión; analizaremos los métodos de autenticación basados en Microsoft Entra ID (antes Azure AD), las diferencias de funcionalidad entre herramientas y los errores comunes que bloquean el acceso en entornos corporativos con políticas de seguridad estrictas. Si vienes de trabajar con SQL Server on-premises, el primer choque cultural será la ausencia de usuarios locales (SQL Login): aquí todo pasa por la identidad en la nube.
Antes de entrar en detalle, es fundamental entender el coste de oportunidad. No conectar herramientas externas te condena a una interfaz web que, aunque mejora cada mes, carece de la potencia de depuración de Azure Data Studio o la capacidad de automatización de sqlcmd. En proyectos donde la gestión de cambios en Fabric es crítica, estas conexiones son el puente necesario para integrar el Warehouse en un ciclo de vida de desarrollo profesional.
Obtención de la cadena de conexión (SQL Connection String)
Cada Warehouse o Lakehouse en Microsoft Fabric tiene un punto de conexión SQL único. Para localizarlo, debes navegar al espacio de trabajo (Workspace), identificar el elemento de tipo Warehouse y acceder a su configuración. En el panel de ajustes, bajo la sección de Configuración de SQL, encontrarás una URL similar a xxxxxxxxxxxx.datawarehouse.pbidedicated.windows.net. Esta dirección es la que utilizaremos como nombre del servidor.
Es vital distinguir entre el Warehouse y el SQL Endpoint del Lakehouse. Mientras que el Warehouse permite operaciones DDL (Data Definition Language) y DML (Data Manipulation Language), el endpoint del Lakehouse es de solo lectura. Si intentas ejecutar un CREATE TABLE o un INSERT conectándote al endpoint de un Lakehouse desde SSMS, recibirás un error de permiso denegado, independientemente de tus privilegios en el Workspace. Esta distinción es el origen de muchos fallos de despliegue en fases iniciales.
Configuración de la autenticación con Entra ID
Microsoft Fabric no soporta la autenticación tradicional de SQL Server (usuario y contraseña almacenados en la base de datos). Toda validación debe realizarse a través de Microsoft Entra ID. Dependiendo de la herramienta, las opciones varían:
- MFA (Multi-Factor Authentication): Es el estándar actual. En SSMS utilizaremos la opción «Azure Active Directory – Universal with MFA».
- Service Principals: Indispensables para procesos de CI/CD o tareas programadas con
sqlcmddonde no puede haber intervención humana. - Managed Identities: Útiles cuando la conexión se realiza desde otro recurso de Azure.
Un error recurrente en consultoría es intentar conectar usando una cuenta que tiene acceso al portal de Fabric pero no tiene permisos explícitos en el Warehouse. Asegúrate de que el usuario tiene, como mínimo, el rol de Contributor en el Workspace o permisos de ReadData y WriteData sobre el Warehouse específico. Sin esto, la conexión se establecerá pero cualquier consulta sobre las tablas de Hechos_Ventas o Dimension_Cliente fallará con un error de acceso.
Conexión desde SQL Server Management Studio (SSMS)
SSMS sigue siendo la herramienta de referencia para administradores de bases de datos. Para Fabric, se recomienda encarecidamente utilizar la versión 19 o superior, ya que incluye correcciones específicas para la autenticación moderna y el soporte de tablas Delta Parquet bajo el capó.
Al conectar, introduce la cadena de conexión en el campo «Server name». En «Authentication», selecciona Azure Active Directory – Universal with MFA. Deja el campo de usuario en blanco para que se te pida en una ventana emergente o introduce tu correo corporativo. Un truco de consultor: en la pestaña de «Connection Properties», especifica el nombre de la base de datos (el nombre del Warehouse). Aunque Fabric permite navegar entre bases de datos de la misma capacidad, especificarla al inicio acelera el proceso de login y evita timeouts en redes latentes.
-- Ejemplo de consulta de validación en SSMS
-- Comprobamos la versión y el entorno
SELECT
@@VERSION AS Version,
DB_NAME() AS BaseDeDatos,
APP_NAME() AS HerramientaConexion;
-- Listar tablas del esquema de Ventas
SELECT schema_name(schema_id) AS Esquema, name AS Tabla
FROM sys.tables
WHERE schema_name(schema_id) = 'Sales';La principal limitación de SSMS con Fabric es que algunas interfaces gráficas (como el diseñador de tablas o el visor de dependencias) no funcionan correctamente debido a que Fabric utiliza una versión evolucionada de SQL que no expone todos los metadatos tradicionales. Tendrás que acostumbrarte a trabajar más con scripts T-SQL y menos con menús contextuales.
Azure Data Studio: Notebooks y multiplataforma
Si trabajas en macOS o Linux, o si prefieres un entorno más ligero, Azure Data Studio (ADS) es la opción lógica. Su integración con Microsoft Fabric es más fluida en ciertos aspectos, especialmente gracias a la extensión de SQL Server que soporta de forma nativa las conexiones a bases de datos de Azure.
La gran ventaja de ADS es el uso de SQL Notebooks. Esto permite documentar tus procesos de limpieza de datos en la tabla Dimension_Producto combinando bloques de texto explicativo con código ejecutable. Es lo que llamamos «documentación viva del linaje». Al realizar pruebas de rendimiento en Fabric Warehouse, los Notebooks nos permiten guardar los resultados de las DMVs (Dynamic Management Views) junto con las gráficas de ejecución en un solo archivo.
Para conectar en ADS:
- Crea una nueva conexión.
- Tipo de conexión: Microsoft SQL Server.
- Server: Tu cadena de conexión de Fabric.
- Authentication type: Azure Active Directory – Universal with MFA support.
- Selecciona tu cuenta de Azure en el desplegable.
Automatización con sqlcmd
En escenarios de industria donde necesitamos cargar datos o ejecutar transformaciones de forma programada desde servidores locales, sqlcmd es la herramienta más ligera y potente. Recientemente, Microsoft ha lanzado una nueva versión de sqlcmd (basada en Go) que soporta de forma nativa la autenticación de Entra ID mediante el parámetro --auth.
Supongamos que necesitas ejecutar un script de cierre de mes que recalcula los importes en la tabla Resumen_Mensual_Ventas. Usar el portal web para esto es ineficiente. Con sqlcmd, puedes integrarlo en un archivo batch o una tarea programada:
-- Script: Actualizar_Totales.sql
UPDATE Factura
SET ImporteTotal = (SELECT SUM(Precio * Unidades) FROM LineasFactura WHERE LineasFactura.ID = Factura.ID)
WHERE FechaRegistro >= '2023-10-01';El comando para ejecutarlo sería:
# Usando el nuevo sqlcmd con autenticación interactiva
sqlcmd --server xxxxx.datawarehouse.pbidedicated.windows.net --database MiWarehouse --auth Default --input-file Actualizar_Totales.sqlSi vas a usar un Service Principal para evitar el MFA manual, deberás configurar las variables de entorno AZURE_CLIENT_ID y AZURE_CLIENT_SECRET y cambiar el parámetro de autenticación. Este enfoque es el que recomendamos para evitar el uso de filtros OR complejos en el WHERE que penalicen la ejecución automática al procesar millones de registros.
Comparativa de herramientas
| Característica | SSMS | Azure Data Studio | sqlcmd |
|---|---|---|---|
| Plataforma | Solo Windows | Multiplataforma | Multiplataforma |
| Uso principal | Administración y scripting | Desarrollo y Notebooks | Automatización y CI/CD |
| Soporte Interfaz Gráfica | Alto (con limitaciones) | Medio | Nulo (CLI) |
| Autenticación Entra ID | Nativa | Nativa | Nativa (versión nueva) |
| Visualización de Plan de Ejecución | Sí (XML/Gráfico) | Sí | No |
Errores frecuentes y soluciones
Durante la implementación de arquitecturas de datos en Fabric, nos encontramos con patrones de error recurrentes. El primero es el Bloqueo por Firewall. Aunque Fabric es un servicio SaaS, si tu organización usa redes virtuales privadas (VNETs) o Firewalls de Azure, debes asegurarte de que el tráfico saliente hacia el endpoint de Fabric esté permitido en el puerto 1433.
Otro error clásico es el Timeout de Conexión. Las consultas en Fabric pueden tardar en «despertar» la computación si la capacidad ha estado pausada o bajo mucha carga. En las herramientas externas, aumenta el tiempo de espera de la conexión (Connection Timeout) a 60 segundos. Esto evitará cierres inesperados mientras Fabric asigna los recursos necesarios para procesar tu consulta sobre la tabla de Hechos.
Por último, recuerda que Fabric Warehouse no soporta todas las características de T-SQL. Por ejemplo, el uso de ciertos hints de bloqueo en SQL Server como UPDLOCK o TABLOCK no tienen sentido en un entorno basado en Delta Lake, donde la concurrencia se gestiona de forma distinta (optimistic concurrency control). Si tus scripts antiguos de SQL Server contienen estos hints, fallarán al ejecutarse contra Fabric.
Para monitorizar qué está ocurriendo realmente durante la conexión y ejecución, puedes recurrir a la monitorización mediante vistas personalizadas consultando sys.dm_exec_sessions y sys.dm_exec_requests directamente desde SSMS para ver quién está conectado y qué impacto tiene en la capacidad.
Checklist de conexión exitosa
- ¿Tienes la URL correcta del endpoint SQL (Warehouse vs Lakehouse)?
- ¿Tu cuenta tiene el rol de Contributor o permisos específicos de Read/Write?
- ¿Estás utilizando la autenticación «Universal with MFA»?
- ¿Has actualizado SSMS o Azure Data Studio a la última versión disponible?
- ¿Está el puerto 1433 abierto en tu red local o corporativa?
Preguntas frecuentes
¿Puedo usar usuarios de SQL Server (SQL Login) en Fabric?
No. Microsoft Fabric requiere exclusivamente autenticación basada en Microsoft Entra ID. No es posible crear logins locales con contraseña dentro del Warehouse como se hacía tradicionalmente en SQL Server u Azure SQL Database.
¿Por qué mi conexión es de solo lectura?
Probablemente te estés conectando al «SQL Analytics Endpoint» de un Lakehouse. En Fabric, los Lakehouses son de solo lectura vía SQL; para tener capacidad de escritura (INSERT, UPDATE, DELETE), debes crear un objeto de tipo «Warehouse».
¿Puedo conectar Power BI Desktop mediante este endpoint?
Sí, puedes usar el conector de SQL Server e introducir la cadena de conexión del Warehouse. Sin embargo, lo más eficiente en Fabric es usar el modo «Direct Lake», que no requiere pasar por el endpoint SQL, sino que lee directamente los archivos Parquet de OneLake.
¿Es posible realizar consultas entre diferentes Warehouses?
Sí, siempre que ambos Warehouses estén en la misma región de Azure. Puedes realizar consultas cross-database utilizando la nomenclatura estándar de tres partes: NombreWarehouse.Esquema.Tabla.





