Compartir a través de


conectores Azure SQL y Microsoft SQL Server Microsoft Graph

Los conectores de Microsoft SQL Server o Azure SQL Microsoft Graph permiten a su organización detectar e indexar datos de una base de datos de SQL Server local o una base de datos hospedada en la instancia de Azure SQL en la nube. El conector indexa el contenido especificado en Microsoft Search y Microsoft 365 Copilot. Para mantener actualizado el índice con los datos de origen, admite rastreos periódicos completos e incrementales. Con estos conectores SQL, también puede restringir el acceso a los resultados de búsqueda para determinados usuarios.

Este artículo está destinado a administradores de Microsoft 365 o a cualquier persona que configure, ejecute y supervise un Azure SQL o un conector de Microsoft SQL Server Microsoft Graph.

Capacidades

  • Indexe los registros de su servidor MS SQL Server o Azure SQL base de datos mediante una consulta SQL.
  • Especifique permisos de acceso para cada registro con la lista de usuarios o grupos agregados en la consulta SQL.
  • Permitir que los usuarios finales hagan preguntas relacionadas con los registros indexados en Copilot.
  • Use la búsqueda semántica en Copilot para permitir a los usuarios encontrar contenido relevante basado en palabras clave, preferencias personales y conexiones sociales.

Limitaciones

  • Conector de Microsoft SQL Server: la base de datos local debe ejecutarse SQL Server versión 2008 o posterior.
  • conector de Azure SQL: la suscripción de Microsoft 365 y la suscripción de Azure (hospedaje Azure SQL base de datos) deben estar dentro del mismo Microsoft Entra ID. No se admite el flujo de datos entre inquilinos.
  • Para admitir una velocidad de rastreo alta y un mejor rendimiento, el conector se ha creado para admitir solo cargas de trabajo OLTP (procesamiento de transacciones en línea). Cargas de trabajo OLAP (procesamiento analítico en línea) que no ejecutan la consulta SQL proporcionada en un tiempo de espera de 40 segundos y no se admiten.
  • Las ACL solo se admiten mediante un nombre principal de usuario (UPN), Microsoft Entra ID o seguridad de Active Directory.
  • No se admite la indexación de contenido enriquecido dentro de columnas de base de datos. Algunos ejemplos de este contenido son HTML, JSON, XML, blobs y análisis de documentos que existen como vínculos dentro de las columnas de base de datos.

Requisitos previos

  • Debe ser el administrador de búsqueda del inquilino de Microsoft 365 de su organización.
  • Instale el agente del conector de Microsoft Graph (solo aplicable para el conector MS SQL): para acceder a su SQL Server de Microsoft, debe instalar y configurar el agente del conector. Consulte Instalación del agente del conector de Microsoft Graph para obtener más información.
  • Cuenta de servicio: para conectarse a la base de datos SQL y permitir que Microsoft Graph Connector actualice registros con regularidad, necesita una cuenta de servicio con permisos de lectura concedidos a la cuenta de servicio.

Nota:

Si usa autenticación de Windows al configurar el conector de Microsoft SQL Server, el usuario con el que intenta iniciar sesión debe tener derechos de inicio de sesión interactivos en la máquina donde está instalado el agente del conector. Para obtener más información, consulte Administración de directivas de inicio de sesión.

Introducción al programa de instalación

1. Nombre para mostrar

Se usa un nombre para mostrar para identificar cada cita en Copilot, lo que ayuda a los usuarios a reconocer fácilmente el archivo o elemento asociado. El nombre para mostrar también significa contenido de confianza. El nombre para mostrar también se usa como filtro de origen de contenido. Hay un valor predeterminado para este campo, pero puede personalizarlo para un nombre que los usuarios de su organización reconozcan.

servidor de 2. SQL

Para conectarse a los datos SQL, necesita la dirección y el nombre de la base de datos de SQL Server.

3. Tipo de autenticación

Azure SQL conector solo admite Microsoft Entra ID autenticación de OpenID Connect (OIDC) para conectarse a la base de datos.

Registro de una aplicación (solo para Azure SQL conector de Microsoft Graph)

Para Azure SQL conector, debe registrar una aplicación en Microsoft Entra ID para permitir que la aplicación Microsoft Search y Microsoft 365 Copilot accedan a los datos para la indexación. Para más información sobre el registro de una aplicación, consulte la documentación de Microsoft Graph sobre cómo registrar una aplicación.

