用途:db-security-access(M10)属于 claude-db 技能集的数据库安全审计模块,关注“设计与完整性”轴,检查谁能读写数据以及数据在静态和传输中是否受保护。
主要能力:检查 Postgres/Supabase 上承载租户或用户行的表是否启用行级安全(RLS),未启用为 severity:5 失败;识别疑似个人数据列(email、ssn、phone、dob、address、card/pan)未加密或未令牌化;发现以明文存储的密码、API 密钥、令牌或 DDL/迁移/默认值中的字面凭据(severity:5);检测连接配置强制 sslmode=disable 或远程主机无 TLS(severity:4);识别用字符串拼接、f-string、模板字面量将用户输入拼入 SQL 的注入风险(severity:5)。
使用方式:Tier-0 静态解析 DDL、迁移、ORM 源码与连接配置;RLS 启用状态可从声明式 DDL 检测,无法从文件确认时标记为 needs_api,不会静默通过。Tier-1 在 Postgres 上执行验证查询,通过 pg_class 与 pg_policies 查看 relrowsecurity、relforcerowsecurity 及策略数量,方法为 schema_introspect/constraint_check。发现结果按 schema/finding.schema.json 输出,证据引用原始 DDL/连接行/查询并脱敏,复现方式为上述目录查询(引用 $DATABASE_URL)或 grep 违规模式。
适用场景:审计多租户或 Supabase 表的租户隔离、检查 PII 与密钥存储、评估连接加密与 SQL 注入风险。
限制:运行时检查(实际静态加密、实时 TLS 协商)在 Tier-0 为 needs_api;静态加密通常是平台设置,文件中不可见,只报告 needs_api,不断言缺失;仅源码的方向性 RLS/注入信号不会直接触发 severity:5 上限,需经 Tier-1 或生成的 DDL 确认;PII 存在本身不算失败,仅标记未受保护的 PII,建议范围限于加密/令牌化而非删除。