• 请不要在回答技术问题时复制粘贴 AI 生成的内容
albin504
V2EX  ›  程序员

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

  •  
  •   albin504 · 11h 54m ago · 1205 views

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

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

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

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

    16 replies    2026-07-28 23:02:59 +08:00
    samIIsun
        1
    samIIsun  
       11h 48m ago
    开源的 archery+自开发了 mcp
    zhongzhaoguo
        2
    zhongzhaoguo  
       11h 46m ago
    Skills+MCP ,Skills 描述 MCP 的接口,如何获取表关系,MCP 接收执行,加一些权限限制。
    AutumnVerse
        3
    AutumnVerse  
       11h 43m ago via iPhone
    我们线上数据也不能直接访问。但是我们有专门的后台,有单独的审计。因此可以跟 ai 说,数据库后台网址是 xxxx ,你用 chrome 打开查询 xxx 数据。

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

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

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

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

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

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

    这种脱敏方案不好做吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   940 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 20:26 · PVG 04:26 · LAX 13:26 · JFK 16:26
    ♥ Do have faith in what you're doing.