用 MCP 网关隔离代理的数据库凭据
开源项目 db-mcp-gateway 通过自托管网关连接 AI 代理与数据库,将凭据留在网关内,并清理日志和错误中的敏感信息。项目支持单容器部署、SSO 身份认证,并以访问控制和审计记录约束数据库访问。
原文暂未完整获取,基于公开信息的快读
开源项目 db-mcp-gateway 提供了一种让 AI 代理访问数据库的方案:由自托管网关保管连接凭据,代理通过 MCP 发起请求,再由网关执行身份认证、权限检查和查询记录。它支持单 Docker 容器部署,但凭据隔离是否足以保护生产数据,还需要拆开看。
目前能确认什么
按现有节选,数据库密码只保存在网关进程内,代理不会收到连接 URL 或密码,网关还会清理日志和错误消息中的凭据信息。支持的数据库后端包括 PostgreSQL 和 MongoDB。
身份认证接入 SSO(单点登录),登录在浏览器中完成。认证后,网关将用户映射到组,再应用对应授权。节选中的 YAML 示例限定了数据库、读取操作、schema 和返回行数,并要求提供查询理由。权限文件纳入版本控制,可以审查和追踪修改。
查询记录包含 SSO 用户、组、授权规则和时间戳,存入 PostgreSQL,并可通过 get_query_history 获取。作者将其描述为不可变、可发现篡改的审计记录,但节选没有展示具体保障机制。
我的判断
隔离凭据能减少连接信息泄露,却不能替代查询权限控制。
对接入生产库的程序员而言,关键问题是:代理遭到操控后,仍能借已有授权读取多少数据。schema 和行数限制有用,但行数上限不等于敏感字段保护;当前材料没有说明字段过滤、多次查询累计读取限制,以及读取权限如何强制执行。
权限配置进入 Git,能让授权修改接受代码审查,这是具体的工程价值。不过,还需要确认 SSO 身份如何绑定到每次 MCP 请求,以及权限撤销何时生效。
审计也要单独验证。记录存进 PostgreSQL,并不能自动证明记录不可修改;谁有修改权限、如何检测篡改、网关被攻破后记录是否可信,都还没说清。作者关于满足合规审查的表述,目前不能直接当作落地结论。