博主头像

前端读写数据库?能安全吗? 一期视频精通Supabase,顶级后端开源项目,实战教程+本地部署

外来客 • 2026-08-20 11:58:44

分享
𝕏 f
声明:本文为对公开视频内容的摘要整理, 未经本站独立核实,可能与原视频存在出入,不代表本站立场、观点或建议; 观点与版权归原作者及原平台所有。 如涉及版权问题,请联系我们,核实后立即删除。 [ 免责声明 ]

🏗️ Supabase 核心架构与定位

  • 项目定义:Supabase 是一个开源的后端即服务(BaaS)框架,基于 PostgreSQL 数据库构建,GitHub 星标数达 9 万,属于顶级开源项目。
  • 功能模块:提供数据库、文件存储、边缘函数、用户认证及可视化运维面板,旨在为开发者提供开箱即用的后端基础设施。
  • 接入方式:支持前端 SDK 快速集成 React、Vue 或移动端应用;提供云服务版本(免费实例)及本地自部署方案(Docker 镜像)。
  • 核心价值:结合 AI 编程工具,可快速搭建包含用户认证和数据库的前后端完整应用。

🗄️ 数据库功能与插件扩展

  • 基础能力:具备 PostgreSQL 的所有原生功能,包括 Schema、表、函数、触发器及插件管理。
  • 插件示例:通过安装 PostGIS 插件,PostgreSQL 可存储地理位置信息(如公园面积、河流距离),替代传统 GIS 系统,简化了服务器软件包安装流程。
  • 连接模式
  • Direct Connection:直连模式,不支持 IPv4,需后端自行维护连接池(如 Hikari)。
  • Session Pooler:类似直连,支持 IPv4。
  • Transaction Pooler:连接池模式,由 Supabase 自动维护连接池,适合无状态服务(如边缘函数),降低数据库连接压力。

🔐 RLS 行级安全策略机制

  • 核心原理:RLS(Row Level Security)是 PostgreSQL 原生功能,用于约束特定用户可读取或修改的数据行,确保前端直接操作数据库时的安全性。
  • 配置步骤
  1. 创建业务表(如 UserInfo),关联系统用户表(auth.users)的外键。
  2. 启用 RLS 并创建策略(Policy),例如限制用户仅能查看 `user_id` 匹配自身 ID 的数据。
  3. 未配置 RLS 的表通过 SDK 无法查询,仅能通过后台直连访问。
  • 安全验证
  • 读取限制:前端查询他人数据时返回空结果,网络请求中 JWT Token 与 RLS 策略匹配才允许访问。
  • 写入限制:尝试插入非本人 `user_id` 的数据时,系统返回 403 Forbidden 错误,阻止越权写入。
  • API Key 安全性:在启用 RLS 的前提下,将 API Key 暴露在前端代码中是安全的,因为数据访问权限由后端策略严格控制。

📂 文件存储与实时功能

  • Storage 功能
  • 支持创建存储桶(Bucket),兼容 S3 标准协议,可用作图床或文件管理。
  • 安全策略:可配置策略限制用户仅能操作与其 User ID 同名的文件夹,防止越权上传。
  • 免费额度:云服务版本限制数据库 500MB,存储桶 1GB。
  • Realtime 功能
  • 基于 WebSocket 推送数据库变化,可配置触发器监听表数据变动。
  • 应用场景:客户端实时弹窗提醒、消息通知等。
  • Edge Functions:功能类似 Cloudflare Workers,用于执行边缘计算任务。

🚀 本地部署与自托管指南

  • 部署前提:需安装 Docker Desktop,服务器内存建议至少 4GB(因包含 13 个组件)。
  • 部署步骤
  1. 克隆 Supabase 源码至本地。
  2. 将 `docker` 目录下的文件拷贝至项目文件夹。
  3. 复制 `env.example` 为 `.env` 文件,修改前端端口(如 Windows 下改为 18000)以避开冲突。
  4. 执行 `docker compose pull` 拉取镜像,再执行 `docker compose up -d` 启动所有容器。
  • 访问配置
  • 本地访问地址为 `localhost:18000`。
  • 默认账号为 `supabase`,密码需从 `.env` 文件中获取。
  • SDK 适配:将前端代码中的 Supabase URL 和 API Key 替换为本地部署实例的地址和密钥,即可正常使用数据库、存储及认证功能。
  • 开源协议:采用 Apache 2.0 协议,允许免费商用。

博主头像 👤 同一博主

查看该博主全部 51 篇

🧭 类似博主

0 条评论

发表评论

请先 登录 后参与讨论。