資料庫連線

讓你的代理查詢資料庫,
在你鬆口之前一直是隻讀

AgentsRoom 管理你的 MySQL 和 MariaDB 連線,並給你的 AI 程式設計代理一條對它們執行查詢的通道。預設只讀,一次一條語句,密碼始終夠不著。

能讀到真實資料行的代理,不必再對你的資料靠猜。寫不了這些資料的代理,也不必再讓你逐行盯著防風險。

SQL 客戶端
只讀
AgentsRoom
SELECT id, email, plan FROM users LIMIT 50
DELETE FROM users WHERE id = 42
已攔截:連線為只讀
SSH 隧道bastion.acme.dev
私有子網
有上限的結果集
經由你儲存的連線
每次呼叫一條語句密碼絕不離開應用

AgentsRoom 如何訪問私有子網裡的資料庫,並回應 AI 代理的只讀查詢。

看不到你資料的 AI 程式設計代理,只能照著自己想象的表結構寫程式碼。它會憑空造一個欄位,以為某個列舉有三個值而其實有七個,還會用一套理論而不是一行真實資料來解釋 bug。給它一個資料庫連線就能解決這些,而這同樣是把一個得力代理變成一場事故的最快途徑。AgentsRoom 正是圍繞這組張力設計的。

你像在任何 SQL 客戶端裡那樣,把 MySQL 和 MariaDB 連線儲存到應用裡:主機、埠、使用者、資料庫,伺服器需要時再加上 TLS。如果這個資料庫從公網訪問不到,連線會走 SSH 隧道或 AWS SSM 埠轉發會話,用的是你早已儲存在 AgentsRoom 裡的 SSH 和 SSM 連線。位於私有子網裡的資料庫就這樣變成了你能查詢的物件,而不必把它敞開給全世界。

每個連線一開始都是隻讀的。SELECT 能跑。會修改資料的語句跑不了,除非你先把那個連線改成可寫並確認這次操作。每次呼叫只接受一條語句,所以分號後面藏不下別的東西;結果集也設有上限,一條範圍過寬的查詢淹不了代理,也淹不了視窗。連線還可以標記為生產環境,這會讓確認沒那麼容易被誤點。

一個預設有代理在駕駛的 SQL 客戶端

MySQL 和 MariaDB,私有網路裡也夠得著,護欄預設開啟。

MySQL 和 MariaDB 連線

每個資料庫存一份連線:主機、埠、使用者、要開啟的資料庫,以及伺服器要求時的 TLS。你的本地資料庫、預發布資料庫和生產環境只讀副本都在同一個列表裡,選一下就好,不用重輸。

夠得著私有資料庫

私有子網裡的資料庫不是什麼特例。讓連線走 SSH 隧道或 AWS SSM 埠轉發會話,AgentsRoom 會替你開啟它,複用你早已儲存在應用裡的 SSH 和 SSM 連線。

預設只讀

新建的連線只能讀,別的都不行。查詢會返回資料行,會改動資料的語句會被拒絕。沒人需要記著去開啟安全模式,因為每個連線本來就從安全模式開始。

寫入之前兩道鎖

寫入需要兩次刻意的動作,不是一次。連線必須先被改成可寫,操作本身還得明確確認一次。一次不小心的點選,不會順勢連出一條沒有 WHERE 子句的 UPDATE。

每次呼叫一條語句

每次呼叫只帶一條語句。分號後面堆著的任何東西都會被拒絕而不是執行,所以一條看起來像讀的查詢,沒法順手夾帶第二條語句。在這之上,結果集還設有上限。

生產環境會被標記

把一個連線標記為生產環境,確認就會變嚴。要緊的那個資料庫不再和本地副本長得一模一樣,無論是對忙了一天的你,還是對正在逐條推進任務清單的代理。

代理查詢資料庫,卻從不掌握密碼

你的資料庫憑據由 AgentsRoom 保管,不會往外發。代理按名稱請求對某個連線執行一條查詢,應用開啟連線、執行語句、返回資料行。密碼從不屬於代理收到的內容,從不出現在它寫的查詢裡,也從不留在它儲存的對話中。

