Condividi tramite


connettori Azure SQL e Microsoft SQL Server Microsoft Graph

Il connettore Microsoft SQL Server o Azure SQL Microsoft Graph consente all'organizzazione di individuare e indicizzare i dati da un database SQL Server locale o da un database ospitato nell'istanza di Azure SQL nel cloud. Il connettore indicizza il contenuto specificato in Microsoft Search. Per mantenere aggiornato l'indice con i dati di origine, supporta ricerche per indicizzazione periodiche complete e incrementali. Con questi connettori SQL, è anche possibile limitare l'accesso ai risultati della ricerca per determinati utenti.

Nota

Leggere l'articolo Configurare il connettore Microsoft Graph per comprendere le istruzioni generali di configurazione dei connettori Graph.

Questo articolo è destinato a tutti gli utenti che configurano, eseguono e monitorano un Azure SQL o un connettore di Microsoft SQL Server. Integra il processo di installazione generale e mostra le istruzioni valide solo per i connettori Azure SQL e Microsoft SQL Server. Questo articolo include anche informazioni sulle limitazioni per entrambi i connettori.

Nozioni preliminari

Installare l'agente connettore Microsoft Graph (obbligatorio solo per il connettore Microsoft SQL Server locale)

Per accedere ai dati di terze parti locali, è necessario installare e configurare l'agente del connettore. Per altre informazioni, vedere Installare l'agente connettore Microsoft Graph .

Nota

Se si usa autenticazione di Windows durante la configurazione del connettore microsoft SQL Server, l'utente con cui si sta tentando di accedere deve disporre di diritti di accesso interattivi al computer in cui è installato l'agente connettore. Per controllare i diritti di accesso, vedere la documentazione sulla gestione dei criteri di accesso.

Passaggio 1: Aggiungere un connettore nel interfaccia di amministrazione di Microsoft 365

Seguire le istruzioni di configurazione generali.

Passaggio 2: Assegnare un nome alla connessione

Seguire le istruzioni di configurazione generali.

Passaggio 3: Configurare le impostazioni di connessione

Registrare un'app (solo per Azure SQL connettore)

Per Azure SQL connettore, è necessario registrare un'app in Microsoft Entra ID per consentire all'app Microsoft Search di accedere ai dati per l'indicizzazione. Per altre informazioni sulla registrazione di un'app, vedere la documentazione di Microsoft Graph su come registrare un'app.

Dopo aver completato la registrazione dell'app e aver preso nota del nome dell'app, dell'ID dell'applicazione (client) e dell'ID tenant, è necessario generare un nuovo segreto client. Il segreto client verrà visualizzato una sola volta. Tenere presente & archiviare il segreto client in modo sicuro. Usare l'ID client e il segreto client durante la configurazione di una nuova connessione in Microsoft Search.

Per aggiungere l'app registrata al database Azure SQL, è necessario:

  • Accedere al database di Azure SQL
  • Aprire una nuova finestra di query
  • Creare un nuovo utente eseguendo il comando 'CREATE USER [nome app] FROM EXTERNAL PROVIDER'
  • Aggiungere l'utente al ruolo eseguendo il comando 'exec sp_addrolemember 'db_datareader', [nome app]' o 'ALTER ROLE db_datareader ADD MEMBER [nome app]'

Nota

Per revocare l'accesso a qualsiasi app registrata in Microsoft Entra ID, vedere la documentazione di Azure sulla rimozione di un'app registrata.

Impostazioni di connessione

Per connettere il connettore microsoft SQL Server a un'origine dati, è necessario configurare il server di database per cui si vuole eseguire la ricerca per indicizzazione e l'agente locale. È quindi possibile connettersi al database con il metodo di autenticazione richiesto.

Nota

  • Il database deve essere eseguito SQL Server versione 2008 o successiva per consentire la connessione del connettore microsoft SQL Server.
  • Il connettore Azure SQL consente l'inserimento solo da un'istanza di Azure SQL nello stesso tenant di Microsoft 365. Il flusso di dati tra tenant non è supportato.

