快一點,也安心一點
你說目標,Agent 完成。
資料安全交給 dbcli。
從分析到互動式報表,Agent 有效率地把資料任務做完;dbcli 全程確認結構、保護敏感資料並守住操作界線。
dbcli 在背後
- 確認實際資料結構
- 隱藏敏感欄位
- 限制查詢範圍
- 驗證結果並留下紀錄
真實工作流
一句需求,走完五道可靠步驟
Agent 不靠猜測直接碰資料。dbcli 把結構確認、防護、執行與驗證串成可重複的流程。
描述成果
用自然語言說明你想回答的問題與交付形式。
你的需求確認結構
先讀實際 schema,避免猜錯欄位或資料型別。
schema套用防護
套用黑名單、權限層級與查詢筆數限制。
blacklist · permission執行與驗證
執行查詢、檢查結果;錯誤時取得引導式修復方案。
query · recover交付結果
把結論整理成可分享、可互動的報表。
query --ui看看 Agent 背後執行了什麼
dbcli blacklist list
dbcli schema subscriptions --format json
dbcli query "WITH months AS (SELECT date_trunc('month', CURRENT_DATE) AS month_start UNION ALL SELECT date_trunc('month', CURRENT_DATE) - INTERVAL '1 month'), rates AS (SELECT m.month_start, s.plan, COUNT(*) FILTER (WHERE s.cancelled_at >= m.month_start AND s.cancelled_at < m.month_start + INTERVAL '1 month')::numeric / NULLIF(COUNT(*) FILTER (WHERE s.created_at < m.month_start AND (s.cancelled_at IS NULL OR s.cancelled_at >= m.month_start)), 0) * 100 AS churn_rate FROM months m CROSS JOIN subscriptions s GROUP BY m.month_start, s.plan), compared AS (SELECT plan, churn_rate, LAG(churn_rate) OVER (PARTITION BY plan ORDER BY month_start) AS previous_rate, month_start FROM rates) SELECT plan, ROUND(churn_rate, 1) AS churn_rate_pct, ROUND((churn_rate - previous_rate) / NULLIF(previous_rate, 0) * 100, 1) AS increase_pct FROM compared WHERE month_start = date_trunc('month', CURRENT_DATE) ORDER BY increase_pct DESC" --recovery --ui
dbcli recover
效率,不省略必要步驟
把來回操作,收斂成一次交付
一個請求走完整條流程
從查詢、分析到報表交付,不必逐條指揮 Agent。
task workflow重用結構與查詢知識
先確認 schema,再發現並重用團隊保存的查詢片段。
schema · queries診斷後直接交付
錯誤有復原指引,成功結果可轉成互動式報表。
recover · query --ui分層防護
安全不是一句保證,而是每一步的界線
憑證隔離
Agent 使用固定連線設定,不必讀取或輸出資料庫密碼。
profile敏感資料黑名單
欄位與資料表在查詢前就受保護,避免敏感內容外洩。
blacklist操作權限與預覽
權限層級限制可做的事;寫入前可先用 dry-run 檢查。
permission · --dry-run驗證、復原與稽核
驗證結果、提供安全修復方案,並保留操作紀錄。
verify · recover · audit你的工具,照常使用
一套工作流,接上常用資料庫與 Agent
資料庫
AI Agent
Quickstart
把 dbcli 放進 Agent 的工具箱
Plugin/Skill 是最直接的 Agent 整合方式;若想先使用 CLI,也可以單獨初始化。
直接安裝完整操作指引
Claude Code 可從 marketplace 安裝 plugin;Codex 可在 CLI 初始化後安裝 skill。
/plugin marketplace add CarlLee1983/dbcli
/plugin install dbcli@carllee1983-dbclidbcli skill --install codexSkill 也支援 Claude Code、Cursor、GitHub Copilot、Gemini CLI、Antigravity 與 Windsurf。OpenCode 可搭配使用,但目前沒有專用 selector;請勿套用其他平台的安裝命令。
先建立連線設定
使用 bunx 執行初始化精靈;之後 Agent 可透過 skill 使用相同的安全工作流。
bunx @carllee1983/dbcli init完成初始化後,再依使用的 Agent 安裝對應整合;完整平台說明請見使用者文件。
FAQ
常見問題
我不會寫 SQL,這工具跟我有關嗎?
正是為你設計的。你用自然語言請 Agent 處理資料,dbcli 讓 Agent 先用 schema 確認真實結構,再重用 saved queries 與 task packs 的專家查詢;你不必讀懂中間的 SQL,只需要檢查結果。
Agent 會不會不小心刪掉我的資料?
預設權限是 query-only,連 INSERT 都做不了。就算你開到 data-admin,DELETE 仍強制要求 WHERE 條件、建議先 dry-run,且等值限制讓「一句掃全表」在語法層就被擋下。DDL 更要 admin + --execute + DROP 加 --force 三重確認。
支援哪些資料庫?
支援 MySQL、PostgreSQL、MariaDB、MongoDB、Redis 與 Elasticsearch。同一專案可設定多條具名連線(例如 staging、production 或不同租戶),各自使用獨立憑證、權限與 schema 快取。
跟直接使用 MCP database server 有什麼不同?
dbcli 把權限與資料防護內建在資料庫操作層:憑證隔離、blacklist 遮罩、權限分級、dry-run、audit 與 recovery 都可直接使用。它不綁定單一 Agent 協定或編輯器,人類也能在終端機使用同一套工作流。當 MCP server 的對話式介面與政策模型已滿足需求時,可直接使用 MCP;完整取捨請見圖解工具選擇指南。
團隊要怎麼協作?
Saved queries 可放進 .dbcli-shared/ 並透過 git 與團隊共享;憑證可使用 --use-env-refs,讓每位成員與每條 CI pipeline 使用自己的環境變數,repository 不必保存明文密碼。
dbcli 會把我的資料庫密碼交給 Agent 嗎?
不會。dbcli 透過連線設定隔離憑證,Agent 使用固定的 dbcli 命令,不需要讀取或回傳密碼。
它只能讀取資料嗎?
不是。可用操作取決於設定的權限層級;寫入工作流可先 dry-run 預覽,再由明確授權執行。
Plugin 和 skill --install 該選哪個?
支援 plugin marketplace 的 Agent 可優先選 Plugin,安裝與更新更集中;已全域安裝 dbcli,或偏好 repo/使用者層級指引時,使用 dbcli skill --install <platform>。
查詢出錯時,Agent 會自己亂試嗎?
工作流會先確認 schema。若帶有 recovery 的命令失敗,dbcli 會產生修復計畫,讓 Agent 查看並只套用安全的修復步驟。