안전한 기본값도 tenant 격리를 보증하지 않는다
RLS와 auth는 작은 실수 하나가 다른 고객의 데이터 노출로 이어질 수 있습니다. “sane defaults”가 어떤 role과 operation을 허용하는지 사람이 SQL로 확인하고, migration diff와 테스트를 남겨야 합니다. 멀티 tenant schema 생성은 에이전트가 제안하더라도 별도 승인 단계가 필요합니다.
MCP tool에는 읽기, 쓰기, 삭제 권한을 분리하고, 운영 DB에는 직접 DDL을 주지 않는 편이 안전합니다. staging에서 검증한 migration만 승격하며 모든 호출의 주체, 인자, 결과를 감사 로그로 남겨야 합니다.
RLS test는 owner 계정으로만 조회해선 안 됩니다. tenant A, B, 익명, 로그인 사용자, service role을 만들고 select, insert, update, delete마다 자기 row의 허용과 상대 row의 거부를 검증합니다. foreign key를 통한 간접 조회, view, function, NULL tenant ID와 bulk operation도 포함합니다. 에이전트가 만든 policy가 test를 통과해도 privileged key를 client에 노출하면 경계가 무너집니다.
auth 변경에는 callback URL, token expiry, email enumeration과 account linking이 얽힙니다. sample login 성공만 보지 말고 revoked token, password reset, session rotation과 tenant 전환을 시험합니다. Storage object path와 signed URL도 DB row의 tenant policy와 같은 원칙으로 묶어야 합니다.