Documentation / Sécurité

Base de données sécurisée

Vous décidez, connexion par connexion, de ce que l’agent peut faire dans votre base de données. Rien n’est écrit sans votre approbation.

Chaque connexion du client de base de données possède sa propre politique d’accès pour l’agent. L’IDE l’applique à chaque instruction ; l’agent ne peut pas la modifier.

Les trois niveaux

Ils se configurent dans la boîte de dialogue de la connexion, section Accès de l’agent.

Niveau Ce que l’agent voit et peut faire
Aucun accès L’agent ne voit pas cette connexion.
Requêtes seules (par défaut) Uniquement SELECT, avec une limite de lignes.
Super permissions Les modifications que vous choisissez, toujours avec votre approbation.

Super permissions

Avec les Super permissions, vous cochez les catégories d’instructions autorisées :

Case Instructions
Modifier les données INSERT, UPDATE, DELETE, MERGE
Modifier la structure CREATE, ALTER, DROP, TRUNCATE
Exécuter du code Blocs PL/SQL et procédures

Une instruction d’une catégorie non cochée est refusée : « Les super permissions de cette connexion n'incluent pas ce type d'instruction. »

Chaque instruction vous est présentée pour approbation et n’est jamais exécutée en mode autonome. Si la connexion est marquée en lecture seule, cela prévaut sur toute permission de l’agent.

Comment une écriture est approuvée

  1. L’agent propose l’instruction avec l’outil yuli_db_execute.
  2. Yuli vérifie que la connexion dispose des Super permissions pour cette catégorie d’instruction.
  3. La carte « Exécuter sur la base « nom » » apparaît avec l’instruction complète.
  4. Vous approuvez ou refusez. Sans votre approbation, rien n’est exécuté.

Il en va de même en Mode abonnement : si Claude Code, Kiro, Codex ou Antigravity appellent yuli_db_execute, la carte apparaît dans Yuli.

Limites des requêtes de l’agent

Limite Valeur
Durée maximale par requête 45 secondes
Lignes par requête 100 par défaut, jusqu’à 1000 (Lignes max. par requête)
Plans d’exécution coûteux Une requête est refusée si son plan estime parcourir plus de 2 millions de lignes sous un tri, une agrégation, une jointure ou un DISTINCT.

Yuli encapsule chaque requête avec ROWNUM, TOP ou LIMIT selon le moteur, afin que la limite de lignes soit toujours respectée.

La console SQL que vous utilisez a ses propres limites : 500 lignes par défaut, jusqu’à 100 000.

Pas de raccourci par le terminal

L’agent ne peut pas utiliser de clients de base de données en ligne de commande (sqlplus, sqlcl, sqlcmd, bcp, sqlite3, psql, mysql, mariadb, mongo, mongosh, isql, db2, impdp, expdp, rman et similaires). Ainsi, personne ne contourne la politique d’accès.

Mots de passe

Le mot de passe de chaque connexion est conservé dans le trousseau du système, jamais dans le projet. La politique d’accès de l’agent est enregistrée dans votre configuration utilisateur, hors du projet : un dépôt ne peut donc pas s’accorder des permissions à lui-même.

Bonnes pratiques

  • Laissez Requêtes seules sur les connexions aux environnements partagés.
  • N’utilisez les Super permissions que sur votre base locale ou de développement, et uniquement avec les catégories d’instructions dont vous avez besoin.
  • Marquez en lecture seule les connexions à la production.
  • Pour expliquer ou déboguer du code PL/SQL, l’agent n’a pas besoin d’écrire : il lui suffit de lire le schéma et le code source.