共用方式為


Azure SQL 和 Microsoft SQL Server Microsoft Graph 連接器

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

注意事項

請閱讀 設定您的 Microsoft Graph 連接器 一文,以瞭解一般 Graph 連接器設定指示。

本文適用於設定、執行及監視 Azure SQL 或Microsoft SQL Server 連接器的任何人。 它會補充一般設定程式,並顯示僅適用於 Azure SQL 和 Microsoft SQL Server 連接器的指示。 本文也包含這兩個連接器 的限制 相關信息。

開始之前

安裝內部部署 Microsoft SQL Server 連接器所需的 Microsoft Graph 連接器代理程式 (僅)

若要存取內部部署第三方數據,您必須安裝並設定連接器代理程式。 若要深入瞭解,請參閱 安裝 Microsoft Graph 連接器代理 程式。

注意事項

如果您在設定 Microsoft SQL Server 連接器時使用 Windows 驗證,則您嘗試登入的用戶必須具有安裝連接器代理程式之電腦的互動式登入許可權。 請參閱有關 登入原則管理 的檔,以檢查登入許可權。

步驟 1:在 Microsoft 365 系統管理中心新增連接器

請遵循一般 設定指示

步驟 2:命名連線

請遵循一般 設定指示

步驟 3:設定連線設定

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

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

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

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

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

注意事項

若要撤銷在 Microsoft Entra ID 中註冊之任何應用程式的存取權,請參閱有關 移除已註冊應用程式的 Azure 檔。

線上設定

若要將Microsoft SQL Server 連接器連接到數據源,您必須設定您要編目的資料庫伺服器和內部部署代理程式。 然後,您可以使用必要的驗證方法連線到資料庫。

注意事項

  • 您的資料庫必須執行 SQL Server 2008 版或更新版本,Microsoft SQL Server 連接器才能連線。
  • Azure SQL 連接器只允許從與 Microsoft 365 相同的 使用者中的 Azure SQL 實例擷取。 不支援跨租用戶數據流。

針對 Azure SQL 連接器,您只需要指定要連線的伺服器名稱或 IP 位址。 Azure SQL 連接器僅支援 Microsoft Entra ID OpenID Connect (OIDC) 驗證來連線到資料庫。

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

區域 M365 企業版 M365 Government
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

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

步驟 3a:需要完整編目 ()

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

提示

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

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

選 (選 (選用) 和 ACL 資料行的數據行)

此範例示範五個數據行的選取範圍,這些數據行會保存搜尋的數據: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 的範例數據。

支援的數據類型

下表摘要說明 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,以及指定分隔符來分割字串,即可完成此作業。

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

浮浮浮水印 (必要)

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

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

  • 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 個數據列。

略過虛刪除的數據列 (選擇性)

若要排除資料庫中虛刪除的數據列不編製索引,請指定虛刪除數據行名稱和值,指出數據列已刪除。

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

完整編目:管理搜尋許可權

取 [管理許可權] 以選擇指定存取控制機制的各種存取控制 (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.'

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

步驟 3b:累加編目 (選擇性)

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

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

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

步驟 4:指派屬性標籤

請遵循一般 設定指示

步驟 5:管理架構

請遵循一般 設定指示

步驟 6:管理搜尋許可權

您可以選擇使用 完整搜耙畫面中指定的 ACL ,也可以覆寫這些 ACL,讓每個人都能看到您的內容。

步驟 7:選擇重新整理設定

請遵循一般 設定指示

步驟 8:檢閱連線

請遵循一般 設定指示

限制

SQL 連接器在預覽版本中有下列限制:

  • Microsoft SQL Server 連接器:內部部署資料庫必須執行 SQL Server 2008 版或更新版本。
  • 裝載 Azure SQL 資料庫) (Microsoft 365 訂用帳戶和 Azure 訂用帳戶必須位於相同的 Microsoft Entra ID 內。
  • ACL 僅支援使用使用者主體名稱 (UPN) 、Microsoft Entra ID 或 Active Directory Security。
  • 不支援在資料庫數據行內編製豐富內容的索引。 這類內容的範例包括 HTML、JSON、XML、Blob,以及作為資料庫數據行內連結存在的檔剖析。

疑難排解

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

如果您有任何其他問題或想要提供意見反應,請寫 aka.ms/TalkToGraphConnectors 給我們。