Después de completar el registro de la aplicación y tomar nota del nombre de la aplicación, el identificador de aplicación (cliente) y el identificador de inquilino, debe generar un nuevo secreto de cliente. El cliente solo se muestra una vez. Recuerde tener en cuenta & almacenar el secreto de cliente de forma segura. Use el identificador de cliente y el secreto de cliente al configurar una nueva conexión en Microsoft Search y Microsoft 365 Copilot.

Para agregar la aplicación registrada a la base de datos de Azure SQL, debe:

  1. Inicie sesión en la base de datos de Azure SQL.
  2. Abra una nueva ventana de consulta.
  3. Cree un nuevo usuario ejecutando el comando "CREATE USER [app name] FROM EXTERNAL PROVIDER".
  4. Agregue el usuario al rol ejecutando el comando 'exec sp_addrolemember 'db_datareader', [nombre de aplicación]" o "ALTER ROLE db_datareader ADD MEMBER [nombre de aplicación]".

Para obtener más información sobre cómo revocar el acceso a cualquier aplicación registrada en Microsoft Entra ID, consulte Eliminación de una aplicación registrada.

Configuración del firewall (solo para Azure SQL conector de Microsoft Graph)

Para mayor seguridad, puede configurar reglas de firewall de IP para su Azure SQL Server o base de datos. Para más información sobre cómo configurar reglas de firewall de IP, consulte la documentación sobre las reglas de firewall de IP. Agregue los siguientes intervalos IP de cliente en la configuración del firewall.

Región Microsoft 365 Enterprise Microsoft 365 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

4. Lanzamiento a audiencia limitada

Implemente esta conexión en una base de usuarios limitada si desea validarla en Copilot y en otras superficies de búsqueda antes de expandir la implementación a una audiencia más amplia. Para más información sobre el lanzamiento limitado, haga clic aquí.

Contenido

Para buscar en el contenido de la base de datos, debe especificar consultas SQL al configurar el conector. Estas consultas SQL deben asignar un nombre a todas las columnas de base de datos que desea indexar (propiedades de origen). Esto incluye las combinaciones de SQL que se deben realizar para obtener todas las columnas. Para restringir el acceso a los resultados de búsqueda, debe especificar Access Control Listas (ACL) dentro de las consultas SQL al configurar el conector.

1. Rastreo completo (obligatorio)

a. Seleccionar columnas de datos (obligatorio) y acl (opcional)

[Haga clic para expandir] Selección de columnas de datos para la consulta de rastreo completa.

En este paso, configurará la consulta SQL que ejecuta un rastreo completo de la base de datos. El rastreo completo selecciona todas las columnas o propiedades que deben presentarse en Microsoft Copilot o buscar. También puede especificar columnas de ACL para restringir el acceso a los resultados de búsqueda a usuarios o grupos específicos.

Sugerencia

Para obtener todas las columnas que necesita, puede combinar varias tablas.

Script que muestra OrderTable y AclTable con propiedades de ejemplo.

En el ejemplo se muestra una selección de cinco columnas de datos que contienen los datos de la búsqueda: OrderId, OrderTitle, OrderDesc, CreatedDateTime e IsDeleted. Para establecer permisos de vista para cada fila de datos, opcionalmente puede seleccionar estas columnas de ACL: AllowedUsers, AllowedGroups, DeniedUsers y DeniedGroups. Todas estas columnas de datos también tienen las opciones Consulta, Búsqueda, Recuperar o Refinar.

Seleccione columnas de datos como se muestra en esta consulta de ejemplo: SELECT orderId, orderTitle, orderDesc, allowedUsers, allowedGroups, deniedUsers, deniedGroups, createdDateTime, isDeleted

Los conectores SQL no permiten nombres de columna con caracteres no alfanuméricos en la cláusula SELECT. Quite los caracteres no alfanuméricos de los nombres de columna mediante un alias. Ejemplo: SELECT column_name AS columnName

Para administrar el acceso a los resultados de búsqueda, puede especificar una o varias columnas de ACL en la consulta. El conector SQL permite controlar el acceso en cada nivel de registro. Puede elegir tener el mismo control de acceso para todos los registros de una tabla. Si la información de ACL se almacena en una tabla independiente, es posible que tenga que realizar una combinación con esas tablas en la consulta.

