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:
- Crie um compartimento chamado Relatório.
- Crie um grupo neste compartimento chamado DataScientists.
- Crie uma conexão de banco de dados no compartimento Relatório chamado ReportingDataAccess.
- 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:
- Crie um compartimento chamado DBA.
- Crie um grupo neste compartimento chamado DatabaseAdministrators.
- Crie uma conexão de banco de dados chamada DatabaseAdmin no compartimento DBA.
- 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:
- 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.
- 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:
- 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.
- 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_OCIDDepois 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
|
|
IAM_PRINCIPAL_SUB_TYPE |
Subtipo principal do IAM
|
|
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
- Na Console, abra o menu de navegação e selecione Observabilidade e Gerenciamento, selecione Log e, em seguida, Auditoria.
- No painel esquerdo, selecione o Compartimento.
- No painel direito, no campo Filtros personalizados, digite data.request.id= '<opc-request-id value>'.
- Em Filtrar por tempo, selecione o intervalo de tempo na lista drop-down.
- 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 comodata.request.idnos logs do OCI Audit, pode ser usado para correlacionar a solicitação do cliente MCP com registros de auditoria de banco de dados capturados noUNIFIED_AUDIT_TRAIL. -
O principal do IAM propagado por meio do namespace
CLIENTCONTEXTse 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.