Conector de Microsoft Graph de Oracle SQL

El conector de Oracle SQL Graph permite a su organización detectar e indexar datos de una base de datos de Oracle local. 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 el conector sql de Oracle, también puede restringir el acceso a los resultados de búsqueda para determinados usuarios.

Nota:

Lea el artículo Configuración de conectores de Microsoft Graph en el artículo Centro de administración de Microsoft 365 para conocer las instrucciones generales de configuración de los conectores de Microsoft Graph.

Este artículo está destinado a cualquier persona que configure, ejecute y supervise un conector de Oracle SQL Graph. Complementa el proceso de instalación general y muestra instrucciones que solo se aplican al conector de Oracle SQL Graph. En este artículo también se incluye información sobre la solución de problemas y las limitaciones.

Antes de empezar

Instalación del agente del conector

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

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

Incorporación del conector de Oracle SQL

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

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

Para el conector sql de Oracle, debe especificar el nombre de host, el puerto y el servicio (base de datos) junto con el método de autenticación, el nombre de usuario y la contraseña preferidos.

Si El nombre del servicio no está disponible y se conecta mediante SID, el nombre del servicio se puede derivar mediante uno de los siguientes comandos (que se ejecutarán como administrador del sistema):

  • seleccione SERVICE_NAME de gv$session donde se encuentra el sid (seleccione sid en v$MYSTAT);
  • seleccione sys_context('userenv','service_name') de dual;

Nota:

La base de datos debe ejecutar la versión 11g o posterior de la base de datos de Oracle para que el conector pueda conectarse. El conector admite la base de datos de Oracle hospedada en plataformas de máquinas virtuales Windows, Linux y Azure.

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 la 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. Para todas estas columnas de datos, puede seleccionar 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

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 opción especifica la lista de identificadores de usuario que podrán 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 opción 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 opción 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 opción 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 admitidos por el conector SQL de Oracle. 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
Tipo de datos de número NUMBER(p,0) int64 (para p <= 18)
double (para p > 18)
Tipo de datos de número de punto flotante NUMBER(p,s)
FLOAT(p)
double
Tipo de datos de fecha FECHA
TIMESTAMP
TIMESTAMP(n)
datetime
Tipo de datos de carácter CHAR(n)
VARCHAR
VARCHAR2
LARGO
CLOB
NCLOB
string
Tipo de datos de caracteres Unicode NCHAR
NVARCHAR
string
Tipo de datos RowID IDENTIFICADOR
UROWID
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, se trata de un mecanismo para controlar 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 . Solo puede ordenar la columna de marca de agua en orden ascendente.
  • ORDER BY CreatedDateTime ASC. Ordenar en la columna de marca de agua en orden ascendente.

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 entre 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

El conector sql de Oracle admite programaciones de actualización para rastreos completos e incrementales. Se recomienda establecer ambos.

Una programación de rastreo completa busca las filas eliminadas que se sincronizaron anteriormente con el índice de Microsoft Search y las filas que se han movido fuera del filtro de sincronización. La primera vez que se conecta a la base de datos, se ejecuta un rastreo completo para sincronizar todas las filas recuperadas de la consulta de rastreo completa. Para sincronizar nuevas filas y realizar actualizaciones, debe programar rastreos incrementales.

Paso 8: Revisión de la conexión

Siga las instrucciones generales de configuración.

Solución de problemas

Debajo se muestra una lista de errores comunes observados al configurar el conector y sus posibles motivos.

Paso de configuración Mensaje de error Motivos posibles
Configuración de la base de datos Error del servidor de base de datos: se agotó el tiempo de espera de la solicitud de conexión Nombre de host no válido
No se puede acceder al host
Configuración de la base de datos Error del servidor de base de datos: ORA-12541: TNS: Sin agente de escucha Puerto no válido
Configuración de la base de datos Error del servidor de base de datos: ORA-12514: TNS: el agente de escucha no conoce actualmente el servicio solicitado en el descriptor del conector. Nombre de servicio (base de datos) no válido
Configuración de la base de datos Error del servidor de base de datos: error de inicio de sesión del usuario ""user. Nombre de usuario o contraseña no válidos
Rastreo completo La columna column_name devuelta de la consulta SQL de rastreo completo contiene caracteres no alfanuméricos 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

El conector sql de Oracle tiene estas limitaciones en la versión preliminar:

  • La base de datos local debe ejecutar Oracle Database versión 11g o posterior.
  • 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.