Melhores Práticas para Usar o Serviço Database Tools

Esta seção descreve procedimentos e práticas que podem ajudar você a usar o serviço Database Tools de forma mais fácil e eficiente.

Tópicos:

Usando Compartimentos

As conexões de banco de dados são um recurso útil ao conceder acesso ao banco de dados a um usuário específico ou a grupos de usuários definidos. Para ajudar a isolar essas conexões, use políticas para conceder acesso a conexões específicas com base na atribuição de um usuário, conforme demonstrado no seguinte exemplo:

Para um Autonomous Data Warehouse usado para geração de relatórios, crie uma conexão de banco de dados compartilhado chamada ReportingDataAccess. Designe essa conexão a um conjunto específico de usuários finais em um grupo chamado Data Scientists. Os usuários deste grupo agora têm acesso aos detalhes da conexão do banco de dados, mas estão limitados a usar apenas essa conexão e as atribuições e privilégios herdados pelo usuário que a conexão está usando para acessar o banco de dados.

Você também pode criar uma conexão de administrador com o data warehouse e designar outro conjunto de usuários a essa conexão com um grupo chamado DatabaseAdministrators. Usando compartimentos e políticas, você pode separar o acesso a essas conexões da seguinte forma:

Grupo de Cientistas de Dados:

  1. Crie um compartimento chamado Relatório.
  2. Crie um grupo neste compartimento chamado DataScientists.
  3. Crie uma conexão de banco de dados no compartimento Relatório chamado ReportingDataAccess.
  4. Crie uma política que dê acesso à conexão no compartimento Relatório para o 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 de Administradores de Banco de Dados:

  1. Crie um compartimento chamado DBA.
  2. Crie um grupo neste compartimento chamado DatabaseAdministrators.
  3. Crie uma conexão de banco de dados chamada DatabaseAdmin no compartimento DBA.
  4. Crie uma política que conceda acesso à conexão no compartimento DBA a esse grupo:
    • Allow group DatabaseAdministrators to read database-tools-family in compartment DBA
    • Allow group DatabaseAdministrators to use database-tools-connections in compartment DBA

Esses grupos e conexões de banco de dados específicas do compartimento ajudam a isolar quais usuários podem acessar quais bancos de dados e determinar o acesso que eles têm.

Usando Pontos Finais Privados

Ao criar conexões de banco de dados com um Autonomous Database que esteja usando um ponto final privado, crie um grupo de segurança de rede para fornecer acesso do serviço Database Tools a esse banco de dados. Ao criar o grupo de segurança de rede, você define regras de acesso específicas que limitam quais IPs ou blocos CIDR podem ser usados e as portas ou intervalo de portas.

Para a planilha SQL

Para configurar o conjunto mínimo de regras do grupo de segurança de rede necessárias para fornecer acesso da Planilha SQL do serviço Database Tools na Console do OCI:

  1. Na página Detalhes do Ponto Final Privado, localize o campo Inverter IPs de Origem da Conexão na seção Informações do Ponto Final Privado. Há dois endereços IP.
  2. Edite o grupo de segurança de rede e adicione regras para os dois endereços IP, com acesso à porta de destino 1522 usando TCP/IP. Por exemplo, dois endereços IP fornecidos, 10.0.1.6 e 10.0.1.8, as duas regras têm os blocos CIDR 10.0.1.6/32 e 10.0.1.8/32 com acesso à porta de destino 1522, usando TCP/IP.

Para SQLcl e Bastions

Para configurar o conjunto mínimo de regras do grupo de segurança de rede necessárias para fornecer acesso do SQLcl do serviço Database Tools SQLcl usando um bastion na Console do OCI:

  1. Na página de detalhes do Bastion, localize o item de endereço IP de ponto final privado no campo Endereço IP de ponto final privado. Somente um endereço IP é mostrado.
  2. Edite o grupo de segurança de rede e adicione regras para esse endereço IP com acesso à porta de destino 1522 usando TCP/IP. Por exemplo, se for fornecido um endereço IP 10.0.1.9, a regra terá o bloco CIDR 10.0.1.7/32 com acesso à porta de destino 1522 usando TCP/IP.

