Mejores prácticas para utilizar Database Tools

En esta sección se describen los procedimientos y las prácticas que pueden ayudarle a utilizar Database Tools de forma más fácil y eficaz.

Temas:

Uso de compartimentos

Las conexiones de base de datos son una función útil al otorgar acceso a la base de datos a un usuario específico o a grupos de usuarios definidos. Para ayudar a aislar estas conexiones, utilice políticas para otorgar acceso a conexiones específicas basadas en el rol de un usuario, como se muestra en el siguiente ejemplo:

Para una instancia de Autonomous Data Warehouse utilizada para la generación de informes, cree una conexión de base de datos compartida denominada ReportingDataAccess. Asigne esta conexión a un conjunto específico de usuarios finales de un grupo denominado Data Scientists. Los usuarios de este grupo ahora tienen acceso a los detalles de la conexión a la base de datos, pero están limitados a utilizar solo esta conexión y los roles y privilegios heredados por el usuario que utiliza la conexión para acceder a la base de datos.

También puede crear una conexión de administrador al almacén de datos y asignar un conjunto diferente de usuarios a esa conexión con un grupo denominado DatabaseAdministrators. Mediante compartimentos y políticas, puede separar el acceso a estas conexiones de la siguiente manera:

Grupo Científicos de datos:

  1. Cree un compartimento denominado Reporting.
  2. Cree un grupo en este compartimento denominado DataScientists.
  3. Cree una conexión a base de datos en el compartimento Reporting denominado ReportingDataAccess.
  4. Cree una política que proporcione acceso a la conexión del compartimento Reporting al grupo DataScientists:
    • Allow group DataScientists to read database-tools-family in compartment Reporting
    • Allow group DataScientists to use database-tools-connections in compartment Reporting

Grupo Administradores de base de datos:

  1. Cree un compartimento denominado DBA.
  2. Cree un grupo en este compartimento denominado DatabaseAdministrators.
  3. Cree una conexión a base de datos denominada DatabaseAdmin en el compartimento DBA.
  4. Cree una política que otorgue acceso a la conexión del compartimento DBA a ese grupo:
    • Allow group DatabaseAdministrators to read database-tools-family in compartment DBA
    • Allow group DatabaseAdministrators to use database-tools-connections in compartment DBA

Estos grupos y conexiones a base de datos específicas del compartimento ayudan a aislar qué usuarios pueden acceder a qué bases de datos y determinar el acceso que tienen.

Uso de puntos finales privados

Al crear conexiones a base de datos a una instancia de Autonomous Database que utiliza un punto final privado, cree un grupo de seguridad de red para proporcionar acceso desde Database Tools a esa base de datos. Al crear el grupo de seguridad de red, se definen reglas de acceso específicas que limitan las IP o los bloques CIDR que se pueden utilizar, así como los puertos o rangos de puertos.

Para la hoja de trabajo de SQL

Para configurar el juego mínimo de reglas de grupo de seguridad de red necesarias para proporcionar acceso desde la hoja de trabajo de SQL de Database Tools en la consola de OCI:

  1. En la página Detalles del punto final privado, busque el campo IP de origen de conexión inversas en la sección Información de punto final privado. Existen dos direcciones IP.
  2. Edite el grupo de seguridad de red y agregue reglas para las dos direcciones IP, con acceso al puerto de destino 1522 mediante TCP/IP. Por ejemplo, con dos direcciones IP, 10.0.1.6 y 10.0.1.8, las dos reglas tienen los bloques CIDR 10.0.1.6/32 y 10.0.1.8/32 con acceso al puerto de destino 1522, mediante TCP/IP.

Para SQLcl y bastiones

Para configurar el conjunto mínimo de reglas de grupo de seguridad de red necesarias para proporcionar acceso desde SQLcl de Database Tools mediante un bastión en la consola de OCI:

  1. En la página Detalles de bastión, busque el elemento de dirección IP de punto final privado en el campo Dirección IP de punto final privado. Solo se muestra una dirección IP.
  2. Edite el grupo de seguridad de red y agregue reglas para esta dirección IP con acceso al puerto de destino 1522 mediante TCP/IP. Por ejemplo, si se proporciona una dirección IP 10.0.1.9, la regla tiene el bloque CIDR 10.0.1.7/32 con acceso al puerto de destino 1522 mediante TCP/IP.

Estas reglas garantizan que Database Tools tenga acceso solo a la instancia de Autonomous Database seleccionada a través del grupo de seguridad de red desde estas direcciones IP específicas y solo en el puerto 1522 para el acceso bastión mediante SQLcl y el acceso a la hoja de trabajo de SQL en la consola de OCI.

Auditoría

Puede ampliar la pista de auditoría unificada de Oracle Database para capturar atributos de aplicación mediante la configuración de la auditoría para los valores de contexto de aplicación. El espacio de nombres de contexto de aplicación se rellena con los atributos necesarios y esos valores se capturan en la pista de auditoría unificada.

Los atributos de aplicación proporcionados por Database Tools se pueden utilizar para:

  • Identifique el principal de IAM autenticado que inició el acceso a la base de datos mediante el servicio Database Tools.
  • Correlacionar un registro de seguimiento de auditoría unificado con un evento de auditoría de OCI.

Identificación del principal de IAM autenticado

Para capturar los atributos de contexto de aplicación en la pista de auditoría unificada, primero debe ejecutar el comando AUDIT CONTEXT especificando los atributos adicionales que desea incluir en el registro de auditoría.

Por ejemplo, la siguiente sentencia captura los valores de los atributos de espacio de nombres CLIENTCONTEXT IAM_PRINCIPAL_OCID a RESOURCE_COMPARTMENT_OCID en todos los registros de auditoría.

AUDIT CONTEXT NAMESPACE CLIENTCONTEXT ATTRIBUTES IAM_PRINCIPAL_OCID,IAM_PRINCIPAL_TYPE, 
IAM_PRINCIPAL_SUB_TYPE,IAM_PRINCIPAL_RESOURCE_TYPE,IAM_PRINCIPAL_TENANCY_OCID, 
OPC_REQUEST_ID,RESOURCE_OCID,RESOURCE_COMPARTMENT_OCID

Después de agregar los atributos, puede utilizar la siguiente sentencia para comprobar los atributos de contexto de aplicación que se capturan en la pista de auditoría unificada.

SELECT * FROM AUDIT_UNIFIED_CONTEXTS;

Los registros de auditoría rellenados en UNIFIED_AUDIT_TRAIL por el servicio Database Tools proporcionan información para las siguientes columnas.

Tabla 10-1 Columnas auditadas

Columna Valor
OS_USERNAME Identificador de principal autenticado de IAM posiblemente truncado
CLIENT_IDENTIFIER Caracteres restantes del identificador principal autenticado de IAM
USERHOST Nombre de host de capa media
TERMINAL desconocido
CLIENT_PROGRAM_NAME ORDS de herramientas de base de datos
EXECUTION_ID opc-request-id truncado con 64 caracteres
APPLICATION_CONTEXTS Consulte Tabla 10-2

La columna APPLICATION_CONTEXTS se rellena con los valores de los siguientes atributos CLIENTCONTEXT, lo que permite identificar el principal de IAM autenticado que ha iniciado la operación de base de datos.

Tabla 10-2 Columna Application_Contexts

Contexto Atributo Descripción
CLIENTCONTEXT IAM_PRINCIPAL_OCID ID de principal de IAM
IAM_PRINCIPAL_TENANCY_OCID ID de arrendamiento principal de IAM
IAM_PRINCIPAL_TYPE

Tipo de principal de IAM

  • usuario
  • recurso
  • instancia
  • Servicio
IAM_PRINCIPAL_SUB_TYPE

Subtipo de principal de IAM

  • natv (usuario nativo)
  • natf (usuario federado nativo)
  • federado (usuario federado)
  • Ninguna
IAM_PRINCIPAL_RESOURCE_TYPE Tipo de recurso de principal de IAM
OPC_REQUEST_ID ID de solicitud de OPC
RESOURCE_OCID ID de recurso
RESOURCE_COMPARTMENT_OCID ID de compartimento de recurso

Correlación de un registro de seguimiento de auditoría unificado con un evento de auditoría de OCI

Mediante los atributos OPC_REQUEST_ID y RESOURCE_COMPARTMENT_OCID proporcionados en la columna APPLICATION_CONTEXTS y EVENT_TIMESTAMP, es posible encontrar el evento de auditoría que coincida con el registro de pista de auditoría unificado.

Uso de la consola de Oracle Cloud Infrastructure

  1. En la consola, abra el menú de navegación y seleccione Observación y gestión, seleccione Registro y, a continuación, seleccione Auditoría.
  2. En el panel izquierdo, seleccione el compartimento.
  3. En el panel derecho, en el campo Filtros personalizados, introduzca data.request.id= '<opc-request-id value>'.
  4. En Filtrar por tiempo, seleccione el intervalo de tiempo de la lista desplegable.
  5. Seleccione Aplicar.

    Los resultados aparecen en el separador Explorar eventos.

Uso de la Interfaz de Línea de Comandos (CLI)

Introduzca <REGION ID>, <RESOURCE_COMPARTMENT_OCID> y <OPC_REQUEST_ID> en el siguiente script para buscar el evento de auditoría que coincida con el registro de seguimiento de auditoría unificado.

#!/bin/sh
 
read -r -d '' body <<EndOfBody
{
  "searchQuery": "search \"<RESOURCE_COMPARTMENT_ID>/_Audit\" | (data.request.id='<OPC_REQUEST_ID>') | sort by datetime desc",
  "timeStart":"2024-07-19T11:03:56.167Z",
  "timeEnd":"2024-07-19T14:03:56.167Z",
  "isReturnFieldInfo":false
}
EndOfBody
 
oci raw-request --target-uri https://logging.<REGION_ID>.oci.oraclecloud.com/20190909/search --http-method POST --request-body "${body}"

Auditoría de sesiones autenticadas por IAM

La auditoría unificada de Oracle Database puede capturar detalles sobre las sesiones autenticadas mediante IAM. Para obtener más información sobre la autenticación de IAM, consulte Integración de la autenticación de IAM con conexiones de Database Tools.

En la vista UNIFIED_AUDIT_TRAIL, los identificadores relacionados con IAM se registran para sesiones autenticadas externamente. Por ejemplo, el OCID del usuario de IAM puede aparecer en la columna EXTERNAL_USERID.

La siguiente consulta de ejemplo muestra los registros de auditoría de las sesiones autenticadas por IAM:

SELECT EXTERNAL_USERID, EVENT_TIMESTAMP, ACTION_NAME 
FROM UNIFIED_AUDIT_TRAIL 
WHERE EXTERNAL_USERID IS NOT NULL;

Para obtener más información, consulte Auditoría del servicio Database Tools y Supervisión de la actividad de la base de datos con auditoría.

Auditoría para el servidor MCP de Database Tools

El servidor MCP de Database Tools proporciona auditoría integral mediante la integración de la auditoría de Oracle Cloud Infrastructure (OCI) con la auditoría unificada de Oracle Database. Esto le permite realizar un seguimiento de la actividad a nivel de API y de las operaciones correspondientes ejecutadas en la base de datos.

Los logs de OCI Audit capturan quién ejecutó las operaciones del servidor MCP y cuándo, mientras que la auditoría de la base de datos captura las acciones que se realizaron dentro de la base de datos.

Eventos de auditoría de OCI para servidor MCP

El servidor MCP genera eventos de auditoría para la auditoría de Oracle Cloud Infrastructure (OCI) cuando se ejecutan operaciones de API. Estos eventos le ayudan a supervisar el uso y a solucionar problemas.

El evento de auditoría que se genera para operaciones del servidor MCP es InvokeMcpServer.

Cada evento de auditoría incluye los siguientes campos importantes:

Propiedad Descripción
tipo de evento

Identifica la operación de API.

El valor es "com.oraclecloud.dbtools-service-mcp.InvokeMcpServer"

origen

El servicio que ejecutó el evento.

Valor: DatabaseToolsMcp

eventId Identificador único para el evento
eventTime Hora a la que se inició la solicitud.
data.eventName

Valor de ID de operación de la especificación de API.

El valor es "InvokeMcpServer"

data.compartmentId OCID del compartimento en el que se está produciendo el evento.
data.compartmentName Nombre fácil de recordar asociado al ID de compartimento
data.resourceId OCID del servidor MCP.
data.availabilityDomain Dominio de disponibilidad del recurso.
data.identity.principalName

Nombre del usuario o servicio que ha activado este evento.

Reclamación de token de acceso:

Si "sub_type" == "user", "user_displayname"

Si "sub_type" == "client", "client_name"

data.identity.principalId

OCID del usuario o servicio que ha activado el evento.

Reclamación de token de acceso: "sub"

data.identity.tenantId

OCID del arrendamiento.

Reclamación de token de acceso: "ca_ocid"

data.identity.ipDirección Dirección IP del usuario real que ejecuta la solicitud.
data.identity.authType

Nativo, Federado, OBO, ServiceToService

El valor es responsable

data.request.id Identificador único para una solicitud (opc-request-id).
data.request.path Ruta de acceso completa de la solicitud API.
data.request.action Tipo de solicitud HTTP, como GET, PUT, POST.
data.response.status Código de respuesta HTTP que indica el estado de la llamada de API (ejemplo: 200, 500).
mensaje_respuesta_datos

Descripción del resultado de la operación.

En el siguiente ejemplo, se muestra una entrada de log de auditoría simplificada para una llamada del servidor MCP:

{
  "eventType": "com.oraclecloud.dbtools-service-mcp.InvokeMcpServer",
  "source": "DatabaseToolsMcp",
  "eventTime": "2026-04-28T10:00:00Z",
  "eventId": "example-event-id",
  "data": {
    "eventName": "InvokeMcpServer",
    "compartmentId": "ocid1.compartment.oc1..example",
    "compartmentName": "ExampleCompartment",
    "resourceId": "ocid1.mcpserver.oc1..example",
    "resourceName": "ExampleMcpServer",
    "availabilityDomain": "Uocm:PHX-AD-1",
    "identity": {
      "principalName": "user@example.com",
      "principalId": "ocid1.user.oc1..example",
      "tenantId": "ocid1.tenancy.oc1..example",
      "ipAddress": "192.0.2.1",
      "authType": "Bearer"
    },
    "request": {
      "action": "POST",
      "path": "/mcp/invoke",
      "id": "example-opc-request-id"
    },
    "response": {
      "status": 200,
      "message": "ExampleMcpServer InvokeMcpServer succeeded"
    }
  }
}

Es posible que haya campos adicionales en el evento de auditoría. Para obtener el esquema completo, consulte la documentación de OCI Audit.

Auditoría de la Base de Datos para Operaciones del Servidor MCP

Al utilizar el servidor MCP de Database Tools, las operaciones de base de datos se ejecutan en nombre de los usuarios de IAM autenticados y la identidad de usuario se propaga a la sesión de base de datos mediante el espacio de nombres CLIENTCONTEXT. Esto permite a Oracle Database Unified Auditing capturar el contexto de usuario y solicitud para las operaciones iniciadas a través de clientes MCP.

Para obtener más información sobre cómo se propaga la identidad de usuario de los clientes MCP a la sesión de base de datos, consulte Identidad de sesión de base de datos y propagación de roles.

Puede ampliar la pista de auditoría unificada para capturar estos atributos de contexto de aplicación mediante la configuración de la auditoría para los valores CLIENTCONTEXT. Esto le permite lo siguiente:

  • Identifique el principal de IAM autenticado que ha iniciado una operación de base de datos mediante el servidor MCP.
  • Asocie la actividad de la base de datos con un servidor MCP y una solicitud específicos.
  • Correlacionar registros de auditoría de base de datos con eventos de OCI Audit.

Para capturar estos atributos, ejecute el comando AUDIT CONTEXT.

Correlación de logs de auditoría de OCI y de base de datos

Cada ejecución del servidor MCP de Database Tools genera un evento de auditoría de OCI y un registro de auditoría de base de datos correspondiente. Se enlazan mediante una solicitud compartida y un contexto de identidad.

  • opc-request-id, disponible como data.request.id en los logs de auditoría de OCI, se puede utilizar para correlacionar la solicitud de cliente de MCP con los registros de auditoría de base de datos capturados en UNIFIED_AUDIT_TRAIL.

  • El principal de IAM propagado a través del espacio de nombres CLIENTCONTEXT se alinea con la identidad registrada en OCI Audit (data.identity.*) .

Filtrado de eventos de auditoría de MCP

Para filtrar eventos de auditoría relacionados con MCP, utilice:

eventType = "com.oraclecloud.dbtools-service-mcp.InvokeMcpServer"

Uso de identidades

Actualización de una conexión con un recurso de identidad relacionado

Cuando se actualiza una conexión, la base de datos o el esquema de destino pueden cambiar. Si se asocia una identidad, el servicio Database Tools vuelve a crear el recurso de identidad en la nueva base de datos y esquema de destino. Este proceso puede dejar una credencial huérfana en el esquema y la base de datos anteriores. Si es necesario, la credencial, junto con cualquier sinónimo o permiso asociado, se debe eliminar manualmente.

Configuración de notificaciones en caso de fallo al refrescar la identidad

Si utiliza una identidad para realizar una tarea crítica, desea recibir una notificación en caso de que falle la operación de refrescamiento. Cuando falla la operación de refrescamiento, el token de entidad de recurso ya no se puede utilizar y esto impide que OCI Identity and Access Management autentique la credencial asociada. Utilice OCI Monitoring para crear una alarma para enviar una notificación cuando falle una operación de refrescamiento. Consulte Visualización y Supervisión de una Identidad.

Auditoría de Operaciones de Credenciales

Cuando se crea o actualiza una identidad, se utilizan los detalles de clave privada y token de entidad de recurso para generar o modificar el objeto de credencial de base de datos correspondiente. Según la configuración de la configuración de auditoría de Oracle Database, esta información se puede registrar en los logs de auditoría. Consulte Introducción a la Auditoría.