適用於:✅Microsoft Fabric 中的 SQL 分析端點和倉儲
在 Microsoft Fabric 中,使用者透過表格資料串流(TDS)端點存取 SQL 分析端點或倉庫。 現代網頁應用程式與a SQL Server TDS 端點互動。 在 Microsoft Fabric 設定中,此端點被標記為 SQL 連接字串。
小提示
如需使用常用工具連線的教學課程,請參閱 連線到 Fabric Data Warehouse。
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 分析端點安全性的資訊,請參閱 OneLake SQL 分析端點的安全性。
最佳做法
在應用程式和 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 小組。」,這可能是因為系統部署或重新配置導致暫時失去連線。 若要解決此問題,請再次登入並重試。 若要了解如何在應用程式中提升復原能力和重試效率,請參閱最佳做法。
- 如果您收到錯誤代碼 6008,並顯示「工作區暫時無法使用。 這可能是因為系統維護或內部操作所致。 請重新建立連線。」此錯誤表示連線暫時中斷。 要解決這個問題,請重新建立連線,重新登入,然後重新嘗試操作。 此狀況是短暫的,並不代表查詢或應用程式失敗。
- SQL Server 的連結伺服器連線不被支援。
InitialCatalog 的連線行為
2026 年 5 月,Microsoft 更新了 Fabric Data Warehouse 和 SQL 分析端點的連線行為,使 the InitialCatalog 連接字串 屬性成為可選。 目前,當未提供 master 屬性時,使用者會連線到 InitialCatalog 系統資料庫。 在 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月之前 | 現行行為 |
|---|---|---|
| 現有倉庫名稱 | 連接至指定的倉庫 | 沒有變動 ——連接到指定的倉庫 |
| 現有倉庫識別碼提供 | 連接至指定的倉庫 | 沒有變動 ——連接到指定的倉庫 |
InitialCatalog 未提供屬性 |
連線至工作區中的非決定性倉儲 | 連線至 master |
InitialCatalog = master |
連線至工作區中的非決定性倉儲 | 連線至 master |
InitialCatalog 屬性中的倉庫不存在 |
連線至工作區中的非決定性倉儲 | 會丟出錯誤,表示沒有倉庫存在 |
錯誤處理
如果工作區中沒有任何倉庫,且嘗試在未指定有效倉庫的情況下進行連線,使用者會看到下列錯誤:「使用者 '<token-identified principal>' 登入失敗。」 原因:認證成功,但找不到資料庫,或你沒有足夠的權限連接。」
以下截圖顯示了當 SSMS 中提供 InitialCatalog無效倉庫名稱時所出現的錯誤: