共用方式為


Azure SQL 與 Microsoft SQL Server Microsoft Graph 連接器

Microsoft SQL Server 或 Azure SQL Microsoft Graph 連接器可讓您的組織從內部部署 SQL Server 資料庫或雲端中裝載於 Azure SQL 實例中的資料庫探索和編製數據索引。 連接器會在搜尋和 Microsoft 365 Copilot 中Microsoft指定的內容編製索引。 若要讓索引與源數據保持在最新狀態,它支援定期完整和累加編目。 透過這些 SQL 連接器,您也可以限制特定使用者的搜尋結果存取權。

本文適用於Microsoft 365 個系統管理員或設定、執行及監視 Azure SQL 或 Microsoft SQL Server Microsoft Graph 連接器的任何人。

功能

  • 使用 SQL 查詢從 MS SQL 伺服器或 Azure SQL 資料庫編製記錄的索引。
  • 使用 SQL 查詢中新增的使用者或群組清單,指定每一筆記錄的訪問許可權。
  • 讓使用者在 Copilot 中詢問索引記錄的相關問題。
  • Copilot 中使用語意搜尋 ,讓用戶能夠根據關鍵詞、個人喜好設定和社交連線來尋找相關內容。

限制

  • Microsoft SQL Server 連接器:內部部署資料庫必須 SQL Server 2008 版或更新版本執行。
  • Azure SQL 連接器:Microsoft 365 訂用帳戶和 Azure 訂用帳戶 (裝載 Azure SQL 資料庫) 必須位於相同的 Microsoft Entra ID 內。 不支援跨租用戶數據流。
  • 為了支援高編目速度和更佳的效能,建置連接器僅支援 OLTP (在線事務處理) 工作負載。 OLAP (在線分析處理) 工作負載,這些工作負載不會在 40 秒逾時後執行提供的 SQL 查詢,且不受支援。
  • ACL 僅支援使用使用者主體名稱 (UPN) 、Microsoft Entra ID 或 Active Directory 安全性。
  • 不支援在資料庫數據行內編製豐富內容的索引。 這類內容的範例包括 HTML、JSON、XML、Blob,以及作為資料庫數據行內連結存在的檔剖析。

必要條件

  • 您必須是組織Microsoft 365 租使用者的 搜尋管理員
  • 安裝 Microsoft Graph 連接器代理程式 (僅適用於 MS SQL 連接器) :若要存取您的Microsoft SQL Server,您必須安裝並設定連接器代理程式。 若要深入瞭解,請參閱 安裝 Microsoft Graph 連接器代理 程式。
  • 服務帳戶:若要連線到您的 SQL 資料庫,並允許 Microsoft Graph 連接器定期更新記錄,您需要具有授與服務帳戶讀取許可權的服務帳戶。

注意事項

如果您在設定Microsoft SQL Server 連接器時使用 Windows 驗證,您嘗試登入的用戶必須具有安裝連接器代理程式之計算機的互動式登入許可權。 如需詳細資訊,請參閱 登入原則管理

開始使用安裝程式

1.顯示名稱

顯示名稱可用來識別 Copilot 中的每個引文,協助使用者輕鬆辨識相關聯的檔案或專案。 顯示名稱也代表受信任的內容。 顯示名稱也會當做 內容來源篩選條件使用。 此欄位有預設值,但您可以將它自定義為組織中用戶可辨識的名稱。

2. SQL伺服器

若要連線到您的 SQL 資料,您需要 SQL 伺服器地址和資料庫名稱。

3.驗證類型

Azure SQL 連接器僅支援 Microsoft Entra ID OpenID Connect (OIDC) 驗證來連線到資料庫。

僅 Azure SQL Microsoft Graph 連接器註冊應用程式 ()

針對 Azure SQL 連接器,您必須在 Microsoft Entra ID 中註冊應用程式,以允許Microsoft搜尋應用程式和 Microsoft 365 Copilot 存取索引的數據。 若要深入瞭解如何註冊應用程式,請參閱 Microsoft Graph 檔,瞭解如何 註冊應用程式

完成應用程式註冊並記下應用程式名稱、應用程式 (用戶端) 識別碼和租使用者標識符之後,您必須 產生新的客戶端密碼。 用戶端只會顯示一次。 請記得 & 安全地儲存客戶端密碼。 在搜尋和 Microsoft 365 Copilot 中設定新連線時,請使用用戶端標識碼和客戶端密碼Microsoft。

若要將已註冊的應用程式新增至 Azure SQL 資料庫,您需要:

  1. 登入您的 Azure SQL 資料庫。
  2. 開啟新的查詢視窗。
  3. 執行 'CREATE USER [app name] FROM EXTERNAL PROVIDER' 命令來建立新的使用者。
  4. 執行 'exec sp_addrolemember 'db_datareader'、[app name]' 或 'ALTER ROLE db_datareader ADD MEMBER [app name]' 命令,將使用者新增至角色。

若要深入瞭解撤銷在 Microsoft Entra ID 中註冊之任何應用程式的存取權,請參閱移除已註冊的應用程式

僅限 Azure SQL Microsoft Graph 連接器的防火牆設定 ()

為了增加安全性,您可以為 Azure SQL 伺服器或資料庫設定IP防火牆規則。 若要深入瞭解如何設定IP防火牆規則,請參閱 IP防火牆規則的相關文件。 在防火牆設定中新增下列用戶端IP範圍。

區域 Microsoft 365 企業版 Microsoft 365 政府版
NAM 52.250.92.252/30, 52.224.250.216/30 52.245.230.216/30, 20.141.117.64/30
EUR 20.54.41.208/30, 51.105.159.88/30 NA
APC 52.139.188.212/30, 20.43.146.44/30 NA

4.向有限的物件推出

如果您想要先在 Copilot 和其他搜尋介面中驗證此連線,再將此連線擴充至更廣泛的物件,請將此連線部署至有限的使用者基底。 若要深入瞭解有限的推出, 請按兩下這裡

內容

若要搜尋資料庫內容,您必須在設定連接器時指定 SQL 查詢。 這些 SQL 查詢需要將您要編製索引的所有資料庫數據行命名 (源屬性) 。 這包括需要執行才能取得所有數據行的任何 SQL 聯結。 若要限制對搜尋結果的存取,您必須在設定連接器時,指定 #DE1C31A7A2F734D35BB80DCB851A129B0 清單 (SQL 查詢內) ACL。

1.需要完整編目 ()

a. 選 (選) 和 ACL 資料行 (選用資料行)

[按兩下以展開]選取數據行以進行完整編目查詢。

在此步驟中,您會設定執行資料庫完整編目的 SQL 查詢。 完整編目會選取需要在 Microsoft Copilot 或 Search 中呈現的所有數據行或屬性。 您也可以指定 ACL 資料行,將搜尋結果的存取限制為特定使用者或群組。

提示

若要取得您需要的所有資料行,您可以聯結多個數據表。

顯示具有範例屬性之 OrderTable 和 AclTable 的腳本。

此範例示範五個數據行的選取範圍,這些數據行會保存搜尋的數據:OrderId、OrderTitle、OrderDesc、CreatedDateTime 和 IsDeleted。 若要設定每個數據列的檢視許可權,您可以選擇性地選取下列 ACL 數據行:AllowedUsers、AllowedGroups、DeniedUsers 和 DeniedGroups。 所有這些數據行也有 查詢搜尋、擷 精簡的選項。

選取資料行,如下列範例查詢所示: SELECT orderId, orderTitle, orderDesc, allowedUsers, allowedGroups, deniedUsers, deniedGroups, createdDateTime, isDeleted

SQL 連接器不允許 SELECT 子句中具有非英數位元的數據行名稱。 使用別名,從數據行名稱中移除任何非英數位元。 範例 - SELECT column_name AS columnName

若要管理搜尋結果的存取權,您可以在查詢中指定一或多個 ACL 資料行。 SQL 連接器可讓您控制每個記錄層級的存取權。 您可以選擇對資料表中的所有記錄擁有相同的存取控制。 如果 ACL 資訊儲存在個別的數據表中,您可能必須在查詢中與這些數據表聯結。

上述查詢中每個 ACL 資料行的使用方式如下所述。 下列清單說明四 種訪問控制機制

  • AllowedUsers:此數據行會指定可存取搜尋結果的使用者標識符清單。 在下列範例中,用戶清單: john@contoso.com、 keith@contoso.com和 lisa@contoso.com 只能存取 OrderId = 12 的記錄。
  • AllowedGroups:此數據行會指定能夠存取搜尋結果的使用者群組。 在下列範例中,群組 sales-team@contoso.com 只能存取 OrderId = 12 的記錄。
  • DeniedUsers:此資料行會指定 無法 存取搜尋結果的用戶清單。 在下列範例中,用戶 john@contoso.com 和 keith@contoso.com 沒有 OrderId = 13 的記錄存取權,而其他人則可以存取此記錄。
  • DeniedGroups:此數據行會指定 無法 存取搜尋結果的使用者群組。 在下列範例中,群組 engg-team@contoso.com 和 pm-team@contoso.com 無法存取 OrderId = 15 的記錄,而其他人則可以存取此記錄。

顯示具有範例屬性之 OrderTable 和 AclTable 的範例數據。

b. 支援的數據類型

[按兩下以展開]支援的數據類型清單。

下表摘要說明 MS SQL 和 Azure SQL 連接器中支援的 SQL 資料類型。 數據表也會摘要說明支援的SQL數據類型的索引數據類型。 若要深入瞭解Microsoft圖形連接器支持的數據類型來編製索引,請參閱 屬性資源類型的檔。

類別 源數據類型 編製數據類型的索引
日期和時間 date
datetime
datetime2
smalldatetime
datetime
精確數值 bigint
int
smallint
tinyint
int64
精確數值 布林值
近似數值 float
實數
double
字元字串
varchar
文字
字串
Unicode 字元字串 nchar
nvarchar
ntext
字串
字串集合
varchar
文字
stringcollection*
其他數據類型 uniqueidentifier 字串

*若要將數據行編製索引為 StringCollection,您必須將字串轉換成字符串集合類型。 按兩下 [完整編目設定] 中的 [編輯資料類型] 連結,然後選取適當的數據行作為 StringCollection,以及指定分隔符來分割字串,即可完成此作業。

針對目前不直接支援的任何其他數據類型,數據行必須明確轉換為支持的數據類型。

c. 浮浮浮水印 (必要)

[按兩下以展開]在完整編目查詢中指定浮浮浮水印數據行

若要防止多載資料庫,連接器會使用完整編目浮浮水印數據行批次並繼續完整編目查詢。 使用浮浮水印數據行的值,會擷取每個後續批次,並從最後一個檢查點繼續查詢。 基本上,此機制會控制完整編目的數據重新整理。

建立浮浮浮水印的查詢代碼段,如下列範例所示:

  • WHERE (CreatedDateTime > @watermark). 使用保留關鍵詞 @watermark來寫入浮 如果浮浮水印資料列的排序順序為遞增,請使用 >,否則請使用 <
  • ORDER BY CreatedDateTime ASC. 以遞增或遞減順序排序浮水印數據行。

在下圖所示的組態中, CreatedDateTime 是選取的水位線數據行。 若要擷取第一批數據列,請指定浮水印數據行的數據類型。 在這裡情況下,資料類型為 DateTime

浮浮水印資料行設定。

第一個查詢會使用下列方法擷取前 N 個數據列數:“CreatedDateTime > January 1, 1753 00:00:00” (dateTime 數據類型的最小值) 。 擷取第一個批次之後,如果數據列是以遞增順序排序,則批次中傳回的最高值 CreatedDateTime 會儲存為檢查點。 例如,2019 年 3 月 1 日 03:00:00。 然後在查詢中使用 「CreatedDateTime > March 1, 2019 03:00:00」 擷取下一批 N 個數據列。

2.管理屬性

SQL 連接器會挑選完整編目 SQL 查詢中指定的所有數據行,作為擷取的來源屬性。 在此步驟中,您可以定義內容的搜尋架構。 這牽涉到定義搜尋批注,例如搜尋、擷取、查詢和精簡選取的來源屬性。 這也包括指派語意標籤和別名,以增強搜尋相關性。 若要深入瞭解搜尋架構,請參閱 「管理屬性」指導方針的檔。

3.累加編目 (選用)

a. 累加同步查詢

在這個選擇性步驟中,提供 SQL 查詢來執行資料庫的累加編目。 使用此查詢時,SQL 連接器會決定自上次累加編目之後對數據所做的任何變更。 如同在完整編目中,選取您要選取 [ 查詢]、[ 搜尋]、[擷 ] 或 [精簡] 選項的所有數據 。 指定您在完整編目查詢中指定的同一組 ACL 資料行。

下圖中的元件類似於完整編目元件,但有一個例外狀況。 在此情況下,“ModifiedDateTime” 是選取的水位線數據行。 檢閱完整的編目步驟,以瞭解如何撰寫累加編目查詢,並查看下列影像作為範例。

累加編目腳本,顯示可以使用的 OrderTable、AclTable 和範例屬性。

b. 選擇性) (虛刪除指示

在 SQL 記錄系統中,虛刪除是一種技術,您可以藉由設定特定旗標或數據行,將記錄標示為「已刪除」,而不是實際移除資料庫中的記錄。 這可讓記錄保留在資料庫中,但以邏輯方式從大部分的作業中排除。 若要在累加式搜耙期間刪除資料庫中虛刪除的數據列,請指定虛刪除數據行名稱和值,指出數據列已刪除。

虛刪除設定:「虛刪除數據行」和「虛刪除數據行的值,表示已刪除的數據列」。

使用者

您可以選擇使用 [ 只有可存取此數據源的人員 ] 來限制存取完整編目查詢中選取的使用者或群組,或者您可以覆寫這些使用者,讓 每個人都能看見您的內容。

1.對應包含訪問許可權信息的數據行

選擇指定存取控制機制的各種存取控制 (ACL) 資料行。 選取您在完整編目 SQL 查詢中指定的數據行名稱。 請注意,「拒絕」優先於「允許」許可權。

每個 ACL 資料行都應該是多重值數據行。 這些多個標識碼值可以使用分號 (;) 、逗號 (、) 等分隔符來分隔。 您必須在值分隔符欄位中指定此 分隔符

支援使用下列識別碼類型作為 ACL:

  • UPN) (用戶主體名稱 :UPN) (用戶主體名稱是電子郵件位址格式的系統用戶名稱。 例如,UPN (: john.doe@domain.com) 包含使用者名稱 (登入名稱) 、@符号) (分隔符,以及 UPN 後綴) (功能變數名稱。
  • Microsoft Entra ID:在 Microsoft Entra ID 中,每個使用者或群組都有類似 'e0d3ad3d-0000-1111-2222-3c5f5c52ab9b' 的物件標識符。
  • Active Directory (AD) 安全性標識符:在內部部署 AD 安裝程式中,每個使用者和群組都有不可變的唯一安全標識符,看起來像 'S-1-5-21-3878594291-2115959936-132693609-65242.'

用來設定訪問控制清單的搜尋許可權設定。

同步處理

重新整理間隔會決定數據源與 Graph 連接器索引之間同步處理資料的頻率。

您可以根據此處的排程選項來設定完整和累加編目。 根據預設,如果每隔 15 分鐘設定一次) ,則累加編目 (,且會設定每天的完整編目。 如有需要,您可以調整這些排程,以符合您的數據重新整理需求。

此時,您已準備好建立 Azure SQL 或 MS SQL 的連線。 您可以按下 [建立] 按鈕,從您的資料庫發佈連線和索引數據。

疑難排解

發佈連線之後,您可以在系統管理中心的 [數據源] 索引卷標下檢閱狀態。 若要瞭解如何進行更新和刪除,請參閱 管理您的連接器。 您可以 在這裡找到常見問題的疑難解答步驟。

如果您有問題或想要提供意見反應,請 連絡 Microsoft Graph |支援