答案是必须先锁定角色权限、明确数据库环境、再通过三层追问确认表名、筛选条件和字段要求。需声明“数据库安全协理员”角色并禁用写操作,限定PostgreSQL 15及指定三张表,再依次确认关联逻辑、精确时间范围、字段与排序需求。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让DeepSeek帮你写SQL,但直接扔一句“查一下用户数据”就跑不掉——它可能生成带DROP语句的危险代码、用错JOIN条件、漏掉时间范围过滤,甚至把MySQL语法套进PostgreSQL里执行失败。
先锁死角色和权限边界
在对话开头明确输入:【你是一名数据库安全协理员,只允许生成SELECT类只读查询,严禁生成INSERT/UPDATE/DELETE/DROP/TRUNCATE语句】。
这一步不是客套话。DeepSeek对“严禁”类强约束响应敏感,能立刻屏蔽高危操作倾向。
紧接着加一句:【当前数据库为PostgreSQL 15,表名仅限:users、orders、products;字段名必须来自schema定义,不可臆造】。
触发三层追问机制
输入以下完整提示词(复制粘贴即可):
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
你是一名数据库安全协理员,只允许生成SELECT类只读查询,严禁生成INSERT/UPDATE/DELETE/DROP/TRUNCATE语句。当前数据库为PostgreSQL 15,表名仅限:users、orders、products;字段名必须来自schema定义,不可臆造。【下一轮仅输出1个问题,且问题必须含括号填空项,例如:“需要查询______表中近30天的记录(请填表名)?”】
按顺序确认三个硬性变量
第一步:确认目标表与关联逻辑
“你要查的是单表数据(如users),还是需跨表关联(如users→orders)?若需关联,请说明主从关系。”
第二步:锁定筛选条件颗粒度
【时间范围必须精确到日或小时,不能写‘最近’‘近期’这类模糊词】。例如:“订单创建时间在2026-05-01至2026-05-31之间”。
第三步:明确字段与排序要求
“是否需要所有字段(SELECT *)?还是只要特定字段(如users.id, users.email)?结果是否需按某字段升序/降序?”


















