你的 Cloud SQL 執行個體沒有公網 IP。
按名字夠到它,不用堡壘機 VM。
開啟連線時,AgentsRoom 會啟動 Cloud SQL Auth Proxy,並讓自己的資料庫客戶端從中穿過。你只需給出執行個體連線名 project:region:instance,或者從你自己的 gcloud 登入能看到的列表裡挑一個。
代理由你的 Application Default Credentials(應用預設憑證)授權,所以 AgentsRoom 不儲存任何服務帳號金鑰。啟用 IAM 資料庫身份驗證後,連資料庫密碼也不需要。而且 AI 程式設計代理也能以唯讀方式查詢同一個執行個體。
AgentsRoom 如何經由 Cloud SQL Auth Proxy 訪問私有 IP 上的 Cloud SQL 執行個體,而應用這一側什麼都不儲存。
只有私有 IP 的 Cloud SQL 執行個體,是正確的配置,也是彆扭的配置。資料庫待在你的 VPC 裡,公網 IP 是關著的,能夠到它的只有那張網路內部的機器。然後,為了一個 bug,你需要在筆記本上看三行資料。
Google 早就給出了答案:Cloud SQL Auth Proxy。它向執行個體開啟一條加密連線,授權靠的是你的 Google 身份,而不是 IP 白名單,並把它暴露成一個本地埠。真正的麻煩在它周圍的一切:要安裝它,要記住執行個體連線名,要在開啟客戶端之前先在終端裡啟動它,用完之後還常常忘了關。
這一部分由 AgentsRoom 來做。在資料庫連線的「經由」欄位裡選 Google Cloud SQL,填上執行個體,需要的話勾選「私有 IP」或「IAM 資料庫身份驗證」,從此開啟那個資料庫就是一次點選的事。代理隨連線啟動,也隨連線停止。
繞開它的那些常規辦法,每一種都要你付出代價
同一個問題的三種答案,以及它們各自向你收取的費用。
專為此事而設的堡壘機 VM
一台開著 SSH 埠的 Compute Engine VM,只為了偶爾有人要隧道連到資料庫,就一直留在 VPC 裡。它要打補丁,每小時都在花錢,它的 SSH 金鑰和防火牆規則還會隨著團隊人員變動而逐漸失真。
公網 IP 加白名單
開啟公網 IP,再把你家的地址加進授權網路,在地址變掉之前都管用,而這期間資料庫一直在網際網路上監聽。這種例外,從來沒人真的去撤銷。
放在筆記本上的服務帳號金鑰
為了跑代理而下載一份 JSON 金鑰,是人人事後都後悔的捷徑:一份長期有效的憑證躺在下載資料夾裡,被複制進腳本和提示詞,沒人輪換,也沒人能追蹤。
從一個私有 Cloud SQL 執行個體到一份結果集
四個步驟,做一次就夠,之後就是一次點選的事。
用 gcloud 登入一次
在你的機器上執行 gcloud auth application-default login。它建立的 Application Default Credentials(應用預設憑證)就是代理訪問執行個體時使用的憑證。AgentsRoom 既不讀取其中任何內容,也不儲存。
在「經由」裡選好執行個體
新建一個 MySQL 或 PostgreSQL 連線,在「經由」裡選 Google Cloud SQL。輸入執行個體連線名 project:region:instance,或者點「列出我的執行個體」,從你的 gcloud 登入能看到的執行個體裡挑一個。主機和埠欄位會消失:執行個體本身就是地址。
選好私有 IP 和 IAM 身份驗證
執行個體沒有公網地址、而你的機器透過 VPN 或 Interconnect 能到達它的 VPC 時,勾選「私有 IP」。想用你的 Google 身份登入,就勾選「IAM 資料庫身份驗證」:密碼欄位會消失,使用者就是你的 IAM 資料庫使用者。
自己查,或者讓代理去查
開啟連線時,會預留一個空閒的迴環埠,在其上啟動 cloud-sql-proxy,並一直等到它接受 TCP 連線。主控台像連線其他任何連線一樣連到 127.0.0.1,AI 代理也可以經由 MCP 以唯讀方式查詢它。關閉連線時,代理也隨之停止。
AgentsRoom 啟動的那條命令
這裡沒有重新實現任何東西。AgentsRoom 把 Google 自己的 cloud-sql-proxy 二進位制檔案(2 版)作為子程序執行,引數直接傳入而不經過 shell。如果你曾經手動啟動過代理,這就是你早已認得的那一行。
cloud-sql-proxy acme-prod:europe-west1:orders \
--address 127.0.0.1 --port 54321 \
--private-ip \
--auto-iam-authn執行個體和兩個選項都來自你儲存的連線。本地埠則在開啟時由作業系統挑選。
代理會先接受本地連線,再去檢查別的,出了問題就斷開它並把原因寫進日誌。AgentsRoom 會讀取這份日誌,告訴你真正的原因:代理沒有安裝,你的 gcloud 登入已經過期(並附上該執行的命令),你的帳號缺少 Cloud SQL Client 角色,執行個體沒有私有 IP,或者執行個體名寫錯了。
它跑起來之前,有哪些條件必須成立
AgentsRoom 驅動你既有的 Google Cloud 配置,而不是取代它。這些條件,和代理單獨使用時所需要的完全一樣。
你機器上的 cloud-sql-proxy
Cloud SQL Auth Proxy 的 2 版,位於你的 PATH 中。最快的辦法是 gcloud components install cloud-sql-proxy;Google 也提供獨立下載。如果找不到它,AgentsRoom 會明說,並給出該執行的命令。
Application Default Credentials
執行一次 gcloud auth application-default login 即可。這個登入過期時,錯誤資訊會告訴你重新執行它,而不是只給你看一個關閉的套接字。
Cloud SQL Client 角色
你的 Google 帳號需要在執行個體所屬專案裡擁有 Cloud SQL Client 角色,並且該專案裡要啟用 Cloud SQL Admin API。IAM 資料庫身份驗證還需要 Cloud SQL Instance User 角色,以及執行個體上的一個 IAM 使用者。
用於下拉選單的 gcloud
「列出我的執行個體」會在你當前啟用的專案裡,或者你剛開始輸入的那個專案裡執行 gcloud sql instances list。沒有 gcloud 也行,手動輸入連線名即可。
通往 VPC 的路徑,供私有 IP 使用
使用私有 IP,意味著你的機器本身必須能到達執行個體所在的 VPC,途徑可以是 VPN、Interconnect,或者網路內部的某台機器。沒有這條路徑時,請關掉「私有 IP」,改用公網 IP,並依靠代理的加密。
代理做什麼,又拒絕做什麼
這些性質決定了:把它配置好留在筆記本上,是否安全。
僅限迴環
代理只監聽 127.0.0.1,別的都不聽。資料庫絕不會被重新發布到區域網上,所以咖啡館的 Wi-Fi 不會變成通往正式環境的路。
由作業系統挑選的埠
AgentsRoom 向作業系統要一個空閒埠,並把它交給代理。不用記固定埠,也不會和你手動啟動的另一個代理衝突。
就緒就是真就緒
只有在本地埠接受 TCP 之後,連線才會開啟,而一啟動就退出的代理,會如實報告它列印出的原因。沒有隨便的 sleep,也不會有客戶端連得太早。
不存金鑰
代理由你的 Application Default Credentials 授權。AgentsRoom 儲存的是執行個體連線名和兩個選項,其中沒有任何一項是憑證,服務帳號金鑰也從不接觸應用。
資料庫保持唯讀
資料庫連線在建立時是唯讀的。要寫入,必須先把該連線設為可寫並明確確認,而在標記為正式環境的連線上,這個確認會更醒目。
每次呼叫一條陳述式
每次呼叫只攜帶一條陳述式,所以分號後面藏不了任何東西;結果集也有上限,寬泛的查詢不會把視窗或代理的上下文撐爆。
為什麼這意味著更少的訪問,而不是更多
執行個體這一側什麼都不用開。公網 IP 可以繼續關著,不用往授權網路里加任何網路,也不用為了偶爾一次查詢,讓一台開著 SSH 埠的 VM 一直活著。代理對到執行個體的連線做端到端加密。
授權仍然留在你的組織管理它的地方:你的 Google 身份及其 IAM 角色。授予該身份的訪問,會和其他任何 Cloud SQL 連線一樣被記錄,並且在角色被移除的那天結束。AgentsRoom 儲存的是執行個體名、「私有 IP」的選擇和 IAM 的選擇,僅此而已,沒有任何東西能被讀到它們的人拿去重放。
資料庫一側的防護欄,和每一個 AgentsRoom 連線得到的一樣:預設唯讀,每次呼叫一條陳述式,結果集有上限,以及一個會讓寫入確認更嚴格的正式環境標記。經由 MCP 查詢的 AI 代理拿到的是結果集,而不是憑證;除非你把該連線設為可寫,併為它開啟「允許代理寫入」,否則它無法寫入。
支援 MySQL 和 PostgreSQL,暫不支援 SQL Server
Cloud SQL 可以執行 MySQL、PostgreSQL 和 SQL Server。AgentsRoom 能經由代理訪問前兩種,目前還沒有 SQL Server 客戶端。自帶專用代理的 AlloyDB 同樣不在支援範圍內。
下一個支援哪種引擎或服務,取決於大家提出的需求。如果你用的那個不在其中,請在公開待辦裡說一聲是哪一個,我們會把它計入。
申請你的資料庫引擎代理也能查詢它,唯讀
連線建好之後,AI 程式設計代理經由 AgentsRoom MCP 只需說出連線名即可使用:db_list,db_schema 用來遍歷表和列,db_query 用來執行一條行數有上限的陳述式。代理也可以自己註冊一個 Cloud SQL 連線,用 db_connection_new 或 db_connection_save,給出執行個體連線名即可。
代理提出請求時,由 AgentsRoom 自己啟動代理程序,所以代理永遠不用接觸 Google 憑證、資料庫密碼或埠號。傳回去的只有結果集。寫入需要一個可寫的連線,以及預設關閉的「允許代理寫入」設定。
一個針對正式環境副本做除錯的代理,讀到的是能解釋這個 bug 的那幾行資料:沒有會洩漏進它上下文的憑證,應用一關閉,也沒有任何通往資料庫的路徑。
常見問題
怎樣連線一個只有私有 IP 的 Cloud SQL 執行個體?
新建一個 MySQL 或 PostgreSQL 連線,在「經由」裡選 Google Cloud SQL,填上執行個體連線名並勾選「私有 IP」。AgentsRoom 會帶上 --private-ip,在一個迴環埠上啟動 Cloud SQL Auth Proxy,並讓客戶端連到它。你的機器必須能到達執行個體所在的 VPC,例如透過 VPN 或 Interconnect。
AgentsRoom 會儲存服務帳號金鑰嗎?
不會。代理由 gcloud auth application-default login 在你的機器上建立的 Application Default Credentials 授權。AgentsRoom 儲存的是執行個體連線名和兩個選項,其中沒有任何一項是憑證。
可以不用資料庫密碼來連線嗎?
可以,使用 IAM 資料庫身份驗證。在連線裡勾選它,代理就會帶著 --auto-iam-authn 執行,用你的 Google 身份登入,密碼欄位隨之消失,使用者就是你的 IAM 資料庫使用者。執行個體必須已啟用 IAM 身份驗證,並且已建立該使用者。
需要安裝什麼?
Cloud SQL Auth Proxy 2 版(gcloud components install cloud-sql-proxy,或 Google 的獨立下載),以及用於 Application Default Credentials 的 gcloud 登入。gcloud 本身只有「列出我的執行個體」按鈕才需要。
gcloud 登入過期會怎樣?
代理會拒絕連線並把原因寫進日誌。AgentsRoom 讀取這份日誌,顯示一條通俗的提示,告訴你執行 gcloud auth application-default login,而不是丟給你一個乾巴巴的連線錯誤。然後重試即可。
用的是哪個本地埠,誰能訪問到它?
連線開啟時由作業系統挑一個空閒埠,而代理只監聽 127.0.0.1。區域網裡的任何裝置都夠不到它,連線關閉或應用退出時,代理也隨之停止。
支援哪些 Cloud SQL 引擎?
Cloud SQL for MySQL 和 Cloud SQL for PostgreSQL。Cloud SQL for SQL Server 暫不支援,因為 AgentsRoom 還沒有 SQL Server 客戶端;請在公開待辦裡提出,我們會把它計入。
能在 Windows 和 Linux 上用嗎?
能。cloud-sql-proxy 在 macOS、Windows 和 Linux 上都是原生二進位制檔案,AgentsRoom 在這三個系統上以同樣的方式啟動它。手機應用會列出同樣的連線,並經由你的桌面版以唯讀方式查詢它們。
AI 代理可以經由代理程序查詢資料庫嗎?
可以,預設唯讀。代理經由 AgentsRoom MCP 按名字指定一個已儲存的連線,由應用啟動代理程序並自己執行陳述式,傳回去的只有結果集。AI 代理從不會拿到 Google 憑證或資料庫密碼,而且除非該連線可寫、並且你為它開啟了「允許代理寫入」,否則 db_query 會拒絕任何非讀取的操作。
你可能還喜歡
資料庫連線
儲存你的 MySQL、PostgreSQL 和 MongoDB 連線,透過 SSH 隧道或 AWS SSM 會話訪問私有子網裡的資料庫,讓你的 AI 代理經由 MCP 查詢它。預設唯讀,每次呼叫一條陳述式,結果集有上限,密碼永遠到不了代理手裡。匯出、匯入以及資料庫之間的直接複製也都包含在內。
經由 AWS SSM 訪問 RDS
從你自己的機器出發,經由 aws ssm start-session 和 AWS-StartPortForwardingSessionToRemoteHost 文件,訪問一個沒有公網端點的 Amazon RDS 執行個體。沒有堡壘機要維護,不用 VPN,也不用開放入站 SSH 規則。AgentsRoom 在一個迴環埠上開啟會話,並讓資料庫客戶端從中穿過。支援 MySQL、PostgreSQL 和 MongoDB,也就是 RDS MySQL、RDS PostgreSQL、Aurora 以及 DocumentDB。
金鑰管理器
把 API 金鑰、令牌和密碼存進作業系統鑰匙串,在開發命令和代理環境裡用 {{secret:NAME}} 引用,交給 AgentsRoom 在啟動時解析。代理只看得到名稱,看不到值,任何內容都不會同步到伺服器。
SSH 連線
儲存你的 SSH 連線,透過 SSH 開啟內建終端,直接在遠端伺服器或 VPS 上執行 Claude Code、Codex 或 Antigravity CLI。支援 SSH 金鑰或密碼認證,按專案管理連線配置,無需額外的 SSH 客戶端。
查詢你的私有 Cloud SQL 執行個體
下載 AgentsRoom,選好你的 Cloud SQL 執行個體,用你自己的 gcloud 登入,經由 Cloud SQL Auth Proxy 查詢它:不用堡壘機 VM,沒有公網 IP,磁碟上也沒有金鑰。
配套應用:隨時隨地監控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接傳送到您的公開待辦清單。