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 Azure Active Directory 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 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"
- Agregue el usuario al rol ejecutando 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 Azure Active Directory, 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 la autenticación de Open ID Connect (OIDC) de Azure Active Directory 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.
Propina
Para obtener todas las columnas que necesita, puede combinar varias tablas.
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.
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 |
Otros tipos de datos | Uniqueidentifier | string |
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@watermark
reservada . 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
.
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.
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).
- Identificador de Azure Active Directory (AAD): en Azure AD, 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 se parece a "S-1-5-21-3878594291-2115959936-132693609-65242".
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 siguiente imagen 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.
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 de la misma instancia de Azure Active Directory.
- Las ACL solo se admiten mediante un nombre principal de usuario (UPN), Azure Active Directory (Azure AD) o Active Directory Security.
- 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.