只讀規則是這件事的另一半,而且對代理來說,這不是一個它能靠嘴皮子繞過去的預設值。無論那個連線允許什麼,代理用來查詢的那個工具只接受讀,別的一律拒絕。把連線改成可寫,解鎖的是你在 SQL 控制檯裡的寫入:每一次都要一次明確確認,而當連線被標記為生產環境時,這次確認會被刻意做得更難給出。一個代理跑出一條糟糕查詢,最壞的結果仍然是一個錯誤答案,而不是一張丟掉的表。

單語句規則堵住了那個經典的口子。一次只帶一條語句的呼叫,沒法用一個分號再接上第二條,所以一條在評審裡讀起來人畜無害的查詢,執行時也做不出別的事。再加上有上限的結果集,一次失誤就還是一次失誤,不會變成一次資料匯出。

引擎支援範圍

目前只有 MySQL 和 MariaDB,沒有別的

AgentsRoom 裡的資料庫客戶端講的是 MySQL 通訊協議,而 MariaDB 與之相容,所以這兩者現在都支援:可以直連,伺服器從公網訪問不到時,也可以走 SSH 隧道或 AWS SSM 埠轉發會話。

PostgreSQL、MongoDB、SQL Server、SQLite 以及其他引擎都不支援。這件事你應該在下載之前就知道,而不是下載之後。下一個支援哪個引擎由大家提的需求決定,所以如果少了你要的那個,在公開待辦清單上說一聲,它就會被計進去。

申請你要的資料庫引擎

從一個私有資料庫到一個答案

儲存連線,配好路由,然後自己查,或者讓代理去查。

01

儲存連線

把資料庫加進來:主機、埠、使用者、資料庫名,伺服器需要時加上 TLS。起一個你日後認得出的名字,如果它就是生產環境,就把它標記出來。

02

如果是私有的,就配好路由

如果資料庫無法直連,就讓連線指向一條 SSH 隧道,或一個用你已儲存在 AgentsRoom 裡的連線搭起來的 AWS SSM 埠轉發會話。私有子網裡的資料庫就此變得可達,而不必把它對外暴露。

03

自己查,或者讓代理去查

在應用裡執行你的語句,或者讓代理經由 MCP 執行一條。在你改動之前一直是隻讀,每次呼叫一條語句,結果集有上限,任何寫入和你的資料之間都還隔著一次明確確認。

當代理需要真實資料行時

讀一眼生產資料反而是離修復最近的那些時刻。

對著真實資料除錯

這個 bug 只在少數幾個帳戶上出現。讓代理去讀那幾行資料,它就能找出讓邏輯崩掉的那個值,而不是丟擲三種關於資料可能長什麼樣的猜想。

一個不對外的資料庫

資料庫待在私有子網裡,沒有公網入口。讓連線走一條 SSH 隧道,或一個基於你已儲存連線搭起來的 AWS SSM 會話,不用對網際網路開埠就能查詢它。

讓代理去核實,而不是猜

在寫遷移或寫查詢之前,代理可以先看看實際存的是什麼。它讀,它彙報,而在此期間它始終沒有改動任何東西的能力。

碰生產環境,但沒有寫入風險

讀生產環境常常是必要的,任務進行到一半時寫生產環境幾乎從來不是。把連線標記為生產環境,讓它保持只讀,排查和搞砸之間的分界就不再取決於誰有沒有走神。

AI 代理 + SQL

我的代理怎麼查詢資料庫?

db_listdb_schemadb_querydb_connection_new

經由 AgentsRoom MCP,一共四個工具。db_list 返回你儲存的連線及其後設資料,db_schema 不用寫一行 SQL 就能逐層遍歷 schema、表和列,db_query 執行一條語句並返回資料行,db_connection_new 提議一個你還沒儲存的資料庫。AgentsRoom 負責開啟連線,包括擋在前面的 SSH 隧道或 AWS SSM 會話(如果有的話)。回到代理那裡的是一個結果集,絕不會是憑據。

無論連線允許什麼,db_query 都是隻讀的。把連線改成可寫,解鎖的是你在 SQL 控制檯裡的寫入:每一次都要明確確認,被標記為生產環境的連線還會把這件事說在明處。它不會為代理解鎖:db_query 的只讀規則長在桌面應用裡,不在 MCP 程序裡,所以哪怕代理被勸著去要別的東西,這條規則依然成立。跑一條 DROP 並不需要密碼,護欄因此長在語句上,而不只是長在憑據上。

登記一個資料庫同樣受這條限制。db_connection_new 開啟建立表單,用主機、使用者,以及它該經由哪個 SSH 或 AWS SSM 連線抵達預先填好,由你稽核、輸入密碼並儲存。在你動手之前什麼都不會被存下來。代理拿到了推理你資料所需的一切,而這種訪問通常演變成事故的那些路徑,它一條都用不上。

瞭解 AgentsRoom MCP

常見問題

支援哪些資料庫?

MySQL 和 MariaDB,也只有這兩個。客戶端講的是 MySQL 通訊協議,而 MariaDB 與之相容,所以兩者都能用:直連,或者走 SSH 隧道、AWS SSM 埠轉發會話。PostgreSQL、MongoDB、SQL Server、SQLite 以及其餘引擎目前都不支援。如果你需要其中某一個,到公開待辦清單上提出來:這份名單是跟著大家真實的需求增長的。

AI 代理能往我的資料庫裡寫嗎?

不能。代理用來查詢的那個 MCP 工具 db_query,無論連線允許什麼都是隻讀的:SELECT、SHOW、DESCRIBE、EXPLAIN 和 WITH 能過,任何會改動資料的語句都會被拒絕。把連線改成可寫,解鎖的是你在 SQL 控制檯裡的寫入,每一次都要明確確認,而不是為代理解鎖。護欄長在語句上,而不是長在密碼上,因為跑一條 DROP 並不需要密碼。

我怎麼訪問私有子網裡的資料庫?

讓連線走 SSH 隧道或 AWS SSM 埠轉發會話,用你早已儲存在 AgentsRoom 裡的 SSH 和 SSM 連線搭起來。應用會開啟隧道或會話並讓資料庫連線從中穿過,所以資料庫對公網始終不可達。

我的代理會看到資料庫密碼嗎?

不會。代理經由 MCP 指名一個連線來查詢。憑據由 AgentsRoom 保管,語句也由它自己執行,所以密碼從不返回給代理,從不寫進查詢,也從不成為對話的一部分。

代理能一次執行多條語句嗎?

不能。一次呼叫只帶一條語句。分號後面堆著的任何東西都會被拒絕而不是執行,這就去掉了最古老的那種手法:把寫操作藏在一個看起來像讀的東西里。

把連線標記為生產環境會帶來什麼變化?

寫入前所需的確認會變嚴。要緊的那個資料庫不再表現得像本地副本,這正是你忙了一天時想要的,而面對一個正在逐條推進任務清單的代理,你只會更想要。

如果一條查詢返回很多行會怎樣?

結果集設有上限。一條本會返回巨大表格的查詢會被截斷返回,而不是淹掉視窗或代理的上下文,所以一條範圍過寬的 SELECT 只是有點礙事,不會變成一次資料匯出。

代理能新增一個資料庫連線嗎?

它能提議,永遠不能儲存。db_connection_new 開啟建立表單,用主機、埠、使用者,以及這個資料庫該經由哪個 SSH 或 AWS SSM 連線抵達預先填好,由你稽核、輸入密碼並儲存。在你動手之前什麼都不會被存下來,憑據也從來不由代理提供。

代理怎麼了解我的資料庫結構?

靠 db_schema,它不用任何 SQL 就能瀏覽一個已儲存的連線。不帶引數呼叫時列出所有 schema,給它一個資料庫時列出表和檢視,給它一張表時返回各個列,以及它們的型別、是否可為空、鍵和預設值。這比讓代理手寫查詢去問 information_schema 更省也更安全。

你可能還喜歡

把資料給代理,把金鑰留給自己

下載 AgentsRoom,儲存你的 MySQL 和 MariaDB 連線,透過 SSH 隧道或 AWS SSM 會話訪問它們,讓你的代理以只讀方式查詢。

免費下載

配套應用:隨時隨地監控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

獲取擴充套件
Chrome Web Store

把 Bug 和需求直接傳送到您的公開待辦清單。

AgentsRoom 實際執行一瞥。

多專案管理
多供應商
多代理執行
實時狀態
檔案差異與提交
行動應用
實時預覽
代理團隊
瀏覽器自動化
Backlog 驅動開發
提示詞庫
技能庫
檢視所有功能