适用于:✅ Microsoft Fabric 中的 SQL 分析终结点和仓库
在 Microsoft Fabric 中,用户通过表格数据流(TDS)终结点访问 SQL 分析终结点或仓库。 现代 Web 应用程序与 SQL Server TDS 端点交互。 在 Microsoft Fabric 设置中,此终结点标记为 SQL 连接字符串。
小窍门
有关使用常用工具进行连接的教程,请参阅 “连接到 Fabric 数据仓库”。
向 Fabric 中的仓库进行身份验证
在 Microsoft Fabric 中,SQL 连接字符串支持两种类型的经过身份验证的用户:
- Microsoft Entra ID 用户主体或用户标识
- Microsoft Entra ID 服务主体
有关详细信息,请参阅 Microsoft Entra 身份验证作为 Microsoft Fabric 中 SQL 身份验证的替代方法。
SQL 连接字符串要求打开 TCP 端口 1433。 TCP 1433 是标准的 SQL Server 端口号。 SQL 连接字符串还遵循用于数据访问的仓库或 Lakehouse SQL 分析终结点安全模型。 用户可以访问他们有权访问的所有对象的数据。
有关 SQL 分析终结点中安全性的详细信息,请参阅 适用于 SQL 分析终结点的 OneLake 安全性。
最佳做法
向应用程序和 ETL 作业添加重试,使其更具弹性。 有关详细信息,请参阅以下文档:
- 重试模式 - Azure 体系结构中心
- 处理暂时性错误 - Azure SQL 数据库
- 步骤 4:使用 ADO.NET 建立与 SQL 的弹性连接 - 适用于 SQL Server 的 ADO.NET 提供程序
- 步骤 4:使用 PHP 弹性连接到 SQL - 适用于 SQL Server 的 PHP 驱动程序
- 使用服务标记进行防火墙清理,如以下部分所述。
- 连接时,应提供仓库项名称作为 初始目录 或 数据库名称 。 如果未提供
InitialCatalog连接字符串 属性,则初始连接上下文将为master仓库。
允许通过防火墙使用 Azure 服务标记
若要通过防火墙启用连接,需要允许 Power BI 服务标记和 SQL 服务标记。 有关详细信息,请参阅 Power BI 服务标记和服务标记。
不能单独使用 TDS 终结点的完全限定域名(FQDN)。
注意事项和限制
- 不支持 SQL 身份验证。
- Microsoft Fabric Warehouse 不支持多重活动结果集(MARS)。 MARS 默认处于禁用状态。 如果
MultipleActiveResultSets包含在连接字符串中,请将其删除或设置为 false。 - 如果收到错误代码 24804,并显示消息“由于系统更新而无法完成操作。 关闭此连接,再次登录,然后重试该操作,或出现错误代码 6005,并显示消息“正在关闭”。 在 SQL Server 上执行失败。 如果需要进一步支持,请联系 SQL Server 团队。”,这是由于临时连接丢失,可能是由于系统部署或重新配置。 若要解决此问题,请重新登录,然后重试。 若要了解如何在应用程序中构建复原能力和重试,请参阅最佳做法。
- 不支持来自 SQL Server 的链接服务器连接。
InitialCatalog 的连接行为
2026 年 5 月,Microsoft 更新了 Fabric Data Warehouse 和 SQL 分析终结点的连接行为,使 InitialCatalog连接字符串属性成为可选项。 目前,如果未提供 InitialCatalog 属性,用户将连接到 master 系统数据库。 在Fabric Data Warehouse中,只能连接到 master 数据库,不能修改 master 数据库,也不能在 master 数据库中创建、更改或删除用户对象。
可以使用 USE Transact-SQL 语法在连接到 master 后更改连接仓库上下文,使用 DB_NAME() 函数来确定当前仓库。 例如:
SELECT DB_NAME(); --returns name of current warehouse context
GO
USE [ContosoWarehouse];
GO
SELECT DB_NAME(); --returns name of current warehouse context
GO
下表概述了在连接字符串中指定或省略 InitialCatalog 属性时Fabric Data Warehouse和 SQL 分析终结点的更新连接行为。
| 输入场景 | 2026 年 5 月之前 | 当前行为 |
|---|---|---|
| 提供的现有仓库名称 | 连接到指定的仓库 | 无更改 - 连接到指定的仓库 |
| 提供的现有仓库 ID | 连接到指定的仓库 | 无更改 - 连接到指定的仓库 |
InitialCatalog 未提供属性 |
连接到工作区中的非确定性仓库 | 连接至 master |
InitialCatalog = master |
连接到工作区中的非确定性数据仓库 | 连接到 master |
InitialCatalog 属性中的仓库不存在 |
连接到工作区中的非确定性仓库 | 引发一个错误,指示不存在仓库 |
错误处理
如果工作区中不存在任何仓库,并且在未指定有效仓库的情况下尝试连接,用户将看到以下错误:“用户“<令牌标识的主体>”登录失败”。 原因:身份验证成功,但找不到数据库,或者你没有足够的权限连接到它。
以下屏幕截图显示了在将无效仓库名称提供为 InitialCatalog 时,SSMS 中出现的错误: