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:
- Cree un compartimento denominado Reporting.
- Cree un grupo en este compartimento denominado DataScientists.
- Cree una conexión a base de datos en el compartimento Reporting denominado ReportingDataAccess.
- 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:
- Cree un compartimento denominado DBA.
- Cree un grupo en este compartimento denominado DatabaseAdministrators.
- Cree una conexión a base de datos denominada DatabaseAdmin en el compartimento DBA.
- 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:
- 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.
- 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:
- 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.
- 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_OCIDDespué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
|
|
IAM_PRINCIPAL_SUB_TYPE |
Subtipo de principal de IAM
|
|
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
- 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.
- En el panel izquierdo, seleccione el compartimento.
- En el panel derecho, en el campo Filtros personalizados, introduzca data.request.id= '<opc-request-id value>'.
- En Filtrar por tiempo, seleccione el intervalo de tiempo de la lista desplegable.
- 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 comodata.request.iden 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 enUNIFIED_AUDIT_TRAIL. -
El principal de IAM propagado a través del espacio de nombres
CLIENTCONTEXTse 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.