Lộ trình cá nhânBuild Website Động cùng AI & Supabase: Full-Stack Web App, Auth, Database & Thanh toán Tự động
2/8

Giáo trình tự học miễn phí · Dịch vụ hỗ trợ theo nhu cầu.

Bài 0235phút ước tínhThực chiến · Builder

2. Thiết Kế Database Động & Bảo Mật Dữ Liệu Bằng Row Level Security (RLS)

Thiết kế bảng dữ liệu quan hệ trên PostgreSQL Supabase và viết chính sách bảo mật RLS ngăn chặn người dùng xem trộm dữ liệu của nhau.

🛡️ Nguyên Tắc Hoạt Động Của Row Level Security (RLS)

  • Mặc định khi bật RLS, mọi truy vấn từ Frontend đều bị từ chối ($0$ kết quả).
  • Bạn phải viết các chính sách (Policies) rõ ràng dựa trên hàm auth.uid() của người dùng đang đăng nhập.
example.py
-- CẤU HÌNH BẢNG DỮ LIỆU  CHÍNH SÁCH BẢO MẬT RLS CHUẨN
CREATE TABLE profiles (
  id UUID REFERENCES auth.users ON DELETE CASCADE PRIMARY KEY,
  full_name TEXT NOT NULL,
  avatar_url TEXT,
  role TEXT DEFAULT 'member' CHECK (role IN ('admin', 'member', 'guest')),
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Bật RLS
ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;

-- Chính sách 1: Mọi người được phép xem hồ  công khai
CREATE POLICY "Public profiles are viewable by everyone."
  ON profiles FOR SELECT USING (true);

-- Chính sách 2: Người dùng chỉ được sửa hồ  của chính mình
CREATE POLICY "Users can update own profile."
  ON profiles FOR UPDATE USING (auth.uid() = id);
Thực hành

Thực hành và tự đánh giá

Tạo một bảng orders trên Supabase và viết chính sách RLS chỉ cho phép khách hàng xem đơn hàng do chính mình tạo ra (auth.uid() = customer_id).

⚖️ Bản quyền sở hữu trí tuệ: © 2026 AI Tinh Gọn (aitinhgon.vn) · Giấy phép Creative Commons CC BY-NC-ND 4.0. Cho phép tự học cá nhân, nghiêm cấm thương mại hóa hoặc bán lại. Giáo trình mở →

Tiến độ tự học lưu trên trình duyệt này. Chỉ đánh dấu khi đã kiểm tra sản phẩm thực hành.