Essas regras garantem que o serviço Database Tools tenha acesso somente ao Autonomous Database selecionado por meio do grupo de segurança de rede desses endereços IP específicos e somente na porta 1522 para acesso ao bastion usando o SQLcl e acesso à Planilha SQL na Console do OCI.

Auditando

Você pode estender a trilha de auditoria unificada do Oracle Database para capturar atributos da aplicação configurando a auditoria para valores de contexto da aplicação. O namespace de contexto do aplicativo é preenchido com os atributos necessários e esses valores são capturados na trilha de auditoria unificada.

Os atributos do aplicativo fornecidos pelo Database Tools podem ser usados para:

  • Identifique o principal autenticado do IAM que iniciou o acesso ao banco de dados usando o serviço Database Tools.
  • Correlacione um registro de trilha de auditoria unificada com um evento de auditoria do OCI.

Identificar o Principal Autenticado do IAM

Para capturar os atributos de contexto do aplicativo na trilha de auditoria unificada, primeiro execute o comando AUDIT CONTEXT especificando os atributos adicionais que você deseja incluir no registro de auditoria.

Por exemplo, a instrução a seguir captura os valores dos atributos CLIENTCONTEXT do namespace IAM_PRINCIPAL_OCID para RESOURCE_COMPARTMENT_OCID em todos os registros de auditoria.

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

Depois de adicionar os atributos, você poderá usar a instrução a seguir para verificar os atributos de contexto do aplicativo capturados na trilha de auditoria unificada.

SELECT * FROM AUDIT_UNIFIED_CONTEXTS;

Os registros de auditoria preenchidos no UNIFIED_AUDIT_TRAIL pelo serviço Database Tools fornecem informações para as seguintes colunas.

Tabela 10-1 Colunas Auditadas

Coluna Valor
OS_USERNAME Identificador principal autenticado do IAM possivelmente truncado
CLIENT_IDENTIFIER Caracteres restantes do identificador principal autenticado do IAM
USERHOST Nome do host da camada intermediária
TERMINAL Desconhecido
CLIENT_PROGRAM_NAME ORDS de Ferramentas de Banco de Dados
EXECUTION_ID opc-request-id truncado com 64 caracteres
APPLICATION_CONTEXTS Consulte aTabela 10-2

A coluna APPLICATION_CONTEXTS é preenchida com os valores dos seguintes atributos CLIENTCONTEXT, que permitem identificar o principal autenticado do IAM que iniciou a operação do banco de dados.

Tabela 10-2 Coluna Application_Contexts

Contexto Atributo Descrição:
CLIENTCONTEXT IAM_PRINCIPAL_OCID ID prinicipal do IAM
IAM_PRINCIPAL_TENANCY_OCID ID da tenancy principal do IAM
IAM_PRINCIPAL_TYPE

Tipo de impressão do IAM

  • usuário
  • recurso
  • instância
  • serviço
IAM_PRINCIPAL_SUB_TYPE

Subtipo principal do IAM

  • natv (usuário nativo)
  • natf (usuário federado nativo)
  • alimentado (usuário federado)
  • nenhum
IAM_PRINCIPAL_RESOURCE_TYPE Tipo de recurso principal do IAM
OPC_REQUEST_ID ID de solicitação do OPC
RESOURCE_OCID Id do recurso
RESOURCE_COMPARTMENT_OCID ID do compartimento do recurso

Correlacione um Registro de Trilha de Auditoria Unificada com um Evento de Auditoria do OCI

Usando os atributos OPC_REQUEST_ID e RESOURCE_COMPARTMENT_OCID fornecidos na coluna APPLICATION_CONTEXTS e EVENT_TIMESTAMP, é possível localizar o evento de auditoria correspondente ao registro da trilha de auditoria unificada.

