安全 · 2026 年 7 月 1 日 · 8 分钟
密码、证件、手机:结果里不该出现的列
公开抽样要点写着脱敏。问数结果是给人看的表,不是给系统迁移的管道。密码、证件、手机、邮箱、地址,默认不出现在 SELECT 列表。需要明文,那是另一件事,要另一张许可证。
名单写死
phone、id_card、email、password、address 默认排除。
聚合也不能当借口
把手机号 GROUP BY 仍然是在看手机号。
抽样尤其危险
最近订单抽样最容易带出真人。列清单要先过脱敏。
一次完整的问法可以先写成下面这样:
看最近订单形态,不要手机号。
落到语句上,草稿常常是:
SELECT order_id, pay_time, city, pay_amount, pay_status
FROM orders
ORDER BY pay_time DESC
LIMIT 20;
少一列不会让问数变笨。多一列却会让一次练习变成事故。
安全是前置条件,不是附录提醒
公开落地把只读、限行、限时、脱敏、权限前置、审计写成清单。个人问数同样适用。权限写进谓词和账号,不写进「请注意」四个字。先查出结果再删敏感行,算泄露。
用户原话不要拼进语句。城市走白名单,时间自己算成起止。练习库和生产库两套连接,写在不同文件里。生产默认拒绝探索,没有卡片编号就不跑。
痕迹要留:问题原文、最终语句、返回行数。没有痕迹的漂亮数字,出了事无法复盘。安全看起来胆小。问数里,胆大和改数据只隔着一个分号。
读完这一辑可以做什么
给自己的练习账号取消一切写权限。把手机号、证件、邮箱从 SELECT 默认列表里拿掉。做完这两件,再谈下一次提问。
少一列不会让问数变笨。多一列可能让练习变成事故。