A continuación se describe el uso de cada una de las columnas de ACL de la consulta anterior. En la lista siguiente se explican los cuatro mecanismos de control de acceso.

  • AllowedUsers: esta columna especifica la lista de identificadores de usuario que pueden acceder a los resultados de la búsqueda. En el ejemplo siguiente, una lista de usuarios: john@contoso.com, keith@contoso.comy lisa@contoso.com solo tendría acceso a un registro con OrderId = 12.
  • AllowedGroups: esta columna especifica el grupo de usuarios que podrán acceder a los resultados de la búsqueda. En el ejemplo siguiente, el grupo sales-team@contoso.com solo tendría acceso al registro con OrderId = 12.
  • DeniedUsers: esta columna especifica la lista de usuarios que no tienen acceso a los resultados de la búsqueda. En el ejemplo siguiente, los usuarios john@contoso.com y keith@contoso.com no tienen acceso al registro con OrderId = 13, mientras que todos los demás tienen acceso a este registro.
  • DeniedGroups: esta columna especifica el grupo de usuarios que no tienen acceso a los resultados de la búsqueda. En el ejemplo siguiente, los grupos engg-team@contoso.com y pm-team@contoso.com no tienen acceso a un registro con OrderId = 15, mientras que todos los demás tienen acceso a este registro.

Datos de ejemplo que muestran OrderTable y AclTable con propiedades de ejemplo.

b. Tipos de datos admitidos

[Haga clic para expandir] Lista de tipos de datos admitidos.

En la tabla se resumen los tipos de datos SQL que se admiten en los conectores de MS SQL y Azure SQL. La tabla también resume el tipo de datos de indexación para el tipo de datos SQL admitido. Para más información sobre los tipos de datos admitidos por los conectores de Microsoft Graph para la indexación, consulte la documentación sobre los tipos de recursos de propiedad.

Categoría Tipo de datos de origen Tipo de datos de indexación
Fecha y hora date
datetime
datetime2
smalldatetime
datetime
Numérico exacto bigint
Entero
smallint
tinyint
int64
Numérico exacto bit booleano
Numérico aproximado float
real
double
Cadena de caracteres carbonizar
varchar
text
string
Cadenas de caracteres Unicode nchar
nvarchar
ntext
string
Colección string carbonizar
varchar
text
stringcollection*
Otros tipos de datos uniqueidentifier string

*Para indexar una columna como StringCollection, debe convertir una cadena en el tipo de colección de cadenas. Para ello, haga clic en el vínculo "Editar tipos de datos" en Configuración de rastreo completo y seleccione las columnas adecuadas como StringCollection junto con la especificación de un delimitador para dividir la cadena.

Para cualquier otro tipo de datos que no se admita directamente, la columna debe convertirse explícitamente a un tipo de datos admitido.

c. Marca de agua (obligatorio)

[Haga clic para expandir] Especificación de la columna de marca de agua en la consulta de rastreo completa

Para evitar sobrecargar la base de datos, el conector procesa por lotes y reanuda las consultas de rastreo completo con una columna de marca de agua de rastreo completo. Con el valor de la columna de marca de agua, se captura cada lote posterior y se reanuda la consulta desde el último punto de comprobación. Básicamente, este mecanismo controla la actualización de datos para rastreos completos.

Cree fragmentos de código de consulta para marcas de agua como se muestra en estos ejemplos:

  • WHERE (CreatedDateTime > @watermark). Cite el nombre de la columna de marca de agua con la palabra clave @watermarkreservada . Si el criterio de ordenación de la columna de marca de agua es ascendente, use >; en caso contrario, use <.
  • ORDER BY CreatedDateTime ASC. Ordene la columna de marca de agua en orden ascendente o descendente.

En la configuración que se muestra en la siguiente imagen, CreatedDateTime es la columna de marca de agua seleccionada. Para capturar el primer lote de filas, especifique el tipo de datos de la columna de marca de agua. En este caso, el tipo de datos es DateTime.

Configuración de columna de marca de agua.

La primera consulta captura el primer número N de filas mediante: "CreatedDateTime > 1 de enero de 1753 00:00:00" (valor mínimo del tipo de datos DateTime). Después de capturar el primer lote, el valor más alto de CreatedDateTime devuelto en el lote se guarda como punto de control si las filas se ordenan en orden ascendente. Un ejemplo es el 1 de marzo de 2019 03:00:00. A continuación, el siguiente lote de N filas se captura mediante "CreatedDateTime > 1 de marzo de 2019 03:00:00" en la consulta.

2. Administrar propiedades

El conector de SQL recoge todas las columnas especificadas en la consulta SQL de rastreo completo como propiedades de origen para la ingesta. En este paso, puede definir el esquema de búsqueda para el contenido. Esto implica definir las anotaciones de búsqueda, como buscar, recuperar, consultar y refinar las propiedades de origen seleccionadas. Esto también incluye la asignación de etiquetas semánticas y alias para mejorar la relevancia de la búsqueda. Para más información sobre el esquema de búsqueda, consulte la documentación sobre las directrices para "administrar propiedades".

