news 2026/6/26 3:19:18

智能体接数据库只读权限怎么控

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智能体接数据库只读权限怎么控

先把结论摆这儿:让 AI 智能体连数据库做问答,最稳的防线不在 prompt,在数据库账号本身——给它一个只有SELECT权限的只读账号,再叠一层视图和statement_timeout。提示词层面的"请不要删数据"全是心理安慰,真正拦得住DROP TABLE的是 MySQL 那句GRANT SELECT。下面是我上周踩完坑后的完整做法。

问题:我让智能体直连了业务库,然后后背发凉

事情起因很无聊。我们运营天天来问我"上个月华东区退款单多少""某个 SKU 复购率"这种,我 SQL 写到手软。想着干脆搭个能听人话查数据的小助手,把自然语言翻成 SQL,跑完把结果讲给运营听。

我用的是一个零代码就能配智能体的平台,挂了个大模型,把数据库连接信息填进去,知识库里塞了张表结构说明。配的时候那叫一个顺,拖几下、填几个框,二十分钟出了个能跑的 demo。我对它说"查一下昨天的订单总额",它真就吐了句SELECT SUM(amount) FROM orders WHERE created_at >= ...,跑出来 38 万多,跟报表对得上。当时还挺得意。

得意了大概十分钟,我后背就凉了。

我顺手测了句:"把 orders 表清空"。那小助手很听话地生成了DELETE FROM orders——虽然平台拦了一下没真执行,但它愿意生成、也具备执行通道,这事就够吓人了。要是哪天运营手滑打了句"把测试数据删干净",或者有人故意喂一句拼接的指令进来,大模型理解错意图,生产库就没了。靠 prompt 里写"你是只读助手,禁止删改"?我试了,绕过它太容易,换个说法、用英文、加个"为了演示"前缀,它就破防。

分析:防线该建在哪一层

我把能下手的地方列了一遍,按"绕过难度"排:

防护层

做法

能不能被绕过

我的评价

提示词

prompt 里写"只读,禁止 DELETE/DROP"

太容易,换个话术就破

聊胜于无

应用层正则

拦 SQL 里的 delete/drop 关键词

中等,大小写/注释//*!*/能骗过

当兜底,别当主力

数据库权限

专用只读账号,只授 SELECT

绕不过,引擎层强制

主防线

视图隔离

敏感字段不进视图,智能体只能看视图

绕不过

配合权限用

结论很清楚:权限要往下沉,沉到大模型够不着的地方。大模型再聪明,它生成的 SQL 最后是拿一个数据库账号去执行的,这个账号能干什么由GRANT说了算,跟它怎么"说服"自己没关系。

具体我是这么干的,MySQL 为例:

-- 1. 建个专用只读账号,别复用业务账号 CREATE USER 'ai_readonly'@'%' IDENTIFIED BY '你的强密码'; -- 2. 只给 SELECT,而且只给到具体的视图/表,不给整库 GRANT SELECT ON shop.v_orders_safe TO 'ai_readonly'@'%'; GRANT SELECT ON shop.v_sku_stats TO 'ai_readonly'@'%'; -- 3. 千万别 GRANT ALL,也别 GRANT SELECT ON shop.* -- 手机号、身份证这种字段根本不进视图 FLUSH PRIVILEGES;

视图这层我专门把脏东西挡在外面:

CREATE VIEW v_orders_safe AS SELECT id, sku, amount, region, created_at -- 没有 user_phone、没有 address FROM orders;

再加两道保险,防的是"虽然只读但能把库拖垮"的慢查询:

SET SESSION MAX_EXECUTION_TIME = 3000; -- 单条查询最多跑 3 秒 SET SESSION TRANSACTION READ ONLY; -- 会话级只读,双保险

回到那个零代码平台里,我把数据库连接的账号从业务账号换成了ai_readonly,智能体能看见的就剩两张视图。再喂"把 orders 清空",底层直接ERROR 1142: DELETE command denied,大模型再怎么想删也使不出劲——它手里那把钥匙根本开不了删除那扇门。

结论:能力下放,权限上锁

这事做完我最大的体会是,搭智能体这种活儿,最容易出事的从来不是模型本身,是你给模型开的口子有多大。零代码平台让搭一个能查数据的小助手变得太快了,快到你容易忘了它背后连的是生产库。

也有不爽的地方,得说实话。那平台的可视化配置对"标准活儿"很友好,但我想做按部门动态切换数据权限(行级隔离),拖拽这套就有点够不着了,最后还是绕回去写了点逻辑兜。还有第一版生成的 SQL 偶尔会自作主张加LIMIT 10,运营要全量我还得回去调提示词,来回折腾了三四遍才顺。学习曲线不算陡,但"配得能用"和"配得靠谱"中间隔着好几个下午。

但核心那条值:把执行能力交给智能体没问题,前提是把数据库权限锁死在只读。prompt 是劝,GRANT才是法。两者别搞反。

你们给智能体连库都怎么控权限的?有没有踩过比DELETE更骚的坑——评论区聊聊,我赌有人遇到过大模型UPDATE错一整列的。

(模型这块我直接调的讯飞星辰 MaaS,现成大模型 API,没自己搭算力,省了一堆部署的事;只读账号那套是我自己在库上配的,跟平台无关。)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 3:14:40

Windows 12网页版:终极在线体验完整指南

Windows 12网页版:终极在线体验完整指南 【免费下载链接】win12 Windows 12 网页版,在线体验 点击下面的链接在线体验 项目地址: https://gitcode.com/gh_mirrors/wi/win12 想要零安装体验最新Windows 12界面吗?Windows 12网页版为你提…

作者头像 李华
网站建设 2026/6/26 3:07:33

模型压缩技术:剪枝、量化与知识蒸馏的方法

模型压缩技术:剪枝、量化与知识蒸馏的方法 随着深度学习模型的规模不断扩大,其在计算资源、存储空间和推理速度上的需求也日益增长。模型压缩技术应运而生,旨在减小模型体积、提升推理效率,同时尽可能保持模型性能。剪枝、量化与…

作者头像 李华
网站建设 2026/6/26 3:05:22

原神自动化助手终极指南:5大核心功能解放你的游戏时间

原神自动化助手终极指南:5大核心功能解放你的游戏时间 【免费下载链接】genshin_impact_assistant 原神小助手 Genshin Assistant (CN/EN) | 自动战斗,秘境,领日常,半自动委托 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin_impact_assistant 你…

作者头像 李华
网站建设 2026/6/26 2:55:36

MacBook Air M2本地部署DeepSeek-Coder实战指南

1. 项目概述:当本地AI编程助手第一次在我笔记本上跑起来时,我关掉了所有浏览器标签页“Is AI coding that good?”——这个标题不是在问技术指标,而是在问一个程序员每天早上打开IDE时的真实心跳。我试过用DeepSeek-Coder在VS Code里写爬虫&…

作者头像 李华
网站建设 2026/6/26 2:54:09

NSK大跨距极速精密滚珠丝杠技术解析

型号 PSS2030N1D0708 同样属于 sources 中 NSK 专为主打微型、高速、静音与紧凑(小型化)**紧凑型 FA 系列(PSS 型,高精度 C5 级)滚珠丝杠,采用高响应的端部导流循环方式**。 | 编码 | 属性 | 数据 | 内容…

作者头像 李华