Per il connettore Azure SQL, è sufficiente specificare il nome del server o l'indirizzo IP a cui connettersi. Azure SQL connettore supporta solo Microsoft Entra ID autenticazione OIDC (OpenID Connect) per connettersi al database.

Per una maggiore sicurezza, è possibile configurare le regole del firewall IP per il server o il database Azure SQL. Per altre informazioni sulla configurazione delle regole del firewall IP, vedere la documentazione sulle regole del firewall IP. Aggiungere gli intervalli IP client seguenti nelle impostazioni del firewall.

Area geografica M365 Enterprise 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 ND
APC 52.139.188.212/30, 20.43.146.44/30 ND

Per eseguire ricerche nel contenuto del database, è necessario specificare query SQL quando si configura il connettore. Queste query SQL devono denominare tutte le colonne di database che si desidera indicizzare, ovvero le proprietà di origine, inclusi i join SQL che devono essere eseguiti per ottenere tutte le colonne. Per limitare l'accesso ai risultati della ricerca, è necessario specificare Controllo di accesso Elenchi (ACL) nelle query SQL quando si configura il connettore.

Passaggio 3a: Ricerca per indicizzazione completa (obbligatorio)

In questo passaggio viene configurata la query SQL che esegue una ricerca per indicizzazione completa del database. La ricerca per indicizzazione completa seleziona tutte le colonne o le proprietà in cui si desidera selezionare le opzioni Query, Search o Retrieve. È anche possibile specificare colonne ACL per limitare l'accesso dei risultati della ricerca a utenti o gruppi specifici.

Consiglio

Per ottenere tutte le colonne necessarie, è possibile unire più tabelle.

Script che mostra OrderTable e AclTable con proprietà di esempio.

Selezionare colonne di dati (obbligatorio) e colonne ACL (facoltativo)

Nell'esempio viene illustrata una selezione di cinque colonne di dati che contengono i dati per la ricerca: OrderId, OrderTitle, OrderDesc, CreatedDateTime e IsDeleted. Per impostare le autorizzazioni di visualizzazione per ogni riga di dati, è possibile selezionare facoltativamente queste colonne ACL: AllowedUsers, AllowedGroups, DeniedUsers e DeniedGroups. Tutte queste colonne di dati hanno anche le opzioni Query, Search o Retrieve.

Selezionare le colonne di dati come illustrato in questa query di esempio: SELECT OrderId, OrderTitle, OrderDesc, AllowedUsers, AllowedGroups, DeniedUsers, DeniedGroups, CreatedDateTime, IsDeleted

Si noti che i connettori SQL non consentono nomi di colonna con caratteri non alfanumerici nella clausola SELECT. Rimuovere eventuali caratteri non alfanumerici dai nomi di colonna usando un alias. Esempio : SELECT column_name AS columnName

Per gestire l'accesso ai risultati della ricerca, è possibile specificare una o più colonne ACL nella query. Il connettore SQL consente di controllare l'accesso a livello di record. È possibile scegliere di avere lo stesso controllo di accesso per tutti i record in una tabella. Se le informazioni ACL vengono archiviate in una tabella separata, potrebbe essere necessario eseguire un join con tali tabelle nella query.

L'uso di ognuna delle colonne ACL nella query precedente è descritto di seguito. L'elenco seguente illustra i quattro meccanismi di controllo di accesso.

  • AllowedUsers: questa colonna specifica l'elenco di ID utente che possono accedere ai risultati della ricerca. Nell'esempio seguente, elenco di utenti: john@contoso.com, keith@contoso.come lisa@contoso.com avrebbe accesso solo a un record con OrderId = 12.
  • AllowedGroups: questa colonna specifica il gruppo di utenti che potranno accedere ai risultati della ricerca. Nell'esempio seguente, il gruppo sales-team@contoso.com avrebbe accesso al record solo con OrderId = 12.
  • DeniedUsers: questa colonna specifica l'elenco di utenti che non hanno accesso ai risultati della ricerca. Nell'esempio seguente gli utenti john@contoso.com e keith@contoso.com non hanno accesso al record con OrderId = 13, mentre tutti gli altri utenti hanno accesso a questo record.
  • DeniedGroups: questa colonna specifica il gruppo di utenti che non hanno accesso ai risultati della ricerca. Nell'esempio seguente i gruppi engg-team@contoso.com e pm-team@contoso.com non hanno accesso al record con OrderId = 15, mentre tutti gli altri utenti hanno accesso a questo record.

