如何让 AI 安全可控地查询生产库数据?

albin504 2026-07-28 16:31 1

在大公司办公网一般是不能直连生产数据库的,公司一般会搞一个数据库查询网站(简称 DMS 系统),开通权限后程序员可以在系统中执行 sql 查数据。
在 AI Coding 背景下,这种方式效率很低。纯手工拼写 sql ,涉及到分库分表、多步查询、数据分析的场景下非常低效。


我在想:是不是有安全可控的方案,比如搞一个数据库 mcp ,然后设置防护栏(如最大执行时间不超过 2s )、并对数据做脱敏的情况下,让 codex 这样的工具可以通过 mcp 执行数据查询。


最终效果:用 codex 打开代码仓库,下发指令“帮我查询用户 xxx 的什么数据”,AI 会基于代码生成 sql ,并调用 mcp 执行查询。 对于常用查询也可以封装一些 skills 加速执行速度。


不知道是否可行? 业界是如何解决之类问题的?

最新回复 (20)
  • samIIsun 07-28 16:37
    1
    开源的 archery+自开发了 mcp
  • zhongzhaoguo 07-28 16:39
    2
    Skills+MCP ,Skills 描述 MCP 的接口,如何获取表关系,MCP 接收执行,加一些权限限制。
  • AutumnVerse 07-28 16:42
    3
    我们线上数据也不能直接访问。但是我们有专门的后台,有单独的审计。因此可以跟 ai 说,数据库后台网址是 xxxx ,你用 chrome 打开查询 xxx 数据。

    ai 操作 chrome 打开后台地址,登录信息是用的研发自己的,危险 sql 没 dba 和研发 leader 审批他也执行不了
  • refear99 07-28 16:58
    4
    测试环境走不通流程,或者缺数据,说明是研发流程的问题,不是 ai 的问题;就好像有的公司,代码本地跑不起来,比需要去某个公共的远程开发服务器跑一样,本质上是懒
  • mouseman 07-28 17:11
    5
    skill 限制+只读权限账号
  • lujiaosama 07-28 17:40
    6
    只读权限账号好像也能搞出大件事出来吧
  • AkaGhost 07-28 19:05
    7
    只要 AI 能看到,它就敢给你都抖出去。
    只要 AI 能修改,它就敢给你全都删改。

    你只能外部限制,别指望 ai 自己有底线。
  • justseemore 07-28 19:08
    8
    6 生产数据扔 ai 数据泄露 就等着追责吧
  • kasusa 07-28 19:43
    9
    让 AI 生成查询语句,然后你自己来查。
  • kasusa 07-28 19:44
    10
    https://github.com/MingoZacwu/DataNexa 前段时间收藏了这个 MCP 好像符合你要求。
  • yinmin 07-28 19:46
    11
    建议让 ai 生成 sql ,然后自己用 sql 取数据。

    先把 create_table.sql 和 create_view.sql 保存在项目目录,然后把数据库类型和版本信息、数据库的表字段说明和 sql 文件路径发给 ai agent ,让 ai agent 写数据库项目文档。

    之后就可以直接提复杂需求给 ai agent ,ai 就能生成对应的 sql 语句了。

    如果你希望 agent 自动化访问数据库,大概率会涉及泄密,解决方式:要么 ai 本地化,要么让 ai 写程序-程序去取数据显示。
  • cellsyx 07-28 21:15
    12
    最多只能让 AI 接触测试数据库,让他帮你生成查询指令,然后你通过可信方式用生成的 sql 到生产库查询。
    如果让 AI 直接接入生产环境,先不说会不会搞出点事故,就算设置了只读账户可以正常查询,万一数据泄露怎么办?生产环境的数据脱敏放在哪里做,额外工作量有多少,有应急预案吗?

    总之我感觉这不是一个人能搞定的事情,除了方案落地还得要上级批准流程。但是上级大概率不会仅仅为了你的方便来背可能出现的数据泄露这口大锅,想推动这件事情必须有更正当的理由。
  • JasonYip 07-28 21:59
    13
    应该决不允许 ai agent 有任何 DML 和 DDL 权限吧 最多宁可让他看建表的 DDL 但是不能让他执行,太危险了
  • shmilypeter 07-28 22:02
    14
    如果你不能让 DBA 帮你开只读账号,十分奉劝你别省这个事儿,别拿自己工作开玩笑
  • shmilypeter 07-28 22:03
    15
    我一直让 AI 访问测试库,并且还把测试库的配置都集成到 skill 里,并且在 skill 里加了只允许查询的约束,但还是有一次 agent 突破边界直接给我插入数据了。
  • flyqie 07-28 23:02
    16
    问题是怎么做脱敏?

    这种脱敏方案不好做吧
  • skuuhui 07-29 09:33
    17
    没有大语言模型没留下的时候我就做过一个 chrome 插件。可以通过外部程序控制页面内容。
    你自己写 chrome 插件,暴露一个 mcp 。给 ai 调用。然后插件把 sql 塞到 dms 的那个 input 框里面。
  • changz 07-29 10:05
    18
    archery 二开加接口,权限和脱敏复用 archery 的能力就行,让运维结合业务场景做处理
  • killva4624 07-29 10:39
    19
    只要给 AI 账号和直连,AI 就会一定会思维发散;
    必须要用 MCP 或者接口服务来限制查询 SQL ,不要幻想。
  • cstj0505 07-29 11:25
    20
    @lujiaosama 当然可以,写个慢查询把 cpu,内存,io 都占了
* 帖子来源V2EX
返回