conectores Azure SQL y Microsoft SQL Server Microsoft Graph

El conector de Microsoft SQL Server o Azure SQL Microsoft Graph permite a su organización detectar e indexar datos de una base de datos de SQL Server local o de una base de datos hospedada en la instancia de Azure SQL en la nube. El conector indexa el contenido especificado en Microsoft Search. 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.

Nota:

Lea el artículo Configuración del conector de Microsoft Graph para conocer las instrucciones generales de configuración de los conectores de Graph.

Este artículo está destinado a cualquier persona que configure, ejecute y supervise un Azure SQL o un conector de Microsoft SQL Server. Complementa el proceso de instalación general y muestra instrucciones que se aplican solo a los conectores de Azure SQL y Microsoft SQL Server. En este artículo también se incluye información sobre las limitaciones de ambos conectores.

Antes de empezar

Instale el agente del conector de Microsoft Graph (necesario solo para el conector de Microsoft SQL Server local)

Para acceder a los datos locales de terceros, debe instalar y configurar el agente del conector. Consulte Instalación del agente del conector de Microsoft Graph para obtener más información.

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. Consulte la documentación sobre la administración de directivas de inicio de sesión para comprobar los derechos de inicio de sesión.

Paso 1: Agregar un conector en el Centro de administración de Microsoft 365

Siga las instrucciones generales de configuración.

Paso 2: Asignar un nombre a la conexión

Siga las instrucciones generales de configuración.

Paso 3: Configurar las opciones de conexión

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

Para Azure SQL conector, debe registrar una aplicación en Microsoft Entra id. para permitir que la aplicación Microsoft Search acceda 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 secreto de cliente solo se mostrará 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.

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

  • Inicie sesión en la base de datos de Azure SQL
  • Abrir una nueva ventana de consulta
  • Cree un nuevo usuario ejecutando el comando "CREATE USER [app name] FROM EXTERNAL PROVIDER"
  • Para agregar usuario al rol, ejecute el comando 'exec sp_addrolemember 'db_datareader', [app name]' o 'ALTER ROLE db_datareader ADD MEMBER [app name]'

Nota:

Para revocar el acceso a cualquier aplicación registrada en Microsoft Entra identificador, consulte la documentación de Azure sobre cómo quitar una aplicación registrada.

Configuración de conexión

Para conectar el conector de Microsoft SQL Server a un origen de datos, debe configurar el servidor de base de datos que desea rastrear y el agente local. A continuación, puede conectarse a la base de datos con el método de autenticación necesario.

Nota:

  • La base de datos debe ejecutarse SQL Server versión 2008 o posterior para que el conector de Microsoft SQL Server pueda conectarse.
  • El conector de Azure SQL solo permite la ingesta desde una instancia de Azure SQL en el mismo inquilino que Microsoft 365. No se admite el flujo de datos entre inquilinos.

Para el conector de Azure SQL, solo debe especificar el nombre del servidor o la dirección IP a la que desea conectarse. Azure SQL conector solo admite Microsoft Entra autenticación de Id. OpenID Connect (OIDC) para conectarse a la base de datos.

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 M365 Enterprise Gobierno de M365
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

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 (es decir, propiedades de origen), incluidas las combinaciones SQL que se deben realizar para obtener todas las columnas. Para restringir el acceso a los resultados de búsqueda, debe especificar listas de Access Control (ACL) en consultas SQL al configurar el conector.

Paso 3a: Rastreo completo (obligatorio)

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 donde desea seleccionar las opciones Consulta, Búsqueda o Recuperar. También puede especificar columnas de ACL para restringir el acceso de 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.

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

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 o Recuperar.

Seleccione columnas de datos como se muestra en esta consulta de ejemplo: SELECT OrderId, OrderTitle, OrderDesc, AllowedUsers, AllowedGroups, DeniedUsers, DeniedGroups, CreatedDateTime, IsDeleted

Tenga en cuenta que 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, la 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 al 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.

Tipos de datos admitidos

En la tabla siguiente 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 Poco booleano
Numérico aproximado float
Real
double
Cadena de caracteres Char
Varchar
text
string
Cadenas de caracteres Unicode Nchar
Nvarchar
Ntext
string
Colección de cadenas Char
Varchar
text
stringcollection*
Otros tipos de datos Uniqueidentifier string

*Para indexar una columna como StringCollection, debe convertir una cadena en un 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.

Marca de agua (obligatorio)

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. Mediante el uso del 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.

Omitir filas eliminadas temporalmente (opcional)

Para excluir que las filas eliminadas temporalmente en la base de datos no se indexe, 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:

Rastreo completo: Administración de permisos de búsqueda

Seleccione Administrar permisos para elegir 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.

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 .

Los siguientes tipos de identificador se admiten para usar 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 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.

Paso 3b: Rastreo incremental (opcional)

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 o Recuperar. 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.

Paso 4: Asignar etiquetas de propiedad

Siga las instrucciones generales de configuración.

Paso 5: Administrar esquema

Siga las instrucciones generales de configuración.

Paso 6: Administrar permisos de búsqueda

Puede optar por usar las ACL especificadas en la pantalla de rastreo completa o puede invalidarlas para que el contenido sea visible para todos.

Paso 7: Elegir la configuración de actualización

Siga las instrucciones generales de configuración.

Paso 8: Revisión de la conexión

Siga las instrucciones generales de configuración.

Solución de problemas

A continuación se muestra un error común observado al configurar el conector y su posible motivo.

Paso de configuración Mensaje de error Motivos posibles
Rastreo completo Error from database server: A transport level error has occurred when receiving results from the server. Este error se produce debido a problemas de red. Se recomienda comprobar los registros de red mediante el monitor de red de Microsoft y ponerse en contacto con el servicio de atención al cliente de Microsoft.
Rastreo completo Column column_name returned from full crawl SQL query contains non-alphanumeric character No se permiten caracteres no alfanuméricos (como caracteres de subrayado) en los nombres de columna de la cláusula SELECT. Use alias para cambiar el nombre de las columnas y quitar caracteres no alfanuméricos (ejemplo: SELECT column_name AS columnName).

Limitaciones

Los conectores SQL tienen estas limitaciones en la versión preliminar:

  • Conector de Microsoft SQL Server: la base de datos local debe ejecutarse SQL Server versión 2008 o posterior.
  • La suscripción de Microsoft 365 y la suscripción de Azure (que hospedan Azure SQL base de datos) deben estar dentro del mismo identificador de Microsoft Entra.
  • Las ACL solo se admiten mediante un nombre principal de usuario (UPN), un identificador de Microsoft Entra o una 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.