Documentație / Securitate
Bază de date securizată
Tu decizi, conexiune cu conexiune, ce poate face agentul în baza ta de date. Nimic nu scrie fără aprobarea ta.
Fiecare conexiune din clientul de baze de date are propria politică de acces pentru agent. O aplică IDE-ul la fiecare instrucțiune; agentul nu o poate schimba.
Cele trei niveluri
Se configurează în dialogul conexiunii, secțiunea Acces agent.
| Nivel | Ce vede și ce poate face agentul |
|---|---|
| Fără acces | Agentul nu vede această conexiune. |
| Doar interogări (implicit) | Doar SELECT, cu limită de rânduri. |
| Super permisiuni | Modificările pe care le alegi tu, întotdeauna cu aprobarea ta. |
Super permisiuni
Cu Super permisiuni bifezi ce clase de instrucțiuni sunt activate:
| Casetă | Instrucțiuni |
|---|---|
| Modifică date | INSERT, UPDATE, DELETE, MERGE |
| Modifică structura | CREATE, ALTER, DROP, TRUNCATE |
| Rulează cod | Blocuri PL/SQL și proceduri |
O instrucțiune dintr-o clasă nebifată este respinsă: „Super permisiunile acestei conexiuni nu includ acest tip de instrucțiune.”
Fiecare instrucțiune îți este afișată spre aprobare și nu se execută niciodată în modul nesupravegheat. Dacă o conexiune este marcată doar pentru citire, acest lucru are prioritate față de orice permisiune a agentului.
Cum se aprobă o scriere
- Agentul propune instrucțiunea cu unealta
yuli_db_execute. - Yuli verifică dacă conexiunea are Super permisiuni pentru acea clasă de instrucțiuni.
- Apare cardul „Rulează pe baza de date «nume»” cu instrucțiunea completă.
- Tu aprobi sau respingi. Fără aprobarea ta nu se execută nimic.
La fel se întâmplă în Modul abonament: dacă Claude Code, Kiro, Codex sau Antigravity apelează yuli_db_execute, cardul apare în Yuli.
Limitele interogărilor agentului
| Limită | Valoare |
|---|---|
| Timp maxim per interogare | 45 de secunde |
| Rânduri per interogare | 100 implicit, până la 1000 (Rânduri maxime per interogare) |
| Planuri de execuție costisitoare | Este respinsă o interogare al cărei plan estimează parcurgerea a peste 2 milioane de rânduri sub o sortare, agregare, join sau DISTINCT. |
Yuli încadrează fiecare interogare cu ROWNUM, TOP sau LIMIT, în funcție de motor, astfel încât limita de rânduri să fie respectată întotdeauna.
Consola SQL pe care o folosești tu are propriile limite: 500 de rânduri implicit, până la 100.000.
Fără scurtături prin terminal
Agentul nu poate folosi clienți de baze de date în linie de comandă (sqlplus, sqlcl, sqlcmd, bcp, sqlite3, psql, mysql, mariadb, mongo, mongosh, isql, db2, impdp, expdp, rman și altele similare). Astfel, nimeni nu ocolește politica de acces.
Parole
Parola fiecărei conexiuni se salvează în keychain-ul sistemului, niciodată în proiect. Politica de acces a agentului se salvează în configurația ta de utilizator, în afara proiectului, așa că un depozit nu își poate acorda singur permisiuni.
Bune practici
- Lasă Doar interogări la conexiunile către medii partajate.
- Folosește Super permisiuni doar pe baza ta locală sau de dezvoltare și doar cu clasele de instrucțiuni de care ai nevoie.
- Marchează ca doar citire conexiunile către producție.
- Pentru a explica sau depana cod PL/SQL, agentul nu are nevoie să scrie: îi este suficient să citească schema și codul sursă.