用途:针对 Supabase 的 Row Level Security(RLS)策略提供自动化测试框架,在进入生产环境前发现安全漏洞,覆盖用户隔离、多租户隔离、基于角色的访问控制与匿名用户限制,并审计策略覆盖情况。
主要能力: 用户隔离测试:验证用户只能访问自己的数据,无法读取、修改或删除他人数据,插入数据必须归属自己,null user_id 会被拒绝。 多租户隔离测试:验证组织/团队数据分离,非成员无法访问组织数据,移除成员后访问立即失效,共享资源遵循组织边界。 角色权限测试:验证 admin/editor/viewer 等角色层级,防止权限提升,角色变更立即生效。 匿名访问测试:验证匿名用户只能访问指定公开数据,auth.uid() 对匿名用户正确返回 null,策略安全处理 null。 RLS 覆盖审计:检查所有公共 schema 表是否启用 RLS、各 DML 操作是否有策略、策略目标角色是否合适、是否存在意外暴露的表。 完整测试套件:按顺序运行覆盖审计、用户隔离、多租户隔离、角色权限、匿名访问并生成报告。
必要用法(命令保持原样): bash scripts/test-user-isolation.sh conversations messages profiles bash scripts/test-multi-tenant-isolation.sh organizations projects documents bash scripts/test-role-permissions.sh admin_panel sensitive_data bash scripts/test-anonymous-access.sh bash scripts/audit-rls-coverage.sh --report compliance-report.md --format markdown bash scripts/run-all-rls-tests.sh --ci --fail-fast --report rls-results.json
前置条件:具备数据库访问权限的 Supabase 项目、已安装 psql、Node.js 18+、Supabase CLI v1.11.4+。需在 .env 中配置 SUPABASE_DB_URL、SUPABASE_URL、SUPABASE_ANON_KEY、SUPABASE_SERVICE_KEY,测试用户或组织凭据可选。
适用场景:聊天应用会话隔离验证、多租户 SaaS 安全审计、GitHub Actions 等 CI/CD 部署前检查、RLS 策略变更后的回归测试。
限制:资料未提供具体版本号以外的定价、平台支持范围或效果保证;测试数据创建与清理方式、是否支持 Supabase 之外数据库均未明确说明。