Usando a Console do Oracle Cloud Infrastructure

  1. Na Console, abra o menu de navegação e selecione Observabilidade e Gerenciamento, selecione Log e, em seguida, Auditoria.
  2. No painel esquerdo, selecione o Compartimento.
  3. No painel direito, no campo Filtros personalizados, digite data.request.id= '<opc-request-id value>'.
  4. Em Filtrar por tempo, selecione o intervalo de tempo na lista drop-down.
  5. Selecione Aplicar.

    Os resultados aparecem na guia Explorar Eventos.

Usando a Interface de Linha de Comando (CLI)

Digite <REGION ID>, <RESOURCE_COMPARTMENT_OCID> e <OPC_REQUEST_ID> no script a seguir para localizar o evento de auditoria que corresponde ao registro da trilha de auditoria unificada.

#!/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}"

Auditoria para Sessões Autenticadas do Serviço IAM

O Oracle Database Unified Auditing pode capturar detalhes sobre sessões que foram autenticadas usando o IAM. Para obter mais informações sobre a Autenticação do IAM, consulte Integrando a Autenticação do IAM com Conexões do Serviço Database Tools.

Na view UNIFIED_AUDIT_TRAIL, os identificadores relacionados ao serviço IAM são registrados para sessões autenticadas externamente. Por exemplo, o OCID do usuário do IAM pode aparecer na coluna EXTERNAL_USERID.

O exemplo de consulta a seguir mostra registros de auditoria para sessões autenticadas pelo IAM:

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

Para obter mais informações, consulte Auditoria do serviço Database Tools e Monitorando a Atividade do Banco de Dados com Auditoria.

Auditoria para Servidor MCP do Database Tools

O Servidor MCP do Database Tools fornece auditoria de ponta a ponta integrando o Oracle Cloud Infrastructure (OCI) Audit com o Oracle Database Unified Auditing. Isso permite rastrear a atividade no nível da API e as operações correspondentes executadas no banco de dados.

O OCI Audit registra quem executou as operações do MCP Server e quando, enquanto a auditoria do banco de dados captura quais ações foram executadas no banco de dados.

Eventos de Auditoria do OCI para Servidor MCP

O MCP Server gera eventos de auditoria para o Oracle Cloud Infrastructure (OCI) Audit quando as operações de API são executadas. Esses eventos ajudam a monitorar o uso e solucionar problemas.

O evento de auditoria gerado para operações do Servidor MCP é InvokeMcpServer.

Cada evento de auditoria inclui os seguintes campos importantes:

Propriedade Descrição
tipo de evento

Identifica a operação da API.

O valor é "com.oraclecloud.dbtools-service-mcp.InvokeMcpServer"

origem

O serviço que executou o evento.

O valor é "DatabaseToolsMcp"

Id do evento Identificador exclusivo para o evento
eventTime A hora em que a solicitação foi iniciada.
data.eventName

Valor do ID da operação da especificação da API.

O valor é "InvokeMcpServer"

data.compartmentId OCID do compartimento no qual o evento está ocorrendo.
data.compartmentName Nome amigável associado ao Id do compartimento
ID do recurso de dados O OCID do Servidor MCP.
data.availabilityDomain O domínio de disponibilidade do recurso.
data.identity.principalNome

O nome do usuário ou serviço que acionou este evento.

Reivindicação do Token de Acesso:

Se "sub_type" == "user", "user_displayname"

Se "sub_type" == "client", "client_name"

data.identity.principalId

O OCID do usuário ou serviço que acionou o evento.

Reivindicação do Token de Acesso: "sub"

data.identity.tenantId

OCID da tenancy.

Reivindicação do Token de Acesso: "ca_ocid"

data.identity.ipEndereço Endereço IP do usuário real que está executando a solicitação.
data.identity.authType

Nativo, Federado, OBO, ServiceToService

O valor é portador

data.request.id Identificador exclusivo de uma solicitação (opc-request-id).
caminho da solicitação de dados O caminho completo da solicitação de API.
data.request.action Tipo de solicitação HTTP, como GET, PUT, POST.
status de resposta de dados Código de resposta HTTP indicando o status da chamada de API (Exemplo: 200, 500).
data.response.mensagem

Descrição do resultado da operação.

O exemplo a seguir mostra uma entrada de log de auditoria simplificada para uma chamada do 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"
    }
  }
}

Campos adicionais podem estar presentes no evento de auditoria. Para obter o esquema completo, consulte a documentação do OCI Audit.

Auditoria do Banco de Dados para Operações do Servidor MCP

Ao usar o Servidor MCP do Database Tools, as operações de banco de dados são executadas em nome de usuários autenticados do IAM e a identidade do usuário é propagada para a sessão do banco de dados por meio do namespace CLIENTCONTEXT. Isso permite que o Oracle Database Unified Auditing capture o contexto do usuário e da solicitação para operações iniciadas por meio de clientes MCP.

Para obter mais informações sobre como a identidade do usuário é propagada de clientes MCP para a sessão do banco de dados, consulte Identidade da Sessão do Banco de Dados e Propagação de Atribuições.

Você pode estender a trilha de auditoria unificada para capturar esses atributos de contexto do aplicativo configurando a auditoria para valores CLIENTCONTEXT. Isso permite que você:

  • Identifique o principal do IAM autenticado que iniciou uma operação de banco de dados por meio do Servidor MCP.
  • Associe a atividade do banco de dados a um servidor MCP e solicitação específicos.
  • Correlacione registros de auditoria de banco de dados com eventos do OCI Audit.

Para capturar esses atributos, execute o comando AUDIT CONTEXT.

Correlacionando o OCI Audit e Logs de Auditoria de Banco de Dados

Cada execução do Servidor MCP do Database Tools gera um evento do OCI Audit e um registro de auditoria de banco de dados correspondente. Eles são vinculados por meio de solicitação compartilhada e contexto de identidade.

  • O opc-request-id, disponível como data.request.id nos logs do OCI Audit, pode ser usado para correlacionar a solicitação do cliente MCP com registros de auditoria de banco de dados capturados no UNIFIED_AUDIT_TRAIL.

  • O principal do IAM propagado por meio do namespace CLIENTCONTEXT se alinha à identidade registrada no OCI Audit (data.identity.*).

Filtrando Eventos de Auditoria MCP

Para filtrar eventos de auditoria relacionados ao MCP, use:

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

Usando Identidades

Atualizando uma conexão com um recurso de identidade relacionado

Quando uma conexão é atualizada, o banco de dados ou esquema de destino pode mudar. Se uma identidade estiver anexada, o Serviço Database Tools recriará o recurso de identidade no novo esquema e banco de dados de destino. Esse processo pode deixar uma credencial órfã no esquema e banco de dados anteriores. Se necessário, a credencial, juntamente com quaisquer sinônimos ou concessões associados, deve ser excluída manualmente.

Configurando notificações em caso de falha na atualização da identidade

Se você estiver usando uma identidade para executar uma tarefa crítica, será notificado caso a operação de atualização falhe. Quando a operação de atualização falha, o token do controlador de recursos não pode mais ser usado e isso impede que a credencial associada seja autenticada pelo OCI Identity and Access Management. Use o OCI Monitoring para criar um alarme para enviar uma notificação quando uma operação de atualização falhar. Consulte Exibindo e Monitorando uma Identidade.

Auditando operações de credenciais

Quando uma identidade é criada ou atualizada, o token do controlador de recursos e os detalhes da chave privada são utilizados para gerar ou modificar o objeto de credencial de banco de dados correspondente. Dependendo das definições de auditoria configuradas do Oracle Database, essas informações poderão ser registradas nos logs de auditoria . Consulte Introdução à Auditoria.