3. Rastreo incremental (opcional)

a. Consulta de sincronización incremental

En este paso opcional, proporcione una consulta SQL para ejecutar un rastreo incremental de la base de datos. Con esta consulta, el conector SQL determina los cambios realizados en los datos desde el último rastreo incremental. Como en el rastreo completo, seleccione todas las columnas donde desee seleccionar las opciones Consulta, Búsqueda, Recuperar o Refinar. Especifique el mismo conjunto de columnas de ACL que especificó en la consulta de rastreo completa.

Los componentes de la imagen siguiente son similares a los componentes de rastreo completos con una excepción. En este caso, "ModifiedDateTime" es la columna de marca de agua seleccionada. Revise los pasos de rastreo completos para aprender a escribir la consulta de rastreo incremental y vea la siguiente imagen como ejemplo.

Script de rastreo incremental que muestra las propiedades OrderTable, AclTable y example que se pueden usar.

b. Instrucciones de eliminación temporal (opcional)

En un sistema de registros SQL, una eliminación temporal es una técnica en la que, en lugar de quitar físicamente un registro de una base de datos, se marca como "eliminado" estableciendo una marca o columna específica. Esto permite que el registro permanezca en la base de datos, pero se excluye lógicamente de la mayoría de las operaciones. Para eliminar filas eliminadas temporalmente en la base de datos durante el rastreo incremental, especifique el nombre y el valor de la columna de eliminación temporal que indica que se ha eliminado la fila.

Configuración de eliminación temporal:

Usuarios

Puede optar por usar solo las personas con acceso a este origen de datos para restringir el acceso a los usuarios o grupos seleccionados en la consulta de rastreo completa o puede invalidarlos para que el contenido sea visible para todos.

1. Asignar columnas que contengan información de permisos de acceso

Elija las distintas columnas de control de acceso (ACL) que especifican el mecanismo de control de acceso. Seleccione el nombre de columna que especificó en la consulta SQL de rastreo completo. Tenga en cuenta que "denegar" tiene prioridad sobre los permisos "allow".

Se espera que cada una de las columnas de ACL sea una columna con varios valores. Estos valores de varios identificadores se pueden separar mediante separadores como punto y coma (;), coma (,), etc. Debe especificar este separador en el campo separador de valores .

Se admiten los siguientes tipos de identificador para su uso como ACL:

  • Nombre principal de usuario (UPN): un nombre principal de usuario (UPN) es el nombre de un usuario del sistema en formato de dirección de correo electrónico. Un UPN (por ejemplo: john.doe@domain.com) consta del nombre de usuario (nombre de inicio de sesión), separador (símbolo @) y nombre de dominio (sufijo UPN).
  • Microsoft Entra ID: en Microsoft Entra ID, cada usuario o grupo tiene un identificador de objeto que tiene un aspecto similar a "e0d3ad3d-0000-1111-2222-3c5f5c52ab9b".
  • Identificador de seguridad de Active Directory (AD): en una configuración de AD local, todos los usuarios y grupos tienen un identificador de seguridad único e inmutable que tiene un aspecto similar al de "S-1-5-21-3878594291-2115959936-132693609-65242".

Configuración de permisos de búsqueda para configurar listas de control de acceso.

Sincronizar

El intervalo de actualización determina la frecuencia con la que se sincronizan los datos entre el origen de datos y el índice del conector de Graph.

Puede configurar rastreos completos e incrementales en función de las opciones de programación presentes aquí. De forma predeterminada, el rastreo incremental (si está configurado) se establece para cada 15 minutos y el rastreo completo se establece para cada día. Si es necesario, puede ajustar estas programaciones para que se ajusten a sus necesidades de actualización de datos.

En este momento, está listo para crear la conexión para Azure SQL o MS SQL. Puede hacer clic en el botón "Crear" para publicar los datos de conexión e índice de la base de datos.

Solución de problemas

Después de publicar la conexión, puede revisar el estado en la pestaña Orígenes de datos del Centro de administración. Para obtener información sobre cómo realizar actualizaciones y eliminaciones, consulte Administración del conector. Puede encontrar pasos de solución de problemas para los problemas más vistos aquí.

Si tiene problemas o quiere proporcionar comentarios, póngase en contacto con Microsoft Graph | Soporte técnico.