用途:在 Supabase 项目中落地 GDPR 与 CCPA 合规,覆盖数据隔离、删除权、数据访问请求(DSAR)、PII 审计、自动留存与备份恢复。每项要求对应真实的 SDK 方法或 PostgreSQL 特性。
主要能力:用行级安全(RLS)按租户隔离数据;标记和登记 PII 列;以 SDK 正则扫描邮箱、电话、SSN、IP;按级联顺序执行用户删除并写入不可变审计日志;构建用户数据导出;用 pg_cron 做留存策略;用 pg_dump/pg_restore 和时间点恢复做备份还原。
必要用法:需要 @supabase/supabase-js v2+ 及 service role key 执行管理操作;pg_cron 与时间点恢复需 Pro 计划;通过 SQL Editor 或 psql 改结构。RLS 示例:ALTER TABLE public.profiles ENABLE ROW LEVEL SECURITY; CREATE POLICY "users_read_own_profile" ON public.profiles FOR SELECT USING (auth.uid() = id); 删除时先清应用表、再删存储文件、最后调用 await supabase.auth.admin.deleteUser(userId); 并写入 gdpr_audit_log。pg_dump 须用直连(端口 5432)而非连接池(6543)。
适用场景:处理删除请求、响应 DSAR、审计数据库 PII、配置留存、设置租户隔离、规划备份还原。
限制:需 Pro 计划才能用 pg_cron 和时间点恢复;管理员操作必须使用 service role key 绕过 RLS;删除需按级联顺序或设置 ON DELETE CASCADE;审计写入需 SECURITY DEFINER 函数或 service role;部分实现细节需参考原文引用文件,本资料未展开完整代码。