使用 SSMS 連接 Power Pages 的 Dataverse 環境:新手完整教學
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1354
本文示範如何使用 SQL Server Management Studio(SSMS),連接 Power Pages 環境背後的 Microsoft Dataverse,並以唯讀 SQL 查詢資料。
前言
Power Pages 網站的資料通常儲存在 Microsoft Dataverse。雖然它不是傳統的 SQL Server 資料庫,但 Dataverse 提供 TDS(Tabular Data Stream)端點,讓我們可以透過 SSMS 執行部分 SQL 查詢。
這種連線很適合用來:
- 了解 Power Pages 與 Dataverse 的資料結構
- 檢查聯絡人、網頁及網站設定等資料
- 排查資料關聯問題
- 撰寫唯讀報表查詢
重要:Dataverse TDS 端點是唯讀連線,不能使用 INSERT、UPDATE、DELETE 或其他方式修改資料。
準備事項
開始前需要:
- 一個包含 Dataverse 的 Power Platform/Power Pages 環境。
- 可以存取該環境的公司或學校 Microsoft 帳號。
- SQL Server Management Studio 18.12.1 或更新版本。
- 環境已啟用 TDS endpoint。此設定通常預設開啟。
步驟一:找到 Dataverse 環境網址
環境選擇器裡看到的名稱只是「顯示名稱」,不能直接當作 SSMS 的 Server Name。真正需要的是環境的 Dataverse 網址。
- 開啟 Power Apps Maker Portal 並登入。
- 使用右上角的環境選擇器,切換到目標環境。
- 點選右上角的齒輪圖示。
- 選擇 Developer resources/開發人員資源。
- 找到 Web API endpoint/Web API 端點。
Web API endpoint 看起來可能像這樣:
https://exampleorg.crm0.dynamics.com/api/data/v9.2
從中取出主機名稱,移除 https:// 和後面的 API 路徑:
exampleorg.crm0.dynamics.com
最後加上 TDS 連接埠 ,5558:
exampleorg.crm0.dynamics.com,5558
這就是稍後要填入 SSMS 的 Server Name。
crm0只是脫敏範例。實際環境可能使用其他區域代碼,請完整保留自己環境網址中的內容,不要自行替換。
步驟二:設定 SSMS 連線
開啟 SSMS 的 Connect 視窗,填入以下內容:
| 欄位 | 設定值 |
|---|---|
| Server Name | exampleorg.crm0.dynamics.com,5558 |
| Authentication | Microsoft Entra MFA |
| User Name | 可存取環境的完整 Microsoft 帳號 |
| Password | 留空,稍後透過登入視窗驗證 |
| Database Name | 先留空;如果預設顯示 master,可保留 |
| Encrypt | Mandatory |
| Trust Server Certificate | 建議不要勾選 |
不能使用以下驗證方式:
- Windows Authentication
- SQL Server Authentication
Dataverse TDS 端點只支援 Microsoft Entra ID 驗證。在較舊版本的 SSMS 中,MFA 選項可能顯示為 Azure Active Directory - Universal with MFA 或類似名稱。
步驟三:完成 Microsoft 登入
- 按下 Connect。
- 等待 Microsoft 登入視窗出現。
- 選擇有權存取目標環境的帳號。
- 完成密碼、Microsoft Authenticator 或組織要求的其他 MFA 驗證。
- 等待 SSMS Object Explorer 載入環境資料。
連線成功後,可以在 Object Explorer 展開資料庫與 Tables。常見的 Power Pages/Dataverse 資料表包括:
dbo.contact
dbo.account
dbo.adx_website
dbo.adx_webpage
實際可見的資料表取決於環境內安裝的方案,以及登入者的安全性角色與資料權限。
步驟四:執行第一個查詢
建立一個 New Query,先執行:
SELECT @@VERSION;
如果回傳 SQL Azure 版本資訊,表示 TDS 連線已正常運作。
接著可以嘗試讀取少量聯絡人資料:
SELECT TOP 10
contactid,
fullname,
emailaddress1,
createdon
FROM contact
ORDER BY createdon DESC;
如果查詢視窗上方的資料庫選單仍顯示 master,可將它切換成 Object Explorer 中顯示的環境資料庫,再重新執行查詢。
查詢 Dataverse 時建議:
- 使用
TOP限制回傳筆數。 - 只選取真正需要的欄位,避免直接使用
SELECT *。 - 避免執行範圍過大的 JOIN 或複雜查詢。
- 留意日期時間欄位可能以 UTC 回傳。
常見連線問題
找不到伺服器或連線逾時
先檢查 Server Name:
exampleorg.crm0.dynamics.com,5558
確認其中沒有:
https:///api/data/v9.2- 網址結尾的
/
也可以在 PowerShell 測試連接埠:
Test-NetConnection -ComputerName exampleorg.crm0.dynamics.com -Port 5558
如果 TcpTestSucceeded 是 False,可能是公司防火牆、VPN、Proxy 或網路政策封鎖了連線。Dataverse TDS 會使用 TCP 1433 或 5558;使用本文的設定時需要允許 5558。
Login failed
請確認:
- Authentication 使用
Microsoft Entra MFA。 - 登入帳號屬於正確的 Microsoft Entra tenant。
- 該帳號可以在 Power Apps 中開啟目標環境。
- 沒有誤用 Windows Authentication 或 SQL Server Authentication。
TDS endpoint 未啟用
具有管理權限的人員可以在 Power Platform admin center 中檢查:
- 進入 Manage → Environments。
- 選擇目標環境。
- 進入 Settings → Product → Features。
- 確認 Enable TDS endpoint 已開啟。
缺少 prvAllowTDSAccess 權限
如果錯誤訊息提到:
User misses prvAllowTDSAccess privilege
代表環境啟用了 TDS 使用者層級存取控制,但登入者的安全性角色沒有 Allow user to access TDS endpoint 權限。這需要由 Power Platform 管理員調整安全性角色。
即使擁有 TDS 使用權,使用者仍然只能查詢其 Dataverse 安全性角色原本允許存取的資料。
安全性與使用限制
SSMS 在這裡只是 Dataverse 的唯讀查詢工具,而不是 Dataverse 的管理後門。下列操作不受支援:
INSERT
UPDATE
DELETE
CREATE TABLE
ALTER TABLE
DROP TABLE
若要修改 Power Pages 或 Dataverse 資料,應改用:
- Power Apps 的 Tables 資料介面
- Power Pages Management App
- Power Automate
- Dataverse Web API
- 官方 SDK 或其他受支援的 Dataverse 工具
此外,不建議在公開文章、截圖或錯誤記錄中暴露以下資訊:
- 真實環境名稱
- Dataverse 組織網址
- 公司 tenant 名稱
- 使用者 Email
- Environment ID、Organization ID
- 查詢結果中的姓名、Email、電話或 GUID
結語
透過 Dataverse TDS endpoint,SSMS 可以成為了解 Power Pages 資料結構的實用工具。連線時只要掌握三個關鍵點即可:
- Server Name 使用 Dataverse 環境主機名稱並加上
,5558。 - Authentication 使用
Microsoft Entra MFA。 - 把連線視為唯讀資料查詢管道,不用它修改資料。
官方參考資料
- Use SQL to query data (Microsoft Dataverse)
- View developer resources
- Control access of the TDS endpoint
- Connect with SQL Server Management Studio
This article was last edited at