Date: 10/22/2026Category: GoWind风行Tag: Golang, Go-Kratos, GoWind, Ent, 多租户
本文回答一个问题:一条 SQL 都没手写的情况下,租户 A 的用户为什么绝不可能查到租户 B 的视频——连"漏一次"的机会都没有?
多租户隔离最常见的死法是应用层 WHERE:每个仓储方法都记得写 tenant_id = ?,直到某天一个新同事写的接口忘了——于是租户 B 拉到了租户 A 的数据,没有任何报错。GoWind ShortPlay 不信任任何人的记性:它把隔离下沉到 ORM 层(Ent 的 privacy 机制),查询根本到不了 SQL 就被拦下补条件或直接拒绝。全仓 51 张业务表的 schema 里没有一行手写的租户过滤代码,隔离却无处不在。
