第 5 章 · 行级安全策略(RLS) 章节摘要:行级安全策略(Row Level Security,RLS)是 Supabase 数据安全的核心机制。它通过 SQL 策略,在数据库的「行」级别精确控制谁可以读取、插入、更新或删除数据,并与第 4 章的身份认证紧密配合——基于当前登录用户的 id 与角色,决定每一行的可见性与可改性。本章讲解 RLS 的工作原理、策略的设计与编写、结合 Auth 实现用户数据隔离,以及常见的访问模式。掌握 RLS,前端就能安全地直连数据库,从而省去自建后端鉴权层。
章节摘要:行级安全策略(Row Level Security,RLS)是 Supabase 数据安全的核心机制。它通过 SQL 策略,在数据库的「行」级别精确控制谁可以读取、插入、更新或删除数据,并与第 4 章的身份认证紧密配合——基于当前登录用户的 id 与角色,决定每一行的可见性与可改性。本章讲解 RLS 的工作原理、策略的设计与编写、结合 Auth 实现用户数据隔离,以及常见的访问模式。掌握 RLS,前端就能安全地直连数据库,从而省去自建后端鉴权层。
阅读本章后,你将能够:
第 4 章建立了「用户是谁」,本章解决「这些数据能给谁看、让谁改」。RLS 的革命性在于:把权限规则下沉到数据库本身,由 PostgreSQL 强制执行,任何客户端、任何接口都绕不过它。这意味着前端可以带上用户令牌直接读写数据库,而无需经过你手写的后端鉴权层——这正是 Supabase 让全栈开发变得简单的关键。
下图展示了带 RLS 时一次请求的判定流程:请求携带令牌到达数据库,RLS 策略基于令牌中的用户身份逐行评估,只放行符合条件的行。
本章按「原理 → 编写 → 集成 → 模式」递进:
建议严格按顺序学习——原理不清就写策略,极易留下安全漏洞。
本章是第 4 章的直接延续,二者共同构成 Supabase 的安全核心。同时,RLS 也保护着第 6 章 Realtime 的订阅范围与第 7 章 Storage 的文件访问。可以说,RLS 是整个 Supabase 体系能否安全运行的「守门人」,本章务必重点掌握。