大家好,我是小耶,写功课只是为了我踩过的坑,你们别再踩了!
“数据不出库”这四个字,听起来像是安全问题的终局答案。数据不离开数据库,泄露风险自然消失,合规问题自然解决。
但做过安全审计的人知道,事情没有这么简单。数据在库里,不等于权限在正确的人手里,不等于审计能追溯到每一次访问,不等于AI不会用它不该用的方式查它不该查的东西。
AI Agent的访问模式和传统DBA有本质区别。人类DBA的SQL是手写的、结构相对固定、会话长、权限边界清晰;AI Agent的SQL是动态生成的,查询可能嵌套复杂、批量读取大量上下文,而且很难从SQL本身区分“正常推理”和“恶意指令” ——一条全表扫描可能是在做数据分析,也可能是在为数据外泄做准备。
金仓在发布会中将“库内生安全管控”列为KES AI数据库的三大核心能力之一,和库内语义构建、库内计算推理并列。它的工程逻辑值得拆开看:安全不是“数据不出库”一个口号,是一组可落地的机制组合。
一、MCP协议隔离层:AI永远不持有数据库凭据
库内生安全的第一道工程边界,不在数据库内核里,而在AI与数据库之间的协议层。
传统做法中,AI应用往往直接持有数据库连接凭据(用户名/密码或Token),然后执行模型生成的SQL。这意味着:AI拥有数据库账号的完整权限。一旦模型被提示注入、或者生成了危险的DDL/DML,数据库层面没有任何中间层可以拦截——权限裁决发生在SQL到达数据库之后,而不是之前。
金仓的路径是引入MCP(Model Context Protocol) 作为隔离层。MCP Server位于AI客户端和KingbaseES之间,AI客户端不持有数据库凭据,只传递查询意图;MCP Server完成SQL校验和权限预判后,才将合规的请求转发给数据库执行。
这层设计的核心价值不是“多了一个组件”,而是权限裁决的位置前移了。AI的每一次请求都要经过MCP Server的过滤,而不是直接落在数据库上。KingbaseES仍然是最终权限裁决者,但MCP Server在请求到达数据库之前,已经做了一轮SQL类型白名单校验和风险分级。
二、行级控制与语义审计:让每一次AI访问可追溯
“数据不出库”之后,审计的颗粒度必须比传统模式更细。
传统审计记录的是账号+SQL+时间。但在AI场景下,同一个MCP Server可能服务多个Agent、多个用户、多种任务,单靠账号无法区分“谁让AI查的、为什么查、查了哪些行”。
金仓的库内生安全管控将行级访问控制与审计绑定:权限不仅决定“能不能查这张表”,还决定“能查哪些行”;审计不仅记录SQL,还记录语义上下文——这次查询属于哪个业务场景、由哪个Agent发起、命中了哪些敏感数据标签。
在AI Agent“查询风暴”的场景下,这种颗粒度是必要的:一个Agent可能在一次推理中发起几十条查询,每条查询单独看都合规,但组合起来可能构成敏感数据的批量提取。语义审计的价值在于识别查询序列的模式,而不仅是单条SQL的合规性。
三、全链路输出校验:拦住AI的“最后一公里”风险
即使权限和审计都到位,AI生成的输出仍然是一个风险点。
大模型可能基于合规的查询结果,生成带有误导性、越界结论的回答。金仓KES AI数据库构建了全链路LLM输出校验机制:“生成-校验-分级-输出”的闭环,对模型输出做风险分级,高风险内容在输出给用户之前被拦截或标注。
这层机制解决的是AI安全中一个容易被低估的问题:数据没泄露,但模型基于数据做出了不该做的结论。在金融风控、医疗诊断、政务决策场景下,这种风险的实际影响可能比数据泄露更隐蔽。
四、边界:“数据不出库”之后仍然需要回答的三个问题
库内生安全管控解决了“数据不离开数据库”这一层,但它不是安全的全部。
第一个问题:MCP Server本身的安全怎么保证? 如果MCP Server被攻破或配置错误,隔离层就形同虚设。MCP Server的最小权限配置、独立部署、访问控制,是这套架构的前置条件。
第二个问题:AI的权限边界由谁定义? 库内机制提供了执行边界,但“AI能查哪些数据、能执行哪些操作”的业务决策,仍然需要人来制定。默认关闭高危操作(DDL、大批量DML),是工程上务实的起点。
第三个问题:审计日志本身的完整性和防篡改。 如果审计日志可以被绕过或篡改,可追溯性就是空话。这一点在传统数据库安全中已经被反复讨论,在AI场景下同样成立。
五、小结
“数据不出库”是一个必要条件,不是充分条件。AI Agent的访问模式——动态SQL、批量上下文、难以区分推理与恶意——要求安全机制从“边界防御”下沉到“内核管控”。金仓的库内生安全管控用MCP协议隔离层把权限裁决前移,用行级控制和语义审计让每一次AI访问可追溯,用全链路输出校验拦住模型输出的“最后一公里”风险。但MCP Server自身的安全、AI权限的业务定义、审计日志的完整性,仍然是“数据不出库”之后必须持续回答的问题。安全不是一个开关,是一组持续运行的机制。
小耶在手,SQL 不愁
还有什么想了解的,欢迎留言!小耶一定知无不言言无不尽……我们下次见~