Dati di esempio che mostrano OrderTable e AclTable con proprietà di esempio.

Tipi di dati supportati

La tabella seguente riepiloga i tipi di dati SQL supportati nei connettori MS SQL e Azure SQL. La tabella riepiloga anche il tipo di dati di indicizzazione per il tipo di dati SQL supportato. Per altre informazioni sui connettori di Microsoft Graph supportati dai tipi di dati per l'indicizzazione, vedere la documentazione sui tipi di risorse di proprietà.

Categoria Tipo di dati di origine Tipo di dati di indicizzazione
Data e ora data
datetime
datetime2
smalldatetime
datetime
Numerico esatto bigint
int
smallint
tinyint
int64
Numerico esatto pezzo booleano
Numerico approssimativo galleggiare
real
doppio
Stringa di caratteri Char
varchar
Testo
stringa
Stringhe di caratteri Unicode nchar
nvarchar
ntext
stringa
Raccolta di stringhe Char
varchar
Testo
stringcollection*
Altri tipi di dati uniqueidentifier stringa

*Per indicizzare una colonna come StringCollection, è necessario eseguire il cast di una stringa al tipo di raccolta di stringhe. A tale scopo, fare clic sul collegamento "Modifica tipi di dati" in Impostazioni di ricerca per indicizzazione complete e selezionare le colonne appropriate come StringCollection, oltre a specificare un delimitatore per dividere la stringa.

Per qualsiasi altro tipo di dati attualmente non supportato direttamente, è necessario eseguire il cast esplicito della colonna a un tipo di dati supportato.

Filigrana (obbligatorio)

Per evitare l'overload del database, il connettore crea un batch e riprende le query con ricerca per indicizzazione completa con una colonna filigrana a ricerca per indicizzazione completa. Usando il valore della colonna filigrana, ogni batch successivo viene recuperato e l'esecuzione di query viene ripresa dall'ultimo checkpoint. Essenzialmente questo meccanismo controlla l'aggiornamento dei dati per le ricerche per indicizzazione complete.

Creare frammenti di query per le filigrane, come illustrato negli esempi seguenti:

  • WHERE (CreatedDateTime > @watermark). Citare il nome della colonna filigrana con la parola chiave @watermarkriservata . Se l'ordinamento della colonna filigrana è crescente, utilizzare >; in caso contrario, utilizzare <.
  • ORDER BY CreatedDateTime ASC. Ordinare la colonna filigrana in ordine crescente o decrescente.

Nella configurazione illustrata nell'immagine CreatedDateTime seguente è la colonna filigrana selezionata. Per recuperare il primo batch di righe, specificare il tipo di dati della colonna filigrana. In questo caso, il tipo di dati è DateTime.

Configurazione della colonna filigrana.

La prima query recupera il primo numero N di righe usando: "CreatedDateTime > 1 gennaio 1753 00:00:00" (valore minimo del tipo di dati DateTime). Dopo il recupero del primo batch, il valore più alto di CreatedDateTime restituito nel batch viene salvato come checkpoint se le righe vengono ordinate in ordine crescente. Un esempio è il 1° marzo 2019 03:00:00. Il batch successivo di N righe viene quindi recuperato usando "CreatedDateTime > 1 marzo 2019 03:00:00" nella query.

Ignorare le righe eliminate temporaneamente (facoltativo)

Per escludere l'indicizzazione delle righe eliminate temporaneamente nel database, specificare il nome e il valore della colonna di eliminazione temporanea che indicano che la riga è stata eliminata.

Impostazioni di eliminazione temporanea:

Ricerca per indicizzazione completa: gestire le autorizzazioni di ricerca

Selezionare Gestisci autorizzazioni per scegliere le varie colonne di controllo di accesso (ACL) che specificano il meccanismo di controllo di accesso. Selezionare il nome di colonna specificato nella query SQL per indicizzazione completa.

Ogni colonna ACL deve essere una colonna multivalore. Questi valori ID multipli possono essere separati da separatori, ad esempio punto e virgola (;), virgola (,) e così via. È necessario specificare questo separatore nel campo separatore di valori .

I tipi di ID seguenti sono supportati per l'uso come ACL:

  • Nome entità utente (UPN): un nome dell'entità utente (UPN) è il nome di un utente di sistema in formato indirizzo di posta elettronica. Un UPN (ad esempio: john.doe@domain.com) è costituito dal nome utente (nome di accesso), dal separatore (simbolo @) e dal nome di dominio (suffisso UPN).
  • Microsoft Entra ID: in Microsoft Entra ID, ogni utente o gruppo ha un ID oggetto simile a "e0d3ad3d-0000-1111-2222-3c5f5c52ab9b".
  • ID di sicurezza di Active Directory (AD): in un'installazione di Active Directory locale, ogni utente e gruppo ha un identificatore di sicurezza univoco non modificabile simile a "S-1-5-21-3878594291-2115959936-132693609-65242".

Cercare le impostazioni di autorizzazione per configurare gli elenchi di controllo di accesso.

Passaggio 3b: Ricerca per indicizzazione incrementale (facoltativo)

In questo passaggio facoltativo specificare una query SQL per eseguire una ricerca per indicizzazione incrementale del database. Con questa query, il connettore SQL determina eventuali modifiche ai dati dopo l'ultima ricerca per indicizzazione incrementale. Come nella ricerca per indicizzazione completa, selezionare tutte le colonne in cui si desidera selezionare le opzioni Query, Search o Retrieve. Specificare lo stesso set di colonne ACL specificato nella query di ricerca per indicizzazione completa.

I componenti nell'immagine seguente sono simili ai componenti di ricerca per indicizzazione completi con un'eccezione. In questo caso, "ModifiedDateTime" è la colonna di filigrana selezionata. Esaminare i passaggi completi della ricerca per indicizzazione per informazioni su come scrivere la query di ricerca per indicizzazione incrementale e vedere l'immagine seguente come esempio.

Script di ricerca per indicizzazione incrementale che mostra le proprietà OrderTable, AclTable e di esempio che possono essere usate.

Passaggio 4: Assegnare etichette di proprietà

Seguire le istruzioni di configurazione generali.

Passaggio 5: Gestire lo schema

Seguire le istruzioni di configurazione generali.

Passaggio 6: Gestire le autorizzazioni di ricerca

È possibile scegliere di usare gli ACL specificati nella schermata di ricerca per indicizzazione completa oppure eseguirne l'override per rendere visibile il contenuto a tutti.

Passaggio 7: Scegliere le impostazioni di aggiornamento

Seguire le istruzioni di configurazione generali.

Passaggio 8: Esaminare la connessione

Seguire le istruzioni di configurazione generali.

Limitazioni

I connettori SQL presentano queste limitazioni nella versione di anteprima:

  • Connettore Microsoft SQL Server: il database locale deve essere eseguito SQL Server versione 2008 o successiva.
  • La sottoscrizione di Microsoft 365 e la sottoscrizione di Azure (che ospitano Azure SQL database) devono trovarsi all'interno dello stesso Microsoft Entra ID.
  • Gli elenchi di controllo di accesso sono supportati solo tramite un nome dell'entità utente (UPN), Microsoft Entra ID o sicurezza di Active Directory.
  • L'indicizzazione di contenuto avanzato all'interno di colonne di database non è supportata. Esempi di tali contenuti sono HTML, JSON, XML, BLOB e analisi di documenti esistenti come collegamenti all'interno delle colonne del database.

Risoluzione dei problemi

Dopo aver pubblicato la connessione, è possibile esaminare lo stato nella scheda Origini datinell'interfaccia di amministrazione. Per informazioni su come eseguire aggiornamenti ed eliminazioni, vedere Gestire il connettore. È possibile trovare i passaggi per la risoluzione dei problemi più comuni qui.

In caso di altri problemi o se si vuole fornire commenti e suggerimenti, contattare Microsoft Graph | Appoggiare