你的 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 和需求直接发送到您的公开待办清单。