Documentação / Segurança

Banco de dados seguro

Você decide, conexão por conexão, o que o agente pode fazer no seu banco de dados. Nada é gravado sem a sua aprovação.

Cada conexão do cliente de banco de dados tem a sua própria política de acesso para o agente. O IDE a aplica em cada instrução; o agente não pode alterá-la.

Os três níveis

São configurados no diálogo da conexão, seção Acesso do agente.

Nível O que o agente vê e pode fazer
Sem acesso O agente não vê esta conexão.
Só consultas (padrão) Apenas SELECT, com limite de linhas.
Superpermissões Alterações que você escolhe, sempre com a sua aprovação.

Superpermissões

Com Superpermissões, você marca quais classes de instrução ficam habilitadas:

Caixa Instruções
Modificar dados INSERT, UPDATE, DELETE, MERGE
Alterar estrutura CREATE, ALTER, DROP, TRUNCATE
Executar código Blocos PL/SQL e procedimentos

Uma instrução de uma classe não marcada é rejeitada: “As superpermissões desta conexão não incluem esse tipo de instrução.”

Cada instrução é mostrada a você para aprovação e nunca é executada no modo autônomo. Se a conexão estiver marcada como somente leitura, isso prevalece sobre qualquer permissão do agente.

Como uma gravação é aprovada

  1. O agente propõe a instrução com a ferramenta yuli_db_execute.
  2. O Yuli verifica se a conexão tem Superpermissões para essa classe de instrução.
  3. Aparece o cartão “Executar no banco «nome»” com a instrução completa.
  4. Você aprova ou rejeita. Sem a sua aprovação, nada é executado.

O mesmo vale no Modo assinatura: se o Claude Code, o Kiro, o Codex ou o Antigravity chamarem yuli_db_execute, o cartão aparece no Yuli.

Limites das consultas do agente

Limite Valor
Tempo máximo por consulta 45 segundos
Linhas por consulta 100 por padrão, até 1000 (Máximo de linhas por consulta)
Planos de execução custosos É rejeitada uma consulta cujo plano estima percorrer mais de 2 milhões de linhas sob uma ordenação, agregação, join ou DISTINCT.

O Yuli envolve cada consulta com ROWNUM, TOP ou LIMIT, conforme o banco, para que o limite de linhas seja sempre respeitado.

O console SQL que você usa tem os seus próprios limites: 500 linhas por padrão, até 100.000.

Sem atalhos pelo terminal

O agente não pode usar clientes de banco de dados de linha de comando (sqlplus, sqlcl, sqlcmd, bcp, sqlite3, psql, mysql, mariadb, mongo, mongosh, isql, db2, impdp, expdp, rman e similares). Assim, ninguém contorna a política de acesso.

Senhas

A senha de cada conexão é guardada no chaveiro do sistema, nunca no projeto. A política de acesso do agente é guardada na sua configuração de usuário, fora do projeto, de modo que um repositório não pode conceder permissões a si mesmo.

Boas práticas

  • Deixe Só consultas nas conexões com ambientes compartilhados.
  • Use Superpermissões apenas no seu banco local ou de desenvolvimento, e apenas com as classes de instrução de que você precisa.
  • Marque como somente leitura as conexões com produção.
  • Para explicar ou depurar código PL/SQL, o agente não precisa gravar: basta ler o esquema e o código-fonte.