第 5 章 · 行级安全策略(RLS)


文档摘要

第 5 章 · 行级安全策略(RLS) 章节摘要:行级安全策略(Row Level Security,RLS)是 Supabase 数据安全的核心机制。它通过 SQL 策略,在数据库的「行」级别精确控制谁可以读取、插入、更新或删除数据,并与第 4 章的身份认证紧密配合——基于当前登录用户的 id 与角色,决定每一行的可见性与可改性。本章讲解 RLS 的工作原理、策略的设计与编写、结合 Auth 实现用户数据隔离,以及常见的访问模式。掌握 RLS,前端就能安全地直连数据库,从而省去自建后端鉴权层。

第 5 章 · 行级安全策略(RLS)

章节摘要:行级安全策略(Row Level Security,RLS)是 Supabase 数据安全的核心机制。它通过 SQL 策略,在数据库的「行」级别精确控制谁可以读取、插入、更新或删除数据,并与第 4 章的身份认证紧密配合——基于当前登录用户的 id 与角色,决定每一行的可见性与可改性。本章讲解 RLS 的工作原理、策略的设计与编写、结合 Auth 实现用户数据隔离,以及常见的访问模式。掌握 RLS,前端就能安全地直连数据库,从而省去自建后端鉴权层。

学习目标

阅读本章后,你将能够:

  • 理解 RLS 的工作原理与策略评估方式
  • 设计并编写行级安全策略,覆盖增删改查各类操作
  • 结合 Auth 实现基于用户身份的数据隔离
  • 落地「仅本人可写、公开可读、基于角色」等常见访问模式

本章概览

第 4 章建立了「用户是谁」,本章解决「这些数据能给谁看、让谁改」。RLS 的革命性在于:把权限规则下沉到数据库本身,由 PostgreSQL 强制执行,任何客户端、任何接口都绕不过它。这意味着前端可以带上用户令牌直接读写数据库,而无需经过你手写的后端鉴权层——这正是 Supabase 让全栈开发变得简单的关键。

下图展示了带 RLS 时一次请求的判定流程:请求携带令牌到达数据库,RLS 策略基于令牌中的用户身份逐行评估,只放行符合条件的行。

子章节导航

本章按「原理 → 编写 → 集成 → 模式」递进:

  1. RLS 工作原理:先建立对「行级」与「策略评估」的准确认知。
  2. 策略设计与编写:学习策略语法与针对各类命令的编写方法。
  3. 结合 Auth 的用户隔离:把第 4 章的用户身份接入 RLS,实现私有数据。
  4. 常见访问模式:归纳生产中最常用的几类权限模式作为模板。

建议严格按顺序学习——原理不清就写策略,极易留下安全漏洞。

与前后章节的关联

本章是第 4 章的直接延续,二者共同构成 Supabase 的安全核心。同时,RLS 也保护着第 6 章 Realtime 的订阅范围与第 7 章 Storage 的文件访问。可以说,RLS 是整个 Supabase 体系能否安全运行的「守门人」,本章务必重点掌握。


发布者: 作者: 灏天文库 转发
评论区 (0)
U