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
- O agente propõe a instrução com a ferramenta
yuli_db_execute. - O Yuli verifica se a conexão tem Superpermissões para essa classe de instrução.
- Aparece o cartão “Executar no banco «nome»” com a instrução